# This SPEC file is created in a way that tries to solve various demands. 
# First of all it tries to create packages that will easily replace both the 
# Fedora Core default packages and also replace the extra rpms provided 
# by Fedora.us or freshrpms.net.
# At the same time they will only include plugins for which you have the needed
# packages installed at the time you run autogen.sh. This means that if you
# are not careful you might end up with less plugins than what the standard 
# packages provide, which in turn means things might stop working for you. 
# So make sure you have an idea of what you do before creating RPMS using this 
# SPEC file.

%define         register        %{_bindir}/gst-register-%{majorminor} > /dev/null 2>&1 || :
%define         gst_minver      0.7.6
%define         gstp_minver     0.7.6

Name: 		gstreamer-plugins
Version: 	@VERSION@
Release: 	@GST_PLUGINS_VERSION_RELEASE@
Summary: 	GStreamer Streaming-media framework plug-ins.

%define 	majorminor	@GST_MAJORMINOR@

Group: 		Applications/Multimedia
License: 	LGPL
URL:		http://gstreamer.net/
Vendor:         GStreamer Backpackers Team <package@gstreamer.net>
Source:         http://gstreamer.freedesktop.org/src/gst-plugins/gst-plugins-%{version}.tar.gz
BuildRoot: 	%{_tmppath}/%{name}-%{version}-root

%define         _glib2          @GLIB2_REQ@

Requires:       glib2 >= %_glib2
BuildRequires:  glib2-devel >= %_glib2
Requires: 	gstreamer >= %{gst_minver}
BuildRequires: 	gstreamer-devel >= %{gst_minver}
BuildRequires:	gstreamer-tools >= %{gst_minver}
BuildRequires:  gcc-c++
BuildRequires:  XFree86-devel

@USE_ARTS_TRUE@Requires:      arts >= 1.1.4
@USE_ARTS_TRUE@BuildRequires: arts-devel >= 1.1.4
@USE_ARTS_TRUE@BuildRequires: gcc-c++
@USE_AUDIOFILE_TRUE@Requires:      audiofile >= 0.2.1
@USE_AUDIOFILE_TRUE@BuildRequires: audiofile-devel >= 0.2.1
@USE_CDPARANOIA_TRUE@Requires:      cdparanoia-libs >= alpha9.7
@USE_CDPARANOIA_TRUE@BuildRequires: cdparanoia-devel >= alpha9.7
@USE_ESD_TRUE@Requires:      esound >= 0.2.8
@USE_ESD_TRUE@BuildRequires: esound-devel >= 0.2.8
@USE_ESD_TRUE@Obsoletes:     gstreamer-esd
@USE_ESD_TRUE@
@USE_ESD_TRUE@Provides:		gstreamer-audiosrc
@USE_ESD_TRUE@Provides:		gstreamer-audiosink
@USE_FLAC_TRUE@Requires:      flac >= 1.0.3
@USE_FLAC_TRUE@BuildRequires: flac-devel >= 1.0.3
@USE_GCONF_TRUE@Requires: 	GConf2
@USE_GCONF_TRUE@BuildRequires: 	GConf2-devel
@USE_GNOME_VFS_TRUE@Requires:      gnome-vfs2 > 1.9.4.00
@USE_GNOME_VFS_TRUE@BuildRequires: gnome-vfs2-devel > 1.9.4.00
@USE_HERMES_TRUE@Requires:      Hermes >= 1.3.0
@USE_HERMES_TRUE@BuildRequires: Hermes-devel >= 1.3.0
@USE_JPEG_TRUE@Requires:      libjpeg
@USE_JPEG_TRUE@BuildRequires: libjpeg-devel
@USE_LIBPNG_TRUE@Requires:      libpng >= 1.2.0
@USE_LIBPNG_TRUE@BuildRequires: libpng-devel >= 1.2.0
@USE_MIKMOD_TRUE@Requires:      mikmod
@USE_MIKMOD_TRUE@BuildRequires: mikmod
@USE_OSS_TRUE@BuildRequires: glibc-devel
@USE_PANGO_TRUE@Requires:        pango
@USE_PANGO_TRUE@BuildRequires:   pango-devel
@USE_RAW1394_TRUE@Requires:      libraw1394
@USE_RAW1394_TRUE@BuildRequires: libraw1394-devel
@USE_SDL_TRUE@Requires:      SDL >= 1.2.0
@USE_SDL_TRUE@BuildRequires: SDL-devel >= 1.2.0
@USE_SDL_TRUE@#SDL-devel should require XFree86-devel because it links to it
@USE_SDL_TRUE@#only it doesn't seem to do that currently
@USE_SDL_TRUE@BuildRequires: 	XFree86-devel
@USE_SPEEX_TRUE@Requires:	speex
@USE_SPEEX_TRUE@BuildRequires:	speex-devel
@USE_SMOOTHWAVE_TRUE@Requires:	gtk2
@USE_SMOOTHWAVE_TRUE@BuildRequires:	gtk2-devel
@USE_VORBIS_TRUE@Requires:      libogg >= 1.0
@USE_VORBIS_TRUE@Requires:      libvorbis >= 1.0
@USE_VORBIS_TRUE@BuildRequires: libogg-devel >= 1.0
@USE_VORBIS_TRUE@BuildRequires: libvorbis-devel >= 1.0
@USE_XVIDEO_TRUE@Requires: 	XFree86-libs
@USE_XVIDEO_TRUE@BuildRequires: XFree86-devel
# Snapshot plugin
@USE_HERMES_TRUE@@USE_LIBPNG_TRUE@Requires:	libpng

%description
GStreamer is a streaming-media framework, based on graphs of filters which
operate on media data. Applications using this library can do anything
from real-time sound processing to playing videos, and just about anything
else media-related.  Its plugin-based architecture means that new data
types or processing capabilities can be added simply by installing new
plug-ins.

%prep
%setup -n gst-plugins-%{version}
%build
%configure \
  --with-gdk-pixbuf-loader-dir=$RPM_BUILD_ROOT%{_libdir}/gtk-2.0/2.2.0/loaders \
  --enable-debug \
  --enable-DEBUG 

make %{?_smp_mflags}
                                                                                
%install
rm -rf $RPM_BUILD_ROOT

export GCONF_DISABLE_MAKEFILE_SCHEMA_INSTALL=1
%makeinstall
unset GCONF_DISABLE_MAKEFILE_SCHEMA_INSTALL
                                                                                
# Clean out files that should not be part of the rpm.
rm -f $RPM_BUILD_ROOT%{_libdir}/gstreamer-%{majorminor}/*.la
rm -f $RPM_BUILD_ROOT%{_libdir}/gstreamer-%{majorminor}/*.a
rm -f $RPM_BUILD_ROOT%{_libdir}/*.a
rm -f $RPM_BUILD_ROOT%{_libdir}/*.la
rm -f $RPM_BUILD_ROOT%{_libdir}/gstreamer-%{majorminor}/libgstgdkpixbuf.so

%clean
rm -rf $RPM_BUILD_ROOT

%files
%defattr(-, root, root)
%doc AUTHORS COPYING README REQUIREMENTS

# helper programs
%{_bindir}/gst-launch-ext-%{majorminor}
%{_bindir}/gst-visualise-%{majorminor}
%{_mandir}/man1/gst-launch-ext-%{majorminor}.*
%{_mandir}/man1/gst-visualise-%{majorminor}*

# schema files
@USE_GCONF_TRUE@%{_sysconfdir}/gconf/schemas/gstreamer-%{majorminor}.schemas

# libraries
%{_libdir}/libgstplay-%{majorminor}.so.*
%{_libdir}/libgstinterfaces-%{majorminor}.so.*
@USE_GCONF_TRUE@%{_libdir}/libgstgconf-%{majorminor}.so.*

# plugin helper libraries
%{_libdir}/gstreamer-%{majorminor}/libgstaudio.so
%{_libdir}/gstreamer-%{majorminor}/libgstidct.so
%{_libdir}/gstreamer-%{majorminor}/libgstriff.so
%{_libdir}/gstreamer-%{majorminor}/libgstvideo.so
%{_libdir}/gstreamer-%{majorminor}/libgstxwindowlistener.so

# non-core plugins without external dependencies
%{_libdir}/gstreamer-%{majorminor}/libgstac3parse.so
%{_libdir}/gstreamer-%{majorminor}/libgstadder.so
%{_libdir}/gstreamer-%{majorminor}/libgstalaw.so
%{_libdir}/gstreamer-%{majorminor}/libgstasf.so
%{_libdir}/gstreamer-%{majorminor}/libgstaudioconvert.so
%{_libdir}/gstreamer-%{majorminor}/libgstaudiofilter.so
%{_libdir}/gstreamer-%{majorminor}/libgstaudioscale.so
%{_libdir}/gstreamer-%{majorminor}/libgstauparse.so
%{_libdir}/gstreamer-%{majorminor}/libgstavi.so
%{_libdir}/gstreamer-%{majorminor}/libgstcdplayer.so
%{_libdir}/gstreamer-%{majorminor}/libgstcdxaparse.so
%{_libdir}/gstreamer-%{majorminor}/libgstchart.so
%{_libdir}/gstreamer-%{majorminor}/libgstcolorspace.so
%{_libdir}/gstreamer-%{majorminor}/libgstcutter.so
%{_libdir}/gstreamer-%{majorminor}/libgstdebug.so
%{_libdir}/gstreamer-%{majorminor}/libgstdeinterlace.so
%{_libdir}/gstreamer-%{majorminor}/libgstefence.so
%{_libdir}/gstreamer-%{majorminor}/libgsteffectv.so
%{_libdir}/gstreamer-%{majorminor}/libgstfestival.so
%{_libdir}/gstreamer-%{majorminor}/libgstffmpegcolorspace.so
%{_libdir}/gstreamer-%{majorminor}/libgstfilter.so
%{_libdir}/gstreamer-%{majorminor}/libgstflxdec.so
%{_libdir}/gstreamer-%{majorminor}/libgstgamma.so
%{_libdir}/gstreamer-%{majorminor}/libgstgoom.so
%{_libdir}/gstreamer-%{majorminor}/libgstinterleave.so
%{_libdir}/gstreamer-%{majorminor}/libgstlevel.so
%{_libdir}/gstreamer-%{majorminor}/libgstmatroska.so
%{_libdir}/gstreamer-%{majorminor}/libgstmedian.so
%{_libdir}/gstreamer-%{majorminor}/libgstmixmatrix.so
%{_libdir}/gstreamer-%{majorminor}/libgstmodplug.so
%{_libdir}/gstreamer-%{majorminor}/libgstmonoscope.so
%{_libdir}/gstreamer-%{majorminor}/libgstmulaw.so
%{_libdir}/gstreamer-%{majorminor}/libgstnavigationtest.so
%{_libdir}/gstreamer-%{majorminor}/libgstoverlay.so
%{_libdir}/gstreamer-%{majorminor}/libgstpassthrough.so
%{_libdir}/gstreamer-%{majorminor}/libgstplayondemand.so
%ifarch %{ix86}
%{_libdir}/gstreamer-%{majorminor}/libgstqcam.so
%endif
%{_libdir}/gstreamer-%{majorminor}/libgstresample.so
%{_libdir}/gstreamer-%{majorminor}/libgstrmdemux.so
%{_libdir}/gstreamer-%{majorminor}/libgstrtjpeg.so
%{_libdir}/gstreamer-%{majorminor}/libgstrtp.so
%{_libdir}/gstreamer-%{majorminor}/libgstqtdemux.so
%{_libdir}/gstreamer-%{majorminor}/libgstsilence.so
%{_libdir}/gstreamer-%{majorminor}/libgstsinesrc.so
%{_libdir}/gstreamer-%{majorminor}/libgstsmooth.so
%{_libdir}/gstreamer-%{majorminor}/libgstsmpte.so
%{_libdir}/gstreamer-%{majorminor}/libgstspectrum.so
%{_libdir}/gstreamer-%{majorminor}/libgstspeed.so
%{_libdir}/gstreamer-%{majorminor}/libgststereo.so
%{_libdir}/gstreamer-%{majorminor}/libgstswitch.so
%{_libdir}/gstreamer-%{majorminor}/libgstsynaesthesia.so
%{_libdir}/gstreamer-%{majorminor}/libgsttagedit.so
%{_libdir}/gstreamer-%{majorminor}/libgsttcp.so
%{_libdir}/gstreamer-%{majorminor}/libgsttypefindfunctions.so
%{_libdir}/gstreamer-%{majorminor}/libgstudp.so
%{_libdir}/gstreamer-%{majorminor}/libgstvbidec.so
%{_libdir}/gstreamer-%{majorminor}/libgstvcdsrc.so
%{_libdir}/gstreamer-%{majorminor}/libgstvideobalance.so
%{_libdir}/gstreamer-%{majorminor}/libgstvideocrop.so
%{_libdir}/gstreamer-%{majorminor}/libgstvideodrop.so
%{_libdir}/gstreamer-%{majorminor}/libgstvideofilter.so
%{_libdir}/gstreamer-%{majorminor}/libgstvideoflip.so
%{_libdir}/gstreamer-%{majorminor}/libgstvideoscale.so
%{_libdir}/gstreamer-%{majorminor}/libgstvideotestsrc.so
%{_libdir}/gstreamer-%{majorminor}/libgstvolenv.so
%{_libdir}/gstreamer-%{majorminor}/libgstvolume.so
%{_libdir}/gstreamer-%{majorminor}/libgstwavenc.so
%{_libdir}/gstreamer-%{majorminor}/libgstwavparse.so
%{_libdir}/gstreamer-%{majorminor}/libgsty4menc.so
%{_libdir}/gstreamer-%{majorminor}/libgstalpha.so
%{_libdir}/gstreamer-%{majorminor}/libgstalphacolor.so
%{_libdir}/gstreamer-%{majorminor}/libgstaudiorate.so
%{_libdir}/gstreamer-%{majorminor}/libgstdecodebin.so
%{_libdir}/gstreamer-%{majorminor}/libgstmultifilesink.so
%{_libdir}/gstreamer-%{majorminor}/libgstmultipart.so
%{_libdir}/gstreamer-%{majorminor}/libgstplaybin.so
%{_libdir}/gstreamer-%{majorminor}/libgstvideobox.so
%{_libdir}/gstreamer-%{majorminor}/libgstvideomixer.so
%{_libdir}/gstreamer-%{majorminor}/libgstvideorate.so
%{_libdir}/gstreamer-%{majorminor}/libgsttheora.so
%{_libdir}/gstreamer-%{majorminor}/libgstmng.so

# gstreamer-plugins with external dependencies but in the main package
@USE_ARTS_TRUE@%{_libdir}/gstreamer-%{majorminor}/libgstarts.so
@USE_ARTSC_TRUE@%{_libdir}/gstreamer-%{majorminor}/libgstartsdsink.so
@USE_AUDIOFILE_TRUE@%{_libdir}/gstreamer-%{majorminor}/libgstaudiofile.so
@USE_CDPARANOIA_TRUE@%{_libdir}/gstreamer-%{majorminor}/libgstcdparanoia.so
@USE_ESD_TRUE@%{_libdir}/gstreamer-%{majorminor}/libgstesd.so
@USE_FLAC_TRUE@%{_libdir}/gstreamer-%{majorminor}/libgstflac.so
@USE_GNOME_VFS_TRUE@%{_libdir}/gstreamer-%{majorminor}/libgstgnomevfs.so
@USE_HERMES_TRUE@%{_libdir}/gstreamer-%{majorminor}/libgsthermescolorspace.so
@USE_SMOOTHWAVE_TRUE@%{_libdir}/gstreamer-%{majorminor}/libgstsmoothwave.so
@USE_JPEG_TRUE@%{_libdir}/gstreamer-%{majorminor}/libgstjpeg.so
@USE_MIKMOD_TRUE@%{_libdir}/gstreamer-%{majorminor}/libgstmikmod.so
@USE_SDL_TRUE@%{_libdir}/gstreamer-%{majorminor}/libgstsdlvideosink.so
@USE_VORBIS_TRUE@%{_libdir}/gstreamer-%{majorminor}/libgstvorbis.so
@USE_VORBIS_TRUE@%{_libdir}/gstreamer-%{majorminor}/libgstogg.so
@USE_LIBPNG_TRUE@%{_libdir}/gstreamer-%{majorminor}/libgstpng.so
@USE_OSS_TRUE@%{_libdir}/gstreamer-%{majorminor}/libgstossaudio.so
@USE_V4L_TRUE@%{_libdir}/gstreamer-%{majorminor}/libgstvideo4linux.so
@USE_RAW1394_TRUE@%{_libdir}/gstreamer-%{majorminor}/libgst1394.so
# Snapshot plugin uses libpng
@USE_LIBPNG_TRUE@%{_libdir}/gstreamer-%{majorminor}/libgstsnapshot.so
@USE_PANGO_TRUE@%{_libdir}/gstreamer-%{majorminor}/libgsttextoverlay.so
@USE_PANGO_TRUE@%{_libdir}/gstreamer-%{majorminor}/libgsttimeoverlay.so
@USE_SPEEX_TRUE@%{_libdir}/gstreamer-%{majorminor}/libgstspeex.so
@USE_LIBCACA_TRUE@%{_libdir}/gstreamer-%{majorminor}/libgstcacasink.so
@USE_XVIDEO_TRUE@%{_libdir}/gstreamer-%{majorminor}/libgstximagesink.so
@USE_XVIDEO_TRUE@%{_libdir}/gstreamer-%{majorminor}/libgstxvimagesink.so
@USE_SNDFILE_TRUE@%{_libdir}/gstreamer-%{majorminor}/libgstsndfile.so
@USE_MUSICBRAINZ_TRUE@%{_libdir}/gstreamer-%{majorminor}/libgsttrm.so

# Docs
%{_datadir}/locale

%post
@USE_GCONF_TRUE@export GCONF_CONFIG_SOURCE=`gconftool-2 --get-default-source`
@USE_GCONF_TRUE@gconftool-2 --makefile-install-rule %{_sysconfdir}/gconf/schemas/gstreamer-%{majorminor}.schemas > /dev/null
%{_bindir}/gst-register-%{majorminor} > /dev/null 2> /dev/null

%package audio
Summary:        Additional audio plugins for GStreamer
Group:          Applications/Multimedia
                                                                                
@USE_SIDPLAY_TRUE@BuildRequires:  libsidplay-devel >= 1.36.0
@USE_SHOUT_TRUE@BuildRequires:  libshout-devel <= 2.0
# @USE_SHOUT2_TRUE@BuildRequires: libshout-devel >= 2.0
@USE_LADSPA_TRUE@BuildRequires:  ladspa-devel
                                                                                
Requires:       gstreamer-plugins >= %{gstp_minver}
Requires(pre):  %{_bindir}/gst-register-%{majorminor}
Requires(post): %{_bindir}/gst-register-%{majorminor}

@USE_LADSPA_TRUE@Provides:       gstreamer-ladspa = %{version}-%{release}
@USE_SIDPLAY_TRUE@Provides:       gstreamer-sid = %{version}-%{release}
@USE_SHOUT_TRUE@Provides:       gstreamer-shout = %{version}-%{release}
                                                                                
%description audio
This package contains additional audio plugins for GStreamer, including
- codec for sid (C64)
- a shout element to stream to icecast servers
- a ladspa elements wrapping LADSPA plugins
# - a shout 2 element

%files audio
%defattr(-, root, root, -)
@USE_LADSPA_TRUE@%{_libdir}/gstreamer-%{majorminor}/libgstladspa.so
@USE_SIDPLAY_TRUE@%{_libdir}/gstreamer-%{majorminor}/libgstsid.so
@USE_SHOUT_TRUE@%{_libdir}/gstreamer-%{majorminor}/libgstshout.so
# @USE_SHOUT2_TRUE@%{_libdir}/gstreamer-%{majorminor}/libgstshout2.so

%post audio
%{register}
%postun audio
%{register}

%package extra-audio
Summary:        Extra audio plugins for GStreamer
Group:          Applications/Multimedia
                                                                                
@USE_FAAD_TRUE@BuildRequires:  faad2-devel >= 2.0
@USE_GSM_TRUE@BuildRequires:  gsm-devel >= 1.0.10
@USE_LAME_TRUE@BuildRequires:  lame-devel >= 3.89
@USE_MAD_TRUE@BuildRequires:  libid3tag-devel >= 0.15.0
@USE_MAD_TRUE@BuildRequires:  libmad-devel >= 0.15.0
                                                                                
Requires:       gstreamer-plugins >= %{gstp_minver}
Requires(pre):  %{_bindir}/gst-register-%{majorminor}
Requires(post): %{_bindir}/gst-register-%{majorminor}
                                                                                
@USE_FAAD_TRUE@Provides:      gstreamer-faad = %{version}-%{release}
@USE_GSM_TRUE@Provides:       gstreamer-gsm = %{version}-%{release}
@USE_LAME_TRUE@Provides:      gstreamer-lame = %{version}-%{release}
@USE_MAD_TRUE@Provides:       gstreamer-mad = %{version}-%{release}
                                                                                
%description extra-audio
This package contains extra audio plugins for GStreamer, including
- gsm decoding
- faad2 decoding
- mad mp3 decoding
- lame mp3 encoding
                                                                                
%post extra-audio
%{register}
%postun extra-audio
%{register}
                                                                                
%files extra-audio
%defattr(-, root, root, -)
@USE_FAAD_TRUE@%{_libdir}/gstreamer-%{majorminor}/libgstfaad.so
@USE_GSM_TRUE@%{_libdir}/gstreamer-%{majorminor}/libgstgsm.so
@USE_LAME_TRUE@%{_libdir}/gstreamer-%{majorminor}/libgstlame.so
@USE_MAD_TRUE@%{_libdir}/gstreamer-%{majorminor}/libgstmad.so

%package extra-dvd
Summary:        DVD plugins for GStreamer
Group:          Applications/Multimedia
                                                                                
@USE_A52DEC_TRUE@BuildRequires:  a52dec-devel >= 0.7.3
@USE_DVDNAV_TRUE@BuildRequires:  libdvdnav-devel >= 0.1.3
@USE_DVDREAD_TRUE@BuildRequires:  libdvdread-devel >= 0.9.0
                                                                                
Requires:       gstreamer-plugins >= %{gstp_minver}
Requires:       gstreamer-plugins-extra-video >= %{gstp_minver}
Requires(pre):  %{_bindir}/gst-register-%{majorminor}
Requires(post): %{_bindir}/gst-register-%{majorminor}
                                                                                
Provides:       gstreamer-dvd = %{version}-%{release}
@USE_A52DEC_TRUE@Provides:       gstreamer-       = %{version}-%{release}
@USE_DVDNAV_TRUE@Provides:       gstreamer-dvdnavsrc = %{version}-%{release}
@USE_DVDREAD_TRUE@Provides:       gstreamer-dvdreadsrc = %{version}-%{release}
                                                                                
%description extra-dvd
This package contains dvd plugins for GStreamer, including

- libdvdread
      decoding
                                                                                
%post extra-dvd
%{register}
%postun extra-dvd
%{register}
                                                                                
%files extra-dvd
%defattr(-, root, root, -)
@USE_A52DEC_TRUE@%{_libdir}/gstreamer-%{majorminor}/libgsta52dec.so
@USE_DVDNAV_TRUE@%{_libdir}/gstreamer-%{majorminor}/libgstdvdnavsrc.so
@USE_DVDREAD_TRUE@%{_libdir}/gstreamer-%{majorminor}/libgstdvdreadsrc.so

%package video
Summary:        Additional video plugins for GStreamer
Group:          Applications/Multimedia
                                                                                
@USE_AALIB_TRUE@BuildRequires:  aalib-devel >= 1.3
                                                                                
Requires:       gstreamer-plugins >= %{gstp_minver}
Requires(pre):  %{_bindir}/gst-register-%{majorminor}
Requires(post): %{_bindir}/gst-register-%{majorminor}
                                                                                
@USE_AALIB_TRUE@Provides:       gstreamer-aasink = %{version}-%{release}
                                                                                
%description video
This package contains additional video plugins for GStreamer, including
- an output sink based on aalib (ASCII art output)
- an element for decoding dv streams using libdv
- an output sink based on cacalib (color ASCII art output)
- A Dirac video format decoder
- An output sink based on OpenGL

%files video
%defattr(-, root, root, -)
@USE_AALIB_TRUE@%{_libdir}/gstreamer-%{majorminor}/libgstaasink.so
@USE_LIBDV_TRUE@%{_libdir}/gstreamer-%{majorminor}/libgstdvdec.so
@USE_LIBCACA_TRUE@%{_libdir}/gstreamer-%{majorminor}/libgstcacasink.so
@USE_DIRAC_TRUE@%{_libdir}/gstreamer-%{majorminor}/libgstdirac.so
@USE_OPENGL_TRUE@%{_libdir}/gstreamer-%{majorminor}/libgstglimagesink.so

%post video
%{register}
%postun video
%{register}

%package extra-video
Summary:        Extra video plugins for GStreamer
Group:          Applications/Multimedia
                                                                                
@USE_LIBFAME_TRUE@BuildRequires:  libfame-devel >= 0.9.0
@USE_MPEG2DEC_TRUE@BuildRequires:  mpeg2dec-devel >= 0.4.0
@USE_SWFDEC_TRUE@BuildRequires:  swfdec-devel
                                                                                
Requires:       gstreamer-plugins >= %{gstp_minver}
Requires:       gstreamer-plugins-extra-audio >= %{gstp_minver}
Requires(pre):  %{_bindir}/gst-register-%{majorminor}
Requires(post): %{_bindir}/gst-register-%{majorminor}
                                                                                
@USE_LIBFAME_TRUE@Provides:       gstreamer-libfame = %{version}-%{release}
@USE_MPEG2DEC_TRUE@Provides:       gstreamer-mpeg2dec = %{version}-%{release}
@USE_SWFDEC_TRUE@Provides:       gstreamer-swfdec = %{version}-%{release}
                                                                                
%description extra-video
This package contains extra video plugins for GStreamer, including
- libfame MPEG video encoding
- mpeg2dec MPEG-2 decoding
- swfdec Flash decoding
                                                                                
%post extra-video
%{register}
%postun extra-video
%{register}
                                                                                
%files extra-video
%defattr(-, root, root, -)
@USE_LIBFAME_TRUE@%{_libdir}/gstreamer-%{majorminor}/libgstlibfame.so
@USE_MPEG2DEC_TRUE@%{_libdir}/gstreamer-%{majorminor}/libgstmpeg2dec.so
%{_libdir}/gstreamer-%{majorminor}/libgstmp1videoparse.so
%{_libdir}/gstreamer-%{majorminor}/libgstmpeg1systemencode.so
%{_libdir}/gstreamer-%{majorminor}/libgstmpeg2subt.so
%{_libdir}/gstreamer-%{majorminor}/libgstmpegaudio.so
%{_libdir}/gstreamer-%{majorminor}/libgstmpegaudioparse.so
%{_libdir}/gstreamer-%{majorminor}/libgstmpegstream.so
@USE_SWFDEC_TRUE@%{_libdir}/gstreamer-%{majorminor}/libgstswfdec.so

%package -n gstreamer-plugins-devel
Summary: 	GStreamer Plugin Library Headers.
Group: 		Development/Libraries
Requires: 	gstreamer-plugins = %{version}
Provides:	gstreamer-play-devel = %{version}

%description -n gstreamer-plugins-devel
GStreamer support libraries header files.

%files -n gstreamer-plugins-devel
%defattr(-, root, root)
# plugin helper library headers
%{_includedir}/gstreamer-%{majorminor}/gst/audio/audio.h
%{_includedir}/gstreamer-%{majorminor}/gst/audio/audioclock.h
%{_includedir}/gstreamer-%{majorminor}/gst/audio/gstaudiofilter.h
%{_includedir}/gstreamer-%{majorminor}/gst/floatcast/floatcast.h
%{_includedir}/gstreamer-%{majorminor}/gst/idct/idct.h
%{_includedir}/gstreamer-%{majorminor}/gst/resample/resample.h
%{_includedir}/gstreamer-%{majorminor}/gst/riff/riff-ids.h
%{_includedir}/gstreamer-%{majorminor}/gst/riff/riff-media.h
%{_includedir}/gstreamer-%{majorminor}/gst/riff/riff-read.h
%{_includedir}/gstreamer-%{majorminor}/gst/video/video.h
%{_includedir}/gstreamer-%{majorminor}/gst/video/videosink.h
# plugin interface headers
%{_includedir}/gstreamer-%{majorminor}/gst/mixer/mixer.h
%{_includedir}/gstreamer-%{majorminor}/gst/mixer/mixertrack.h
%{_includedir}/gstreamer-%{majorminor}/gst/mixer/mixer-enumtypes.h
%{_includedir}/gstreamer-%{majorminor}/gst/navigation/navigation.h
%{_includedir}/gstreamer-%{majorminor}/gst/colorbalance/colorbalance.h
%{_includedir}/gstreamer-%{majorminor}/gst/colorbalance/colorbalancechannel.h
%{_includedir}/gstreamer-%{majorminor}/gst/colorbalance/colorbalance-enumtypes.h
%{_includedir}/gstreamer-%{majorminor}/gst/propertyprobe/propertyprobe.h
%{_includedir}/gstreamer-%{majorminor}/gst/tuner/tuner.h
%{_includedir}/gstreamer-%{majorminor}/gst/tuner/tunerchannel.h
%{_includedir}/gstreamer-%{majorminor}/gst/tuner/tunernorm.h
%{_includedir}/gstreamer-%{majorminor}/gst/tuner/tuner-enumtypes.h
%{_includedir}/gstreamer-%{majorminor}/gst/xoverlay/xoverlay.h
%{_includedir}/gstreamer-%{majorminor}/gst/xwindowlistener/xwindowlistener.h
%{_includedir}/gstreamer-%{majorminor}/gst/mixer/mixeroptions.h

# library headers
@USE_GCONF_TRUE@%{_includedir}/gstreamer-%{majorminor}/gst/gconf/gconf.h
%{_includedir}/gstreamer-%{majorminor}/gst/media-info/media-info.h
%{_includedir}/gstreamer-%{majorminor}/gst/play/play.h
%{_includedir}/gstreamer-%{majorminor}/gst/play/play-enumtypes.h
%{_includedir}/gstreamer-%{majorminor}/gst/tag/tag.h
# pkg-config files
@USE_GCONF_TRUE@%{_libdir}/pkgconfig/gstreamer-gconf-%{majorminor}.pc
%{_libdir}/pkgconfig/gstreamer-interfaces-%{majorminor}.pc
%{_libdir}/pkgconfig/gstreamer-libs-%{majorminor}.pc
%{_libdir}/pkgconfig/gstreamer-media-info-%{majorminor}.pc
%{_libdir}/pkgconfig/gstreamer-play-%{majorminor}.pc
%{_libdir}/pkgconfig/gstreamer-plugins-%{majorminor}.pc
# .so files
@USE_GCONF_TRUE@%{_libdir}/libgstgconf-%{majorminor}.so
%{_libdir}/libgstmedia-info-%{majorminor}.so*
%{_libdir}/libgstplay-%{majorminor}.so
%{_libdir}/libgstinterfaces-%{majorminor}.so

# Here are packages not in the base plugins package but not dependant
# on an external lib

# Here are all the packages depending on external libs #

### ALSA ###
@USE_ALSA_TRUE@%package -n gstreamer-alsa
@USE_ALSA_TRUE@Summary:  GStreamer plug-ins for the ALSA sound system.
@USE_ALSA_TRUE@Group:    Applications/Multimedia
@USE_ALSA_TRUE@Requires: gstreamer-plugins = %{version}
@USE_ALSA_TRUE@
@USE_ALSA_TRUE@Provides:	gstreamer-audiosrc
@USE_ALSA_TRUE@Provides:	gstreamer-audiosink
@USE_ALSA_TRUE@
@USE_ALSA_TRUE@%description -n gstreamer-alsa
@USE_ALSA_TRUE@Input and output plug-in for the ALSA soundcard driver system. 
@USE_ALSA_TRUE@This plug-in depends on Alsa 0.9.x or higher.
@USE_ALSA_TRUE@
@USE_ALSA_TRUE@%files -n gstreamer-alsa
@USE_ALSA_TRUE@%defattr(-, root, root)
@USE_ALSA_TRUE@%{_libdir}/gstreamer-%{majorminor}/libgstalsa.so
@USE_ALSA_TRUE@
@USE_ALSA_TRUE@%post -n gstreamer-alsa
@USE_ALSA_TRUE@%{register}
@USE_ALSA_TRUE@%postun -n gstreamer-alsa
@USE_ALSA_TRUE@%{register}

## DXR3 ###
@USE_DXR3_TRUE@%package -n gstreamer-dxr3
@USE_DXR3_TRUE@Summary:       GStreamer plug-in for playback using dxr3 card.
@USE_DXR3_TRUE@Group:         Applications/Multimedia
@USE_DXR3_TRUE@Requires:      gstreamer-plugins = %{version}
@USE_DXR3_TRUE@Requires:      em8300 >= 0.12.0
@USE_DXR3_TRUE@BuildRequires: em8300-devel >= 0.12.0
@USE_DXR3_TRUE@
@USE_DXR3_TRUE@%description -n gstreamer-dxr3
@USE_DXR3_TRUE@Plug-in supporting DVD playback using cards
@USE_DXR3_TRUE@with the dxr3 chipset like Hollywood Plus
@USE_DXR3_TRUE@and Creative Labs DVD cards.
@USE_DXR3_TRUE@
@USE_DXR3_TRUE@%files -n gstreamer-dxr3
@USE_DXR3_TRUE@%defattr(-, root, root)
@USE_DXR3_TRUE@%{_libdir}/gstreamer-%{majorminor}/libgstdxr3.so
@USE_DXR3_TRUE@
@USE_DXR3_TRUE@%post -n gstreamer-dxr3
@USE_DXR3_TRUE@%{register}
@USE_DXR3_TRUE@
@USE_DXR3_TRUE@%postun -n gstreamer-dxr3
@USE_DXR3_TRUE@%{register}

### FAAC ###
@USE_FAAC_TRUE@%package -n gstreamer-faac
@USE_FAAC_TRUE@Summary:GStreamer plug-ins for AAC audio playback.
@USE_FAAC_TRUE@Group:         Applications/Multimedia
@USE_FAAC_TRUE@Requires:      gstreamer-plugins = %{version}
@USE_FAAC_TRUE@Requires:      faac >= 1.23
@USE_FAAC_TRUE@BuildRequires: faac-devel >= 1.23
@USE_FAAC_TRUE@
@USE_FAAC_TRUE@%description -n gstreamer-faac
@USE_FAAC_TRUE@Plug-ins for playing AAC audio
@USE_FAAC_TRUE@
@USE_FAAC_TRUE@%files -n gstreamer-faac
@USE_FAAC_TRUE@%defattr(-, root, root)
@USE_FAAC_TRUE@%{_libdir}/gstreamer-%{majorminor}/libgstfaac.so
@USE_FAAC_TRUE@%post -n  gstreamer-faac
@USE_FAAC_TRUE@%{register}
@USE_FAAC_TRUE@
@USE_FAAC_TRUE@%postun -n  gstreamer-faac
@USE_FAAC_TRUE@%{register}

#### JACK AUDIO CONNECTION KIT ###
@USE_JACK_TRUE@%package -n gstreamer-jack
@USE_JACK_TRUE@Summary:  GStreamer plug-in for the Jack Sound Server.
@USE_JACK_TRUE@Group:    Applications/Multimedia
@USE_JACK_TRUE@Requires: gstreamer-plugins = %{version}
@USE_JACK_TRUE@Requires: jack-audio-connection-kit >= 0.28.0
@USE_JACK_TRUE@
@USE_JACK_TRUE@Provides:	gstreamer-audiosrc
@USE_JACK_TRUE@Provides:	gstreamer-audiosink
@USE_JACK_TRUE@
@USE_JACK_TRUE@%description -n gstreamer-jack
@USE_JACK_TRUE@Plug-in for the JACK professional sound server.
@USE_JACK_TRUE@
@USE_JACK_TRUE@%files -n gstreamer-jack
@USE_JACK_TRUE@%defattr(-, root, root)
@USE_JACK_TRUE@%{_libdir}/gstreamer-%{majorminor}/libgstjack.so
@USE_JACK_TRUE@
@USE_JACK_TRUE@%post -n gstreamer-jack
@USE_JACK_TRUE@%{register}
@USE_JACK_TRUE@
@USE_JACK_TRUE@%postun -n gstreamer-jack
@USE_JACK_TRUE@%{register}

#### NETWORK AUDIO SYSTEM  ###
@USE_NAS_TRUE@%package -n gstreamer-nas
@USE_NAS_TRUE@Summary:  GStreamer plug-in for the Network Audio System.
@USE_NAS_TRUE@Group:    Applications/Multimedia
@USE_NAS_TRUE@Requires: gstreamer-plugins = %{version}
@USE_NAS_TRUE@Requires: libnas2 >= 1.6
@USE_NAS_TRUE@
@USE_NAS_TRUE@%description -n gstreamer-nas
@USE_NAS_TRUE@Plug-in for the Network Audio System sound server.
@USE_NAS_TRUE@
@USE_NAS_TRUE@%files -n gstreamer-nas
@USE_NAS_TRUE@%defattr(-, root, root)
@USE_NAS_TRUE@%{_libdir}/gstreamer-%{majorminor}/libgstnassink.so
@USE_NAS_TRUE@
@USE_NAS_TRUE@%post -n gstreamer-nas
@USE_NAS_TRUE@%{register}
@USE_NAS_TRUE@
@USE_NAS_TRUE@%postun -n gstreamer-nas
@USE_NAS_TRUE@%{register}

### VIDEO 4 LINUX 2 ###
@USE_GST_V4L2_TRUE@%package -n gstreamer-v4l2
@USE_GST_V4L2_TRUE@Summary:       GStreamer Video for Linux 2 plug-in.
@USE_GST_V4L2_TRUE@Group:         Applications/Multimedia
@USE_GST_V4L2_TRUE@Requires:      gstreamer-plugins = %{version}
@USE_GST_V4L2_TRUE@BuildRequires: glibc-devel
@USE_GST_V4L2_TRUE@
@USE_GST_V4L2_TRUE@%description -n gstreamer-v4l2
@USE_GST_V4L2_TRUE@Plug-in for accessing Video for Linux devices.
@USE_GST_V4L2_TRUE@
@USE_GST_V4L2_TRUE@%files -n gstreamer-v4l2
@USE_GST_V4L2_TRUE@%defattr(-, root, root)
@USE_GST_V4L2_TRUE@%{_libdir}/gstreamer-%{majorminor}/libgstvideo4linux2.so
@USE_GST_V4L2_TRUE@
@USE_GST_V4L2_TRUE@%post -n gstreamer-v4l2
@USE_GST_V4L2_TRUE@%{register}
@USE_GST_V4L2_TRUE@
@USE_GST_V4L2_TRUE@%postun -n gstreamer-v4l2
@USE_GST_V4L2_TRUE@%{register}

### XVID ###
@USE_XVID_TRUE@%package -n gstreamer-xvid
@USE_XVID_TRUE@Summary:       GStreamer XVID plug-in.
@USE_XVID_TRUE@Group:         Applications/Multimedia
@USE_XVID_TRUE@Requires:      gstreamer-plugins = %{version}
@USE_XVID_TRUE@BuildRequires: glibc-devel
@USE_XVID_TRUE@
@USE_XVID_TRUE@%description -n gstreamer-xvid
@USE_XVID_TRUE@Plug-in for decoding XVID files.
@USE_XVID_TRUE@
@USE_XVID_TRUE@%files -n gstreamer-xvid
@USE_XVID_TRUE@%defattr(-, root, root)
@USE_XVID_TRUE@%{_libdir}/gstreamer-%{majorminor}/libgstxvid.so
@USE_XVID_TRUE@
@USE_XVID_TRUE@%post -n gstreamer-xvid
@USE_XVID_TRUE@%{_bindir}/gst-register-%{majorminor} > /dev/null 2> /dev/null
@USE_XVID_TRUE@
@USE_XVID_TRUE@%postun -n gstreamer-xvid
@USE_XVID_TRUE@%{_bindir}/gst-register-%{majorminor} > /dev/null 2> /dev/null


%changelog
* Wed Oct 06 2004 Christian Schaller <christian at fluendo dot com>
- Add Wim's new mng decoder plugin
- add shout2 plugin for Zaheer, hope it is correctly done :)

* Wed Sep 29 2004 Christian Schaller <uraeus at gnome dot org>
- Fix USE statement for V4L2

* Thu Sep 28 2004 Christian Schaller <uraeus at gnome dot org>
- Remove kio plugin (as it was broken)

* Wed Sep 21 2004 Christian Schaller <uraeus at gnome dot org>
- Reorganize SPEC to fit better with fedora.us and freshrpms.net packages
- Make sure gstinterfaces.so is in the package
- Add all new plugins

* Mon Mar 15 2004 Thomas Vander Stichele <thomas at apestaart dot org>
- put back media-info
- add ffmpegcolorspace plugin

* Sun Mar 07 2004 Christian Schaller <Uraeus@gnome.org>
- Remove rm commands for media-info stuff
- Add libdir/*
                                                                                
* Thu Mar 04 2004 Christian Schaller <Uraeus@gnome.org>
- Add missing gconf schema install in %post

* Tue Mar 02 2004 Thomas Vander Stichele <thomas at apestaart dot org>
- Libraries/Multimedia doesn't exist, remove it

* Tue Mar 02 2004 Thomas Vander Stichele <thomas at apestaart dot org>
- added speex plugin.

* Mon Mar 01 2004 Thomas Vander Stichele <thomas at apestaart dot org>
- Cleaned up the mess.  Could we PLEASE keep this sort of organized and
- alphabetic for easy lookup ?

* Fri Feb 13 2004 Christian Schaller <Uraeus@gnome.org>
- Added latest new headers

* Wed Jan 21 2004 Christian Schaller <Uraeus@gnome.org>
- added NAS plugin
- added i18n locale dir

* Fri Jan 16 2004 Christian Schaller <uraeus@gnome.org>
- added libcaca plugin
- added libgstcolorspace - fixed name of libgsthermescolorspace

* Wed Jan 14 2004 Christian Schaller <uraeus@gnome.org>
- Add gamma plugin
- Have the pixbuf plugin deleted for now

* Wed Dec 18 2003 Christian Schaller <Uraeus@gnome.org>
- remove gsttagediting.h as it is gone
- replace it with gst/tag/tag.h

* Sun Nov 23 2003 Christian Schaller <Uraeus@gnome.org>
- Update spec file for latest changes
- add faad plugin

* Thu Oct 16 2003 Christian Schaller <Uraeus@gnome.org>
- Add new colorbalance and tuner and xoverlay stuff
- Change name of kde-audio-devel to arts-devel

* Sat Sep 27 2003 Christian Schaller <Uraeus@gnome.org>
- Add majorminor to man page names
- add navigation lib to package

* Tue Sep 11 2003 Christian Schaller <Uraeus@gnome.org>
- Add -%{majorminor} to each instance of gst-register

* Tue Aug 19 2003 Christian Schaller <Uraeus@Gnome.org>
- Add new plugins

* Sat Jul 12 2003 Thomas Vander Stichele <thomas at apestaart dot org>
- move gst/ mpeg plugins to base package
- remove hermes conditional from snapshot
- remove one instance of resample plugin
- fix up silly versioned plugins efence and rmdemux

* Sat Jul 05 2003 Christian Schaller <Uraeus@gnome.org>
- Major overhaul of SPEC file to make it compatible with what Red Hat ships
  as default
- Probably a little less sexy, but cross-distro SPEC files are a myth anyway
  so making it convenient for RH users wins out
- Keeping conditionals even with new re-org so that developers building the
  RPMS don't need everything installed
- Add bunch of obsoletes to ease migration from earlier official GStreamer RPMS
- Remove plugins that doesn't exist anymore

* Sun Mar 02 2003 Christian Schaller <Uraeus@gnome.org>
- Remove USE_RTP statement from RTP plugin
- Move RTP plugin to no-deps section

* Sat Mar 01 2003 Christian Schaller <Uraeus@gnome.org>
- Remove videosink from SPEC
* Thu Jan 23 2003 Thomas Vander Stichele <thomas at apestaart dot org>
- various fixes
- make video output packages provide gstreamer-videosink

* Thu Jan 23 2003 Thomas Vander Stichele <thomas at apestaart dot org>
- split out ffmpeg stuff to separate plugin

* Fri Dec 27 2002 Thomas Vander Stichele <thomas at apestaart dot org>
- add virtual provides for audio sources and sinks

* Sun Dec 15 2002 Christian Schaller <Uraeus@linuxrising.org>
- Update mpeg2dec REQ to be 0.3.1

* Tue Dec 10 2002 Thomas Vander Stichele <thomas at apestaart dot org>
- only install schema once
- move out devel lib stuff to -devel package

* Sun Dec 08 2002 Thomas Vander Stichele <thomas at apestaart dot org>
- fix location of libgstpng
- changes for parallel installability

* Thu Nov 28 2002 Christian Schaller <Uraeus@linuxrising.org>
- Put in libgstpng plugin
- rm the libgstmedia-info stuff until thomas think they are ready

* Fri Nov 01 2002 Thomas Vander Stichele <thomas at apestaart dot org>
- don't use compprep until ABI issues can be fixed

* Wed Oct 30 2002 Thomas Vander Stichele <thomas at apestaart dot org>
- added smpte plugin
- split out dvdnavread package
- fixed snapshot deps and added hermes conditionals

* Tue Oct 29 2002 Thomas Vander Stichele <thomas at apestaart dot org>
- added -play package, libs, and .pc files

* Thu Oct 24 2002 Christian Schaller <Uraeus@linuxrising.org>
- Added wavenc to audio formats package

* Sat Oct 20 2002 Christian Scchaller <Uraeus@linuxrising.org>
- Removed all .la files
- added separate non-openquicktime demuxer plugin
- added snapshot plugin
- added videotest plugin
- Split avi plugin out to avi and windec plugins since aviplugin do not depend on avifile
- Added cdplayer plugin

* Fri Sep 20 2002 Thomas Vander Stichele <thomas@apestaart.org>
- added gst-compprep calls

* Wed Sep 18 2002 Thomas Vander Stichele <thomas@apestaart.org>
- add gst-register-%{majorminor} calls everywhere again since auto-reregister doesn't work
- added gstreamer-audio-formats to mad's requires since it needs the typefind
  to work properly

* Mon Sep 9 2002 Christian Schaller <Uraeus@linuxrising.org>
- Added v4l2 plugin
* Thu Aug 27 2002 Christian Schaller <Uraeus@linuxrising.org>
- Fixed USE_DV_TRUE to USE_LIBDV_TRUE
- Added Gconf and floatcast headers to gstreamer-plugins-devel package
- Added mixmatrix plugin to audio-effects package

* Thu Jul 11 2002 Thomas Vander Stichele <thomas@apestaart.org>
- fixed oss package to buildrequire instead of require glibc headers

* Mon Jul 08 2002 Thomas Vander Stichele <thomas@apestaart.org>
- fixed -devel package group

* Fri Jul 05 2002 Thomas Vander Stichele <thomas@apestaart.org>
- release 0.4.0 !
- added gstreamer-libs.pc
- removed all gst-register-%{majorminor} calls since this should be done automatically now

* Thu Jul 04 2002 Thomas Vander Stichele <thomas@apestaart.org>
- fix issue with SDL package
- make all packages STRICTLY require the right version to avoid
  ABI issues
- make gst-plugins obsolete gst-plugin-libs
- also send output of gst-register-%{majorminor} to /dev/null to lower the noise

* Wed Jul 03 2002 Thomas Vander Stichele <thomas@apestaart.org>
- require glibc-devel instead of glibc-kernheaders since the latter is only
  since 7.3 and glibc-devel pulls in the right package anyway

* Sun Jun 23 2002 Thomas Vander Stichele <thomas@apestaart.org>
- changed header location of plug-in libs

* Mon Jun 17 2002 Thomas Vander Stichele <thomas@apestaart.org>
- major cleanups
- adding gst-register-%{majorminor} on postun everywhere
- remove ldconfig since we don't actually install libs in system dirs
- removed misc package
- added video-effects
- dot every Summary
- uniformify all descriptions a little

* Thu Jun 06 2002 Thomas Vander Stichele <thomas@apestaart.org>
- various BuildRequires: additions

* Tue Jun 04 2002 Thomas Vander Stichele <thomas@apestaart.org>
- added USE_LIBADSPA_TRUE bits to ladspa package

* Mon Jun 03 2002 Thomas Vander Stichele <thomas@apestaart.org>
- Added libfame package

* Mon May 12 2002 Christian Fredrik Kalager Schaller <Uraeus@linuxrising.org>
- Added jack, dxr3, http packages
- Added visualisation plug-ins, effecttv and synaesthesia
- Created devel package
- Removed gstreamer-plugins-libs package (moved it into gstreamer-plugins)
- Replaced prefix/dirname with _macros

* Mon May 06 2002 Thomas Vander Stichele <thomas@apestaart.org>
- added gstreamer-GConf package

* Wed Mar 13 2002 Thomas Vander Stichele <thomas@apestaart.org>
- added more BuildRequires and Requires
- rearranged some plug-ins
- added changelog ;)
