# TODO: # - libtensorflow [-ltensorflow tensorflow/c/c_api.h] # - AMF >= 1.4.4.1 (available at https://github.com/GPUOpen-LibrariesAndSDKs/AMF, where is original source?) # # How to deal with ffmpeg/opencv/chromaprint checken-egg problem: # 1. make-request -r --with bootstrap ffmpeg.spec # 2 bump release of opencv.spec and chromaprint.spec # 3. make-request -r opencv.spec chromaprint.spec # 4. bump release of ffmpeg.spec # 5. make-request -r ffmpeg.spec # # Conditional build: %bcond_with bootstrap # disable features to able to build without installed ffmpeg %bcond_with nonfree # unblock non free options of package (currently: cuda_nvcc, decklib, fdk_aac, npp, openssl, libressl/libtls) %bcond_without amr # AMR-NB/WB de/encoding via libopencore-amrnb/wb %bcond_without aribb24 # ARIB text and caption decoding via libaribb24 %bcond_without avs # AVS encoding via xavs %bcond_without avs2 # AVS2 de/encoding via libdavs2/libxavs2 %bcond_without bs2b # BS2B audio filter support %bcond_without caca # textual display using libcaca %bcond_without codec2 # codec2 support using libcodec2 %bcond_without chromaprint # audio fingerprinting with chromaprint %bcond_with cudasdk # NVIDIA CUDA code using nvcc from CUDA SDK [BR: cuda.h, non-free] %bcond_without dav1d # AV1 decoding via libdav1d %bcond_without dc1394 # IIDC-1394 grabbing using libdc1394 %bcond_with decklink # Blackmagic DeckLink I/O support (requires nonfree) %bcond_with fdk_aac # AAC de/encoding via libfdk_aac (requires nonfree) %bcond_without ffnvcodec # NVIDIA codecs support using ffnvcodec headers (covered: cuda cuvid nvdec nvenc) %bcond_without flite # flite voice synthesis support %bcond_without frei0r # frei0r video filtering %bcond_without fribidi # fribidi support %bcond_without gme # Game Music Emu support %bcond_without gsm # GSM de/encoding via libgsm %bcond_without iec61883 # ec61883 via libiec61883 %bcond_without ilbc # iLBC de/encoding via WebRTC libilbc %bcond_without kvazaar # Kvazaar HEVC encoder support %bcond_without ladspa # LADSPA audio filtering %bcond_without lensfun # lensfun lens correction %bcond_with libdrm # Linux Direct Rendering Manager code %bcond_with libklvanc # Kernel Labs VANC processing (in decklink driver) %bcond_without libmysofa # sofalizer filter %bcond_with librsvg # SVG rasterization via librsvg %bcond_with libxml2 # XML parsing using libxml2 %bcond_without lv2 # LV2 audio filtering %bcond_with mfx # MFX hardware acceleration support %bcond_without modplug # ModPlug via libmodplug %bcond_with npp # NVIDIA Performance Primitives-based code (requires nonfree) [BR: libnppc+libnppi, npp.h] %bcond_without omx # OpenMAX IL support %bcond_without openal # OpenAL 1.1 capture support %bcond_without opencl # OpenCL 1.2 code %bcond_without opencv # OpenCV video filtering %bcond_without opengl # OpenGL rendering support %bcond_with openh264 # OpenH264 H.264 encoder %bcond_without openmpt # OpenMPT module decoder %bcond_with pocketsphinx # asr filter using PocketSphinx %bcond_without pulseaudio # PulseAudio input support %bcond_with rkmpp # Rockchip Media Process Platform code [implies libdrm] %bcond_without rubberband # rubberband filter %bcond_without shine # shine fixed-point MP3 encoder %bcond_without snappy # Snappy compression support (needed for hap encoding) %bcond_without srt # Haivision SRT protocol support %bcond_without ssh # SFTP protocol support via libssh %bcond_with smb # SMB support via libsmbclient %bcond_without soxr # SoX Resampler support %bcond_with tesseract # OCR filter based on Tesseract %bcond_without theora # Theora encoding via libtheora %bcond_without vmaf # VMAF filter support %bcond_without x264 # H.264 x264 encoder %bcond_without x265 # H.265/HEVC x265 encoder %bcond_without va # VAAPI (Video Acceleration API) %bcond_without vapoursynth # VapourSynth demuxer %bcond_without vidstab # vid.stab video stabilization support %bcond_without voamrwbenc # MR-WB encoding via libvo-amrwbenc %bcond_without vpx # VP8, a high-quality video codec %bcond_without wavpack # wavpack encoding support %bcond_without webp # WebP encoding support %bcond_without xvid # vid encoding via xvidcore %bcond_without zimg # zscale filter based on z.lib %bcond_without zmq # 0MQ message passing %bcond_without zvbi # teletext via libzvbi %bcond_without doc # don't build docs %bcond_with tests # "make check" (some tests fail as of 2.5) %if %{with bootstrap} %undefine with_opencv %undefine with_chromaprint %endif %if %{with rkmpp} %define with_libdrm 1 %endif %ifnarch %{ix86} %{x8664} %undefine with_ffnvcodec %endif %ifnarch %{ix86} %{x8664} %{arm} %undefine with_x265 %endif %ifarch i386 i486 %undefine with_x265 %endif %ifarch i686 pentium4 athlon %{x8664} x32 %define with_crystalhd 1 %endif Summary: FFmpeg - a very fast video and audio converter Summary(pl.UTF-8): FFmpeg - szybki konwerter audio/wideo Name: ffmpeg Version: 4.3 Release: 2 # LGPL or GPL, chosen at configure time (GPL version is more featured) # GPL: frei0r libcdio libdavs2 rubberband vidstab x264 x265 xavs xavs2 xvid # v3 (allows *GPLv3 or Apache-licensed libs): gmp lensfun opencore-amr vmaf vo-*enc rkmpp # GPLv3: smbclient License: GPL v3+ with LGPL v3+ parts Group: Applications/Multimedia Source0: http://ffmpeg.org/releases/%{name}-%{version}.tar.xz # Source0-md5: 3adcf4f122fcc54624f5d509107d5625 Patch0: %{name}-omx-libnames.patch Patch1: %{name}-atadenoise.patch URL: http://www.ffmpeg.org/ %{?with_decklink:BuildRequires: Blackmagic_DeckLink_SDK >= 10.9.5} %{?with_openal:BuildRequires: OpenAL-devel >= 1.1} %{?with_opencl:BuildRequires: OpenCL-devel >= 1.2} %{?with_opengl:BuildRequires: OpenGL-GLX-devel} # libomxil-bellagio-devel or limoi-core-devel (just headers, library is dlopened at runtime) %{?with_omx:BuildRequires: OpenMAX-IL-devel} BuildRequires: SDL2-devel >= 2.0.1 BuildRequires: SDL2-devel < 2.1.0 BuildRequires: alsa-lib-devel BuildRequires: aom-devel >= 1.0.0 %{?with_aribb24:BuildRequires: aribb24-devel} BuildRequires: bzip2-devel BuildRequires: celt-devel >= 0.11.0 %{?with_codec2:BuildRequires: codec2-devel} %{?with_dav1d:BuildRequires: dav1d-devel >= 0.2.1} %{?with_avs2:BuildRequires: davs2-devel >= 1.6} %{?with_fdk_aac:BuildRequires: fdk-aac-devel} %{?with_flite:BuildRequires: flite-devel >= 1.4} BuildRequires: fontconfig-devel BuildRequires: freetype-devel %{?with_frei0r:BuildRequires: frei0r-devel} %{?with_fribidi:BuildRequires: fribidi-devel} %{?with_gme:BuildRequires: game-music-emu-devel} %ifarch ppc # require version with altivec support fixed BuildRequires: gcc >= 5:3.3.2-3 %endif BuildRequires: gmp-devel BuildRequires: gnutls-devel BuildRequires: jack-audio-connection-kit-devel %{?with_kvazaar:BuildRequires: kvazaar-devel >= 0.8.1} %{?with_ladspa:BuildRequires: ladspa-devel} BuildRequires: lame-libs-devel >= 3.98.3 %{?with_lensfun:BuildRequires: lensfun-devel} BuildRequires: libass-devel %{?with_iec61883:BuildRequires: libavc1394-devel} %{?with_bs2b:BuildRequires: libbs2b-devel} BuildRequires: libbluray-devel %{?with_caca:BuildRequires: libcaca-devel} BuildRequires: libcdio-paranoia-devel >= 0.90-2 %{?with_chromaprint:BuildRequires: libchromaprint-devel} %{?with_crystalhd:BuildRequires: libcrystalhd-devel} %{?with_dc1394:BuildRequires: libdc1394-devel >= 2} %{?with_libdrm:BuildRequires: libdrm-devel} %{?with_gsm:BuildRequires: libgsm-devel} %{?with_iec61883:BuildRequires: libiec61883-devel} %{?with_libklvanc:BuildRequires: libklvanc-devel} %{?with_modplug:BuildRequires: libmodplug-devel} %{?with_libmysofa:BuildRequires: libmysofa-devel >= 0.7} %{?with_openmpt:BuildRequires: libopenmpt-devel >= 0.4.5} %if %{with dc1394} || %{with iec61883} BuildRequires: libraw1394-devel >= 2 %endif %{?with_librsvg:BuildRequires: librsvg-devel >= 2} BuildRequires: librtmp-devel %{?with_ssh:BuildRequires: libssh-devel} %{?with_smb:BuildRequires: libsmbclient-devel} %{?with_theora:BuildRequires: libtheora-devel >= 1.0-0.beta3} BuildRequires: libtool >= 2:1.4d-3 BuildRequires: libv4l-devel %if %{with va} BuildRequires: libva-devel >= 1.0.3 BuildRequires: libva-drm-devel >= 1.0.3 BuildRequires: libva-x11-devel >= 1.0.3 %endif BuildRequires: libvdpau-devel >= 0.2 BuildRequires: libvorbis-devel %{?with_vpx:BuildRequires: libvpx-devel >= 1.4.0} %{?with_webp:BuildRequires: libwebp-devel >= 0.4.0} # X264_BUILD >= 118 %{?with_x264:BuildRequires: libx264-devel >= 0.1.3-1.20111212_2245} # X265_BUILD >= 68 %{?with_x265:BuildRequires: libx265-devel >= 1.8} # libxcb xcb-shm xcb-xfixes xcb-shape BuildRequires: libxcb-devel >= 1.4 %{?with_libxml2:BuildRequires: libxml2-devel >= 2} %{?with_lv2:BuildRequires: lilv-devel} %{?with_lv2:BuildRequires: lv2-devel} %{?with_mfx:BuildRequires: mfx_dispatch-devel} %ifarch %{ix86} %ifnarch i386 i486 BuildRequires: nasm %endif %endif %{?with_ffnvcodec:BuildRequires: nv-codec-headers >= 9.0.18.0} # amrnb,amrwb %{?with_amr:BuildRequires: opencore-amr-devel} %{?with_opencv:BuildRequires: opencv-devel >= 2} %{?with_openh264:BuildRequires: openh264-devel >= 1.3} BuildRequires: openjpeg2-devel >= 2.1 BuildRequires: opus-devel BuildRequires: perl-Encode BuildRequires: perl-tools-pod %{?with_pocketsphinx:BuildRequires: pocketsphinx-devel > 0.8} BuildRequires: pkgconfig %{?with_pulseaudio:BuildRequires: pulseaudio-devel} %{?with_rkmpp:BuildRequires: rockchip-mpp-devel >= 1.3.7} BuildRequires: rpmbuild(macros) >= 1.470 %{?with_rubberband:BuildRequires: rubberband-devel >= 1.8.1} %{?with_shine:BuildRequires: shine-devel >= 3.0.0} %{?with_snappy:BuildRequires: snappy-devel} %{?with_soxr:BuildRequires: soxr-devel} BuildRequires: speex-devel >= 1:1.2-rc1 %{?with_srt:BuildRequires: srt-devel >= 1.3} %{?with_tesseract:BuildRequires: tesseract-devel} %{?with_doc:BuildRequires: tetex} %{?with_doc:BuildRequires: texi2html} %{?with_doc:BuildRequires: texinfo} BuildRequires: twolame-devel >= 0.3.10 %{?with_vapoursynth:BuildRequires: vapoursynth-devel >= 42} %{?with_vidstab:BuildRequires: vid.stab-devel >= 0.98} %{?with_vmaf:BuildRequires: vmaf-devel >= 1.3.9} %{?with_voamrwbenc:BuildRequires: vo-amrwbenc-devel} %{?with_wavpack:BuildRequires: wavpack-devel} %{?with_ilbc:BuildRequires: webrtc-libilbc-devel} %{?with_avs:BuildRequires: xavs-devel} %{?with_avs2:BuildRequires: xavs2-devel >= 1.3} BuildRequires: xorg-lib-libX11-devel BuildRequires: xorg-lib-libXext-devel BuildRequires: xorg-lib-libXv-devel %{?with_xvid:BuildRequires: xvid-devel >= 1:1.1.0} BuildRequires: xz-devel BuildRequires: yasm %{?with_zmq:BuildRequires: zeromq-devel} %{?with_zimg:BuildRequires: zimg-devel >= 2.7.0} BuildRequires: zlib-devel %{?with_zvbi:BuildRequires: zvbi-devel >= 0.2.28} %{?with_autoreqdep:BuildConflicts: libpostproc} # overflows maximum hash table size BuildConflicts: pdksh < 5.2.14-57 Requires: %{name}-libs = %{version}-%{release} Suggests: fontconfig Suggests: fonts-TTF-Roboto Obsoletes: libpostproc BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n) %define specflags -fno-strict-aliasing # -fomit-frame-pointer is always needed on x86 due to lack of registers (-fPIC takes one) %define specflags_ia32 -fomit-frame-pointer # -mmmx is needed to enable code. %define specflags_i586 -mmmx %define specflags_i686 -mmmx %define specflags_ppc -fPIC %description FFmpeg is a complete solution to record, convert and stream audio and video. It is a command line tool to convert one video file format to another. It also supports grabbing and encoding in real time from a TV card. %description -l pl.UTF-8 FFmpeg to kompletne rozwiązanie nagrywania, konwersji i transmisji strumieni dźwięku i obrazu. Jest to działające z linii poleceń narzędzie do konwersji obrazu z jednego formatu do innego. Obsługuje także przechwytywanie i kodowanie w czasie rzeczywistym z karty telewizyjnej. %package libs Summary: ffmpeg libraries Summary(pl.UTF-8): Biblioteki ffmpeg Group: Libraries Requires: SDL2 >= 2.0.1 Requires: aom >= 1.0.0 Requires: celt >= 0.11.0 %{?with_dav1d:Requires: dav1d >= 0.2.1} %{?with_avs2:Requires: davs2 >= 1.6} %{?with_flite:Requires: flite >= 1.4} %if "%(rpm -q --qf '%{V}' gnutls-devel)" >= "3.0.20" # uses gnutls_certificate_set_x509_system_trust if >= 3.0.20 Requires: gnutls-libs >= 3.0.20 %endif %{?with_kvazaar:Requires: kvazaar-libs >= 0.8.1} %{?with_libmysofa:Requires: libmysofa >= 0.7} %{?with_openmpt:Requires: libopenmpt >= 0.4.5} %{?with_theora:Requires: libtheora >= 1.0-0.beta3} %if %{with va} Requires: libva >= 1.0.3 Requires: libva-drm >= 1.0.3 Requires: libva-x11 >= 1.0.3 %endif Requires: libvdpau >= 0.2 %{?with_vpx:Requires: libvpx >= 1.4.0} %{?with_webp:Requires: libwebp >= 0.4.0} %{?with_x264:Requires: libx264 >= 0.1.3-1.20111212_2245} %{?with_x265:Requires: libx265 >= 1.8} Requires: libxcb >= 1.4 Requires: lame-libs >= 3.98.3 %{?with_openh264:Requires: openh264 >= 1.3} Requires: openjpeg2 >= 2.1 %{?with_rkmpp:Requires: rockchip-mpp >= 1.3.7} %{?with_rubberband:Requires: rubberband-libs >= 1.8.1} %{?with_shine:Requires: shine >= 3.0.0} Requires: speex >= 1:1.2-rc1 %{?with_srt:Requires: srt >= 1.3} Requires: twolame-libs >= 0.3.10 %{?with_vapoursynth:Requires: vapoursynth >= 42} %{?with_vidstab:Requires: vid.stab >= 0.98} %{?with_vmaf:Requires: vmaf-libs >= 1.3.9} %{?with_avs2:Requires: xavs2 >= 1.3} %{?with_xvid:Requires: xvid >= 1:1.1.0} %{?with_zimg:Requires: zimg >= 2.7.0} %{?with_zvbi:Requires: zvbi >= 0.2.28} %description libs This package contains the ffmpeg shared libraries: - the codec library (libavcodec). It supports most existing encoding formats (MPEG, DivX, MPEG4, AC3, DV...), - demuxer library (libavformat). It supports most existing file formats (AVI, MPEG, OGG, Matroska, ASF...), - video postprocessing library (libpostproc). %description libs -l pl.UTF-8 Ten pakiet zawiera biblioteki współdzielone ffmpeg: - bibliotekę kodeków (libavcodec); obsługuje większość istniejących formatów kodowania (MPEG, DivX, MPEG4, AC3, DV...), - bibliotekę demuksera (libavformat); obsługuje większość istniejących formatów plików (AVI, MPEG, OGG, Matroska, ASF...), - bibliotekę postprocessingu (libpostproc). %package devel Summary: ffmpeg header files Summary(pl.UTF-8): Pliki nagłówkowe ffmpeg Group: Development/Libraries Requires: %{name}-libs = %{version}-%{release} # Libs.private from *.pc %{?with_openal:Requires: OpenAL-devel >= 1.1} %{?with_opencl:Requires: OpenCL-devel >= 1.2} %{?with_opengl:Requires: OpenGL-devel} Requires: SDL2-devel >= 2.0.1 Requires: alsa-lib-devel Requires: aom-devel >= 1.0.0 %{?with_aribb24:Requires: aribb24-devel} %{?with_avs2:Requires: davs2-devel >= 1.6} Requires: bzip2-devel Requires: celt-devel >= 0.11.0 %{?with_codec2:Requires: codec2-devel} %{?with_dav1d:Requires: dav1d-devel >= 0.2.1} %{?with_fdk_aac:Requires: fdk-aac-devel} %{?with_flite:Requires: flite-devel >= 1.4} Requires: fontconfig-devel Requires: freetype-devel %{?with_fribidi:Requires: fribidi-devel} %{?with_gme:Requires: game-music-emu-devel} Requires: gnutls-devel Requires: jack-audio-connection-kit-devel %{?with_kvazaar:Requires: kvazaar-devel >= 0.8.1} Requires: lame-libs-devel >= 3.98.3 %{?with_lensfun:Requires: lensfun-devel} Requires: libass-devel %{?with_iec61883:Requires: libavc1394-devel} Requires: libbluray-devel %{?with_bs2b:Requires: libbs2b-devel} %{?with_caca:Requires: libcaca-devel} Requires: libcdio-paranoia-devel >= 0.90-2 %{?with_chromaprint:Requires: libchromaprint-devel} %{?with_crystalhd:Requires: libcrystalhd-devel} %{?with_dc1394:Requires: libdc1394-devel >= 2} %{?with_libdrm:Requires: libdrm-devel} %{?with_gsm:Requires: libgsm-devel} %{?with_iec61883:Requires: libiec61883-devel} %{?with_libklvanc:Requires: libklvanc-devel} %{?with_modplug:Requires: libmodplug-devel} %{?with_libmysofa:Requires: libmysofa-devel >= 0.7} %{?with_openmpt:Requires: libopenmpt-devel >= 0.4.5} %if %{with dc1394} || %{with iec61883} Requires: libraw1394-devel >= 2 %endif %{?with_librsvg:Requires: librsvg-devel >= 2} Requires: librtmp-devel %{?with_smb:Requires: libsmbclient-devel} %{?with_ssh:Requires: libssh-devel} Requires: libstdc++-devel %{?with_theora:Requires: libtheora-devel >= 1.0-0.beta3} Requires: libv4l-devel %{?with_va:Requires: libva-devel >= 1.0.3} %{?with_va:Requires: libva-drm-devel >= 1.0.3} %{?with_va:Requires: libva-x11-devel >= 1.0.3} Requires: libvdpau-devel >= 0.2 Requires: libvorbis-devel %{?with_vpx:Requires: libvpx-devel >= 1.4.0} %{?with_webp:Requires: libwebp-devel >= 0.4.0} %{?with_x264:Requires: libx264-devel >= 0.1.3-1.20110625_2245} %{?with_x265:Requires: libx265-devel >= 1.8} # libxcb xcb-shm xcb-xfixes xcb-shape Requires: libxcb-devel >= 1.4 %{?with_libxml2:Requires: libxml2-devel >= 2} %{?with_lv2:Requires: lilv-devel} %{?with_mfx:Requires: mfx_dispatch-devel} %{?with_amr:Requires: opencore-amr-devel} %{?with_opencv:Requires: opencv-devel >= 2} %{?with_openh264:Requires: openh264-devel >= 1.3} Requires: openjpeg2-devel >= 2.1 Requires: opus-devel %{?with_pulseaudio:Requires: pulseaudio-devel} %{?with_rkmpp:Requires: rockchip-mpp-devel >= 1.3.7} %{?with_rubberband:Requires: rubberband-devel >= 1.8.1} %{?with_shine:Requires: shine-devel >= 3.0.0} %{?with_snappy:Requires: snappy-devel} %{?with_soxr:Requires: soxr-devel} Requires: speex-devel >= 1:1.2-rc1 %{?with_srt:Requires: srt-devel >= 1.3} %{?with_tesseract:Requires: tesseract-devel} Requires: twolame-devel >= 0.3.10 %{?with_vapoursynth:Requires: vapoursynth-devel >= 42} %{?with_vidstab:Requires: vid.stab-devel >= 0.98} %{?with_voamrwbenc:Requires: vo-amrwbenc-devel} %{?with_vmaf:Requires: vmaf-devel >= 1.3.9} %{?with_wavpack:Requires: wavpack-devel} %{?with_ilbc:Requires: webrtc-libilbc-devel} %{?with_avs:Requires: xavs-devel} %{?with_avs2:Requires: xavs2-devel >= 1.3} Requires: xorg-lib-libX11-devel Requires: xorg-lib-libXext-devel Requires: xorg-lib-libXv-devel %{?with_xvid:Requires: xvid-devel >= 1:1.1.0} Requires: xz-devel %{?with_zmq:Requires: zeromq-devel} %{?with_zimg:Requires: zimg-devel >= 2.7.0} Requires: zlib-devel %{?with_zvbi:Requires: zvbi-devel >= 0.2.28} Obsoletes: libpostproc-devel %description devel ffmpeg header files. %description devel -l pl.UTF-8 Pliki nagłówkowe ffmpeg. %package static Summary: ffmpeg static libraries Summary(pl.UTF-8): Statyczne biblioteki ffmpeg Group: Development/Libraries Requires: %{name}-devel = %{version}-%{release} %description static ffmpeg static libraries (libavcodec and libavformat). %description static -l pl.UTF-8 Statyczne biblioteki ffmpeg (libavcodec i libavformat). %package ffplay Summary: FFplay - SDL-based media player Summary(pl.UTF-8): FFplay - odtwarzacz mediów oparty na SDL Group: Applications/Multimedia Requires: %{name}-libs = %{version}-%{release} %description ffplay FFplay is a very simple and portable media player using the FFmpeg libraries and the SDL library. It is mostly used as a test bench for the various APIs of FFmpeg. %description ffplay -l pl.UTF-8 FFplay to bardzo prosty i przenośny odtwarzacz mediów używający bibliotek FFmpeg oraz biblioteki SDL. Jest używany głównie do testowania różnych API FFmpeg. %package doc Summary: FFmpeg documentation in HTML format Summary(pl.UTF-8): Dokumentacja pakietu FFmpeg w formacie HTML Group: Documentation %if "%{_rpmversion}" >= "5" BuildArch: noarch %endif %description doc FFmpeg documentation in HTML format. %description doc -l pl.UTF-8 Dokumentacja pakietu FFmpeg w formacie HTML. %prep %setup -q %patch0 -p1 %patch1 -p1 # package the grep result for mplayer, the result formatted as ./mplayer/configure cat < ffmpeg-avconfig #! /bin/sh libavdecoders_all="$(sed -n 's/^[^#]*DEC.*(.*, *\(.*\)).*/\1_decoder/p' libavcodec/allcodecs.c | tr '[a-z]' '[A-Z]')" libavencoders_all="$(sed -n 's/^[^#]*ENC.*(.*, *\(.*\)).*/\1_encoder/p' libavcodec/allcodecs.c | tr '[a-z]' '[A-Z]')" libavparsers_all="$(sed -n 's/^[^#]*PARSER.*(.*, *\(.*\)).*/\1_parser/p' libavcodec/allcodecs.c | tr '[a-z]' '[A-Z]')" libavbsfs_all="$(sed -n 's/^[^#]*BSF.*(.*, *\(.*\)).*/\1_bsf/p' libavcodec/allcodecs.c | tr '[a-z]' '[A-Z]')" libavdemuxers_all="$(sed -n 's/^[^#]*DEMUX.*(.*, *\(.*\)).*/\1_demuxer/p' libavformat/allformats.c | tr '[a-z]' '[A-Z]')" libavmuxers_all="$(sed -n 's/^[^#]*_MUX.*(.*, *\(.*\)).*/\1_muxer/p' libavformat/allformats.c | tr '[a-z]' '[A-Z]')" libavprotocols_all="$(sed -n 's/^[^#]*PROTOCOL.*(.*, *\(.*\)).*/\1_protocol/p' libavformat/allformats.c | tr '[a-z]' '[A-Z]')" libavhwaccels_all="$(sed -n 's/^[^#]*HWACCEL.*(.*, *\(.*\)).*/\1_hwaccel/p' libavcodec/allcodecs.c | tr '[a-z]' '[A-Z]')" libavfilters_all="$(sed -n 's/^[^#]*FILTER.*(.*, *\(.*\),.*).*/\1_filter/p' libavfilter/allfilters.c | tr '[a-z]' '[A-Z]')" EOF cat <<'EOF' >> ffmpeg-avconfig case "$1" in --decoders) echo $libavdecoders_all ;; --encoders) echo $libavencoders_all ;; --parsers) echo $libavparsers_all ;; --bsfs) echo $libavbsfs_all ;; --demuxers) echo $libavdemuxers_all ;; --muxers) echo $libavmuxers_all ;; --protocols) echo $libavprotocols_all ;; --hwaccels) echo $libavhwaccels_all ;; --filters) echo $libavfilters_all ;; *) cat <