X-Git-Url: http://git.pld-linux.org/?a=blobdiff_plain;f=ffmpeg.spec;h=0a731e017651dd26e9dc1b157700214f109d817d;hb=314ef0dfacd79228e723ea867873dc9a9d348211;hp=c74dcf07a93afdb652195ef3c506c32cb13563e1;hpb=872de59dbaf0a7130560c7d118c507bba573f286;p=packages%2Fffmpeg.git diff --git a/ffmpeg.spec b/ffmpeg.spec index c74dcf0..0a731e0 100644 --- a/ffmpeg.spec +++ b/ffmpeg.spec @@ -1,58 +1,35 @@ -# -# TODO: only lzo 1.x is supported -# - make (ffmpeg code inside) mplayer play .3gp mobile phone movies -# (ffplay and vlc plays them fine -# - revert amr bcond when done +# TODO +# - libnut enabled no (http://www.nut-container.org/) # # Conditional build: -%bcond_without imlib2 # don't build imlib2 vhook module +%bcond_with amr # 3GPP Adaptive Multi Rate (AMR) codec support; makes package non-distributable %bcond_without autoreqdep # don't care about package name deps generated by rpm -%bcond_with amr # build with 3GPP Adaptive Multi Rate (AMR) speech codec -# -%define snap 20060129 -%define _rel 8.8 +%bcond_without imlib2 # don't build imlib2 vhook module + Summary: Realtime audio/video encoder and streaming server -Summary(pl): Koder audio/wideo czasu rzeczywistego oraz serwer strumieni +Summary(pl.UTF-8): Koder audio/wideo czasu rzeczywistego oraz serwer strumieni Name: ffmpeg -Version: 0.4.9 -Release: 3.%{snap}.%{_rel} +Version: 0.5 +Release: 4 # LGPL or GPL, chosen at configure time (GPL version is more featured) -# -# (BTW. what are the 'more' features mentioned above?) -# -# Some parts of the code *is* LGPL (for example libavformat amr.c) so -# it is possible to include /and distribute/ external 3GPP AMR codecs -# (some kind of public domain with patent restrictions) to the -# GPL-licensed stuff /and keep GPL license/. -%if %{with amr} -License: GPL with LGPL/Public Domain parts -%else -License: GPL with LGPL parts -%endif +# (postprocessing, ac3, xvid, x264, faad) +License: GPL v2+ with LGPL v2.1+ parts Group: Applications/Multimedia -#Source0: http://dl.sourceforge.net/ffmpeg/%{name}-%{version}-pre1.tar.gz -#Source0: ftp://ftp2.mplayerhq.hu/MPlayer/cvs/FFMpeg-%{snap}.tar.bz2 -Source0: %{name}-%{snap}.tar.bz2 -# Source0-md5: d8ea09431d6c0c91bfd35e0ca74a67e1 +Source0: http://ffmpeg.mplayerhq.hu/releases/%{name}-%{version}.tar.bz2 +# Source0-md5: be8503f15c3b81ba00eb8379ca8dcf33 Source1: ffserver.init Source2: ffserver.sysconfig Source3: ffserver.conf +Patch0: %{name}-x264.patch +Patch1: %{name}-bug-803.patch +Patch2: imagewidth.patch +URL: http://ffmpeg.mplayerhq.hu/ +BuildRequires: SDL-devel %if %{with amr} -# AMR WB FLOAT -#Source4: http://www.3gpp.org/ftp/Specs/latest/Rel-6/26_series/26204-600.zip -Source4: http://www.3gpp.org/ftp/Specs/latest/Rel-5/26_series/26204-530.zip -# Source4-md5: 988060bdb18b5d64b8bd82c3507d2420 -# AMR NB FLOAT -#Source6: http://www.3gpp.org/ftp/Specs/latest/Rel-6/26_series/26104-610.zip -Source6: http://www.3gpp.org/ftp/Specs/latest/Rel-5/26_series/26104-540.zip -# Source6-md5: 4dcbeb2bc28bf86e7131fe4cae3e0dec +BuildRequires: amrnb-devel >= 6.1.0.4 +BuildRequires: amrwb-devel >= 7.0.0.1 %endif - -Patch0: %{name}-libtool.patch -Patch1: %{name}-libdir.patch -Patch2: %{name}-gcc4.patch -URL: http://ffmpeg.sourceforge.net/ -BuildRequires: SDL-devel +BuildRequires: dirac-devel >= 1.0.0 BuildRequires: faac-devel BuildRequires: faad2-devel BuildRequires: freetype-devel @@ -60,23 +37,27 @@ BuildRequires: freetype-devel # require version with altivec support fixed BuildRequires: gcc >= 5:3.3.2-3 %endif -%{?with_imlib2:BuildRequires: imlib2-devel >= 1.1.0-2} +%{?with_imlib2:BuildRequires: imlib2-devel >= 1.3.0} BuildRequires: lame-libs-devel -BuildRequires: libdts-devel +BuildRequires: libdc1394-devel BuildRequires: libgsm-devel -BuildRequires: libtheora-devel +BuildRequires: libraw1394-devel +BuildRequires: libtheora-devel >= 1.0-0.beta3 BuildRequires: libtool >= 2:1.4d-3 BuildRequires: libvorbis-devel -#BuildRequires: libx264-devel -BuildRequires: lzo-devel +BuildRequires: libx264-devel >= 0.1.2-1.20081023 +BuildRequires: speex-devel %ifarch %{ix86} %ifnarch i386 i486 BuildRequires: nasm %endif %endif BuildRequires: perl-tools-pod -BuildRequires: rpmbuild(macros) >= 1.268 +BuildRequires: pkgconfig +BuildRequires: rpmbuild(macros) >= 1.470 +BuildRequires: schroedinger-devel BuildRequires: tetex +BuildRequires: texi2html BuildRequires: texinfo %{?with_amr:BuildRequires: unzip} BuildRequires: xvid-devel >= 1:1.1.0 @@ -96,6 +77,7 @@ BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n) # -mmmx is needed to enable code. %define specflags_i586 -mmmx %define specflags_i686 -mmmx +%define specflags_ppc -fPIC %description ffmpeg is a hyper fast realtime audio/video encoder and streaming @@ -104,38 +86,44 @@ convert it into several file formats based on DCT/motion compensation encoding. Sound is compressed in MPEG audio layer 2 or using an AC3 compatible stream. -%description -l pl +%description -l pl.UTF-8 ffmpeg jest bardzo szybkim koderem audio/wideo w czasie rzeczywistym -oraz serwerem strumieni multimedialnych. ffmpeg potrafi zrzucaæ dane -ze standardowego urz±dzenia Video4Linux i przekonwertowaæ je w kilka -formatów plików bazuj±cych na kodowaniu DCT/kompensacji ruchu. D¼wiêk -jest kompresowany do strumienia MPEG audio layer 2 lub u¿ywaj±c +oraz serwerem strumieni multimedialnych. ffmpeg potrafi zrzucać dane +ze standardowego urządzenia Video4Linux i przekonwertować je w kilka +formatów plików bazujących na kodowaniu DCT/kompensacji ruchu. Dźwięk +jest kompresowany do strumienia MPEG audio layer 2 lub używając strumienia kompatybilnego z AC3. %package libs Summary: ffmpeg libraries -Summary(pl): Biblioteki ffmpeg +Summary(pl.UTF-8): Biblioteki ffmpeg Group: Libraries %description libs This package contains ffmpeg shared libraries. -%description libs -l pl -Ten pakiet zawiera biblioteki wspó³dzielone ffmpeg. +%description libs -l pl.UTF-8 +Ten pakiet zawiera biblioteki współdzielone ffmpeg. %package devel Summary: ffmpeg header files -Summary(pl): Pliki nag³ówkowe ffmpeg +Summary(pl.UTF-8): Pliki nagłówkowe ffmpeg Group: Development/Libraries Requires: %{name}-libs = %{version}-%{release} # for libavcodec: +%if %{with amr} +Requires: amrnb-devel +Requires: amrwb-devel >= 5.3.0 +%endif +Requires: dirac-devel Requires: faac-devel +Requires: faad2-devel Requires: lame-libs-devel -Requires: libdts-devel Requires: libgsm-devel -Requires: libtheora-devel +Requires: libraw1394-devel +Requires: libtheora-devel >= 1.0-0.alpha7 Requires: libvorbis-devel -Requires: lzo-devel +Requires: libx264-devel >= 0.1.2-1.20060828_2245.1 Requires: xvid-devel >= 1:1.1.0 Requires: zlib-devel Obsoletes: libpostproc-devel @@ -143,24 +131,24 @@ Obsoletes: libpostproc-devel %description devel ffmpeg header files. -%description devel -l pl -Pliki nag³ówkowe ffmpeg. +%description devel -l pl.UTF-8 +Pliki nagłówkowe ffmpeg. %package static Summary: ffmpeg static libraries -Summary(pl): Statyczne biblioteki ffmpeg +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 +%description static -l pl.UTF-8 Statyczne biblioteki ffmpeg (libavcodec i libavformat). %package ffplay Summary: FFplay - SDL-based media player -Summary(pl): FFplay - odtwarzacz mediów oparty na SDL +Summary(pl.UTF-8): FFplay - odtwarzacz mediów oparty na SDL Group: Applications/Multimedia Requires: %{name}-libs = %{version}-%{release} @@ -169,14 +157,14 @@ 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 -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. +%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 vhook-imlib2 Summary: imlib2 based hook -Summary(pl): Modu³ przej¶ciowy oparty o imlib2 +Summary(pl.UTF-8): Moduł przejściowy oparty o imlib2 Group: Libraries Requires: %{name}-libs = %{version}-%{release} @@ -186,19 +174,19 @@ supports a fixed overlay or reading the text from a file. The string is passed through strftime so that it is easy to imprint the date and time onto the image. -%description vhook-imlib2 -l pl -Ten modu³ implementuje tekstow± nak³adkê dla obrazu. Aktualnie -obs³uguje sta³± nak³adkê lub wczytywanie tekstu z pliku. £añcuch jest -przepuszczany przez strftime, wiêc ³atwo umie¶ciæ datê i czas na +%description vhook-imlib2 -l pl.UTF-8 +Ten moduł implementuje tekstową nakładkę dla obrazu. Aktualnie +obsługuje stałą nakładkę lub wczytywanie tekstu z pliku. Łańcuch jest +przepuszczany przez strftime, więc łatwo umieścić datę i czas na obrazie. %package ffserver Summary: FFserver video server -Summary(pl): FFserver - serwer strumieni obrazu +Summary(pl.UTF-8): FFserver - serwer strumieni obrazu Group: Daemons Requires(post,preun): /sbin/chkconfig -Requires: rc-scripts >= 0.4.0.10 Requires: %{name}-libs = %{version}-%{release} +Requires: rc-scripts >= 0.4.0.10 %description ffserver FFserver is a streaming server for both audio and video. It supports @@ -206,59 +194,107 @@ several live feeds, streaming from files and time shifting on live feeds (you can seek to positions in the past on each live feed, provided you specify a big enough feed storage in ffserver.conf). -%description ffserver -l pl -FFserver to serwer strumieni dla d¼wiêku i obrazu. Obs³uguje kilka -¼róde³ na ¿ywo, przekazywanie strumieni z plików i przesuwanie w -czasie dla ¼róde³ na ¿ywo (mo¿na przeskakiwaæ na po³o¿enia w -przesz³o¶ci dla ka¿dego ¼ród³a na ¿ywo, pod warunkiem odpowiednio -du¿ej przestrzeni na dane skonfigurowanej w ffserver.conf). +%description ffserver -l pl.UTF-8 +FFserver to serwer strumieni dla dźwięku i obrazu. Obsługuje kilka +źródeł na żywo, przekazywanie strumieni z plików i przesuwanie w +czasie dla źródeł na żywo (można przeskakiwać na położenia w +przeszłości dla każdego źródła na żywo, pod warunkiem odpowiednio +dużej przestrzeni na dane skonfigurowanej w ffserver.conf). %prep -%setup -q -n %{name} +%setup -q %patch0 -p1 %patch1 -p1 %patch2 -p1 -%if %{with amr} -cd libavcodec -mkdir amrwb_float -mkdir amr -mkdir amr_float -# put 26204-xxx.zip into libavcodec/amrwb_float -cd amrwb_float -unzip -j %{SOURCE4} -unzip -j 26204-530_ANSI-C_source_code.zip -# put 26104-xxx.zip into libavcodec/amr_float -cd ../amr_float -unzip -j %{SOURCE6} -unzip -j 26104-540_ANSI_C_source_code.zip -cd ../.. -%endif + +# 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]'`" +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 + ;; +*) + cat <