+%bcond_with x
+%bcond_with wayland
%define gst_branch 1.0
+%define _lib_gstreamer_dir %{_libdir}/gstreamer-%{gst_branch}
+%define _lib_girepository %{_libdir}/girepository-%{gst_branch}
-Name: gstreamer
-Version: 1.12.2
+#######################################################################
+## 'plugin' macro :
+## 'plugin' is user defined macro to build each plugin seperately
+## add define option at gbs build cmd like [ --define "plugin bad" ]
+## if not, all the source code in subprojects will be built
+#######################################################################
+
+%if 0%{?plugin:1}
+
+ %if "%{plugin}" == "core"
+ %define _name gstreamer
+ %define _core_opt ""
+ %endif
+ %if "%{plugin}" == "base" || "%{plugin}" == "good" || "%{plugin}" == "bad" || "%{plugin}" == "ugly"
+ %define _name gst-plugins-%{plugin}
+ %define _base_opt ""
+ %define _good_opt ""
+ %define _bad_opt ""
+ %define _ugly_opt ""
+ %endif
+ %if "%{plugin}" == "omx" || "%{plugin}" == "libav"
+ %define _name gst-%{plugin}
+ %define _omx_opt ""
+ %define _libav_opt ""
+ %endif
+ %if "%{plugin}" == "rs"
+ %define _name gst-rtsp-server
+ %define _rs_opt ""
+ %endif
+ %if "%{plugin}" == "es"
+ %define _name gst-editing-services
+ %define _es_opt ""
+ %endif
+
+ %define _source_path subprojects/%{_name}
+
+%else
+
+ %define plugin all
+ %define _name gstreamer
+ %define _source_path .
+
+ # plugin option prefix
+ %define _core_opt gstreamer:
+ %define _base_opt gst-plugins-base:
+ %define _good_opt gst-plugins-good:
+ %define _bad_opt gst-plugins-bad:
+ %define _ugly_opt gst-plugins-ugly:
+ %define _omx_opt gst-omx:
+ %define _libav_opt gst-libav:
+ %define _rs_opt gst-rtsp-server:
+ %define _es_opt gst-editing-services:
+
+%endif
+
+Name: %{_name}
+Version: 1.19.3
Release: 0
Summary: Streaming-Media Framework Runtime
License: LGPL-2.0+
Group: Multimedia/Framework
Url: http://gstreamer.freedesktop.org/
-Source0: http://gstreamer.freedesktop.org/src/gstreamer/gstreamer-%{version}.tar.xz
-Source100: common.tar.gz
-BuildRequires: bison
+Source0: gstreamer-%{version}.tar.xz
+Source1001: gstreamer.manifest
+BuildRequires: meson >= 0.59.0
BuildRequires: gettext-tools
-BuildRequires: check-devel
+BuildRequires: pkgconfig(glib-2.0) >= 2.32.0
+
+
+%if "%{plugin}" == "all" || "%{plugin}" == "core"
+
+BuildRequires: bison
BuildRequires: fdupes
BuildRequires: flex
-BuildRequires: pkgconfig(glib-2.0) >= 2.32.0
BuildRequires: libtool
-BuildRequires: pkgconfig(libxml-2.0)
-BuildRequires: pkgconfig(gobject-introspection-1.0) >= 1.31.1
BuildRequires: pkgconfig(dlog)
+BuildRequires: pkgconfig(gobject-introspection-1.0) >= 1.31.1
+BuildRequires: pkgconfig(libxml-2.0)
-%description
+%description -n gstreamer
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
means that new data types or processing capabilities can be added by
installing new plug-ins.
-%package utils
+%package -n gstreamer-utils
Summary: Streaming-Media Framework Runtime
Group: Multimedia/Framework
Provides: gstreamer:%{_bindir}/gst-launch-%{gst_branch} = %{version}
# Symbol for unversioned wrappers:
Provides: gstreamer-utils_versioned = %{version}
-%description utils
+%description -n gstreamer-utils
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
means that new data types or processing capabilities can be added by
installing new plug-ins.
-%package devel
+%package -n gstreamer-devel
Summary: Include Files and Libraries mandatory for Development
Group: Development/Libraries
# gstreamer-utils is required for the gstreamer-provides rpm magic.
Requires: gstreamer-utils = %{version}
-Requires: %{name} = %{version}
+Requires: gstreamer = %{version}
-%description devel
+%description -n gstreamer-devel
This package contains all necessary include files and libraries needed
to develop applications that require these.
-%lang_package
+%else
+
+BuildRequires: gstreamer-devel >= %{version}
+#BuildRequires: pkgconfig(gstreamer-1.0)
+
+%if "%{plugin}" != "base"
+BuildRequires: gst-plugins-base-devel >= %{version}
+#BuildRequires: pkgconfig(gstreamer-plugins-base-1.0)
+%endif
+
+%endif
+
+#######################################################
+## Package info of Base Plugin
+#######################################################
+
+%if "%{plugin}" == "all"
+%package -n gst-plugins-base
+Summary: GStreamer Streaming-Media Framework Plug-Ins
+Group: Multimedia/Framework
+%endif
+
+%if "%{plugin}" == "all" || "%{plugin}" == "base"
+
+BuildRequires: orc >= 0.4.16
+BuildRequires: python
+BuildRequires: pkgconfig(alsa) >= 0.9.1
+BuildRequires: pkgconfig(freetype2) >= 2.0.9
+BuildRequires: pkgconfig(gobject-introspection-1.0) >= 1.31.1
+BuildRequires: pkgconfig(libdrm)
+BuildRequires: pkgconfig(libtbm)
+BuildRequires: pkgconfig(libxml-2.0)
+BuildRequires: pkgconfig(ogg) >= 1.0
+BuildRequires: pkgconfig(opus)
+BuildRequires: pkgconfig(theoradec) >= 1.1
+BuildRequires: pkgconfig(theoraenc) >= 1.1
+BuildRequires: pkgconfig(vorbis) >= 1.0
+BuildRequires: pkgconfig(vorbisenc) >= 1.0
+BuildRequires: pkgconfig(zlib)
+%if "%{tizen_profile_name}" != "tv"
+BuildRequires: update-desktop-files
+%endif
+%if %{with wayland}
+%if 0%{?enable_gl:1}
+BuildRequires: pkgconfig(gles20)
+BuildRequires: pkgconfig(wayland-egl) >= 9.0
+%endif # wayland
+%endif # gl
+%if %{with x}
+BuildRequires: pkgconfig(dri2proto)
+BuildRequires: pkgconfig(libdri2)
+BuildRequires: pkgconfig(ice)
+BuildRequires: pkgconfig(sm)
+BuildRequires: pkgconfig(xext)
+BuildRequires: pkgconfig(xv)
+BuildRequires: pkgconfig(xfixes)
+%endif
+# gstreamer-utils is required for the gstreamer-provides rpm magic.
+Requires: gstreamer >= 1.0.0
+Requires: opus
+Supplements: gstreamer
+
+%description -n gst-plugins-base
+GStreamer is a streaming media framework based on graphs of filters
+that operate on media data. Applications using this library can do
+anything media-related, from real-time sound processing to playing
+videos. Its plug-in-based architecture means that new data types or
+processing capabilities can be added simply by installing new plug-ins.
+
+%package -n gst-plugins-base-extension-adder
+Summary: libgstadder.so for gst-plugins-base
+Requires: gst-plugins-base = %{version}-%{release}
+Provides: gst-plugins-base-profile_mobile = %{version}-%{release}
+
+%description -n gst-plugins-base-extension-adder
+Libgstadder.so for gst-plugin-base. Supplicant for gst-plugin-base.
+This is for Tizen mobile profile.
+
+%package -n gst-plugins-base-devel
+Summary: Include files and Libraries
+Requires: gst-plugins-base = %{version}
+
+%description -n gst-plugins-base-devel
+This package contains all necessary include files and libraries needed
+to compile and link applications that use gstreamer-plugins-base.
+
+%endif
+
+#######################################################
+## Package info of Good Plugin
+#######################################################
+
+%if "%{plugin}" == "all"
+%package -n gst-plugins-good
+Summary: GStreamer Streaming-Media Framework Plug-Ins
+Group: Multimedia/Framework
+%endif
+
+%if "%{plugin}" == "all" || "%{plugin}" == "good"
+
+BuildRequires: libjpeg-devel
+BuildRequires: orc >= 0.4.16
+BuildRequires: python
+BuildRequires: xsltproc
+BuildRequires: pkgconfig(bzip2)
+BuildRequires: pkgconfig(cairo)
+BuildRequires: pkgconfig(cairo-gobject)
+BuildRequires: pkgconfig(gio-2.0)
+BuildRequires: pkgconfig(libpng) >= 1.2
+BuildRequires: pkgconfig(libpulse) >= 1.0
+BuildRequires: pkgconfig(libsoup-2.4)
+BuildRequires: pkgconfig(libtbm)
+BuildRequires: pkgconfig(libxml-2.0) >= 2.4.9
+BuildRequires: pkgconfig(vconf)
+BuildRequires: pkgconfig(vpx)
+BuildRequires: pkgconfig(zlib)
+%if "%{tizen_profile_name}" != "tv"
+BuildRequires: pkgconfig(libv4l2)
+%endif
+%if %{with x}
+BuildRequires: pkgconfig(ice)
+BuildRequires: pkgconfig(sm)
+BuildRequires: pkgconfig(xdamage)
+BuildRequires: pkgconfig(xfixes)
+# used by libgstvideo4linux2.so
+BuildRequires: pkgconfig(xv)
+%endif
+Requires: gstreamer >= %{version}
+Requires: gst-plugins-base >= %{version}
+
+%description -n gst-plugins-good
+GStreamer is a streaming media framework based on graphs of filters
+that operate on media data. Applications using this library can do
+anything media-related, from real-time sound processing to playing
+videos. Its plug-in-based architecture means that new data types or
+processing capabilities can be added simply by installing new plug-ins.
+
+%package -n gst-plugins-good-extra
+Summary: Complementary plugins for gst-plugins-good
+Group: Productivity/Multimedia/Other
+Requires: gst-plugins-good = %{version}
+Enhances: gst-plugins-good
+
+%description -n gst-plugins-good-extra
+This package provides complementary plugins for gst-plugins-good and
+plugins not included in official Tizen images, which may be used for development / experimental purposes.
+
+%endif
+
+#######################################################
+## Package info of Bad Plugin
+#######################################################
+
+%if "%{plugin}" == "all"
+%package -n gst-plugins-bad
+Summary: GStreamer Streaming-Media Framework Plug-Ins
+Group: Multimedia/Framework
+%endif
+
+%if "%{plugin}" == "all" || "%{plugin}" == "bad"
+
+BuildRequires: python
+BuildRequires: xsltproc
+BuildRequires: pkgconfig(gio-2.0) >= 2.25.0
+BuildRequires: pkgconfig(gobject-introspection-1.0) >= 1.31.1
+BuildRequires: pkgconfig(libcurl) >= 7.21.0
+BuildRequires: pkgconfig(libexif) >= 0.6.16
+BuildRequires: pkgconfig(libsrtp2) >= 2.1.0
+BuildRequires: pkgconfig(libusb-1.0)
+BuildRequires: pkgconfig(nice)
+BuildRequires: pkgconfig(openal)
+BuildRequires: pkgconfig(openssl1.1)
+BuildRequires: pkgconfig(opus)
+BuildRequires: pkgconfig(orc-0.4) >= 0.4.11
+BuildRequires: pkgconfig(sndfile) >= 1.0.16
+BuildRequires: pkgconfig(soundtouch) > 1.4
+BuildRequires: pkgconfig(usrsctp)
+%if %{with wayland}
+BuildRequires: pkgconfig(libdrm)
+BuildRequires: pkgconfig(libxml-2.0)
+BuildRequires: pkgconfig(wayland-client) >= 1.0.0
+BuildRequires: pkgconfig(wayland-cursor) >= 1.0.0
+BuildRequires: pkgconfig(wayland-protocols)
+%endif
+%if %{with x}
+BuildRequires: pkgconfig(x11)
+%endif
+Requires: gstreamer >= %{version}
+
+%description -n gst-plugins-bad
+GStreamer is a streaming media framework based on graphs of filters
+that operate on media data. Applications using this library can do
+anything media-related,from real-time sound processing to playing
+videos. Its plug-in-based architecture means that new data types or
+processing capabilities can be added simply by installing new plug-ins.
+
+%package -n gst-plugins-bad-devel
+Summary: GStreamer Streaming-Media Framework Plug-Ins
+Requires: gst-plugins-bad = %{version}-%{release}
+Requires: gst-plugins-base-devel
+
+%description -n gst-plugins-bad-devel
+GStreamer is a streaming media framework based on graphs of filters
+that operate on media data. Applications using this library can do
+anything media-related,from real-time sound processing to playing
+videos. Its plug-in-based architecture means that new data types or
+processing capabilities can be added simply by installing new plug-ins.
+
+%endif
+
+#######################################################
+## Package info of Ugly Plugin
+#######################################################
+
+%if "%{plugin}" == "all"
+%package -n gst-plugins-ugly
+Summary: GStreamer plugins from the "ugly" set
+Group: Multimedia/Framework
+%endif
+
+%if "%{plugin}" == "all" || "%{plugin}" == "ugly"
+
+BuildRequires: which
+BuildRequires: pkgconfig(opencore-amrwb)
+%if "%{tizen_profile_name}" != "tv"
+BuildRequires: pkgconfig(opencore-amrnb)
+%endif
+
+%description -n gst-plugins-ugly
+ 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.
+ .
+ This packages contains plugins from the "ugly" set, a set of
+ good-quality plug-ins that might pose distribution problems.
+
+%endif
+
+#######################################################
+## Package info of Omx Plugin
+#######################################################
+
+%if "%{plugin}" == "all"
+%package -n gst-omx
+Summary: GStreamer plug-in that allows communication with OpenMAX IL components
+Group: Multimedia/Framework
+%endif
+
+%if "%{plugin}" == "all" || "%{plugin}" == "omx"
+
+BuildRequires: which
+BuildRequires: pkgconfig(libtbm)
+BuildRequires: pkgconfig(mm-common)
+%if "%{target}" == "rpi"
+BuildRequires: pkgconfig(bcm_host)
+BuildRequires: pkgconfig(brcmegl)
+%endif
+ExclusiveArch: %arm aarch64
+
+%description -n gst-omx
+gst-openmax is a GStreamer plug-in that allows communication with OpenMAX IL components.
+Multiple OpenMAX IL implementations can be used.
+
+%endif
+
+#######################################################
+## Package info of libav Plugin
+#######################################################
+
+%if "%{plugin}" == "all"
+%package -n gst-libav
+Summary: Libav plugin for GStreamer
+Group: Multimedia/Framework
+%endif
+
+%if "%{plugin}" == "all" || "%{plugin}" == "libav"
+
+BuildRequires: bzip2-devel
+BuildRequires: gettext
+BuildRequires: which
+BuildRequires: yasm
+BuildRequires: pkgconfig(libavcodec)
+BuildRequires: pkgconfig(libavfilter)
+BuildRequires: pkgconfig(libavformat)
+BuildRequires: pkgconfig(libavutil)
+BuildRequires: pkgconfig(orc-0.4)
+BuildRequires: pkgconfig(theora)
+BuildRequires: pkgconfig(vorbis)
+BuildRequires: pkgconfig(zlib)
+
+%description -n gst-libav
+This GStreamer plugin supports a large number of audio and video compression
+formats through the use of the libav library. The plugin contains GStreamer
+elements for decoding 90+ formats (AVI, MPEG, OGG, Matroska, ASF, ...),
+demuxing 30+ formats and colorspace conversion.
+
+%endif
+
+%if 0
+#######################################################
+## Package info of rtsp-server Plugin
+#######################################################
+
+%if "%{plugin}" == "all"
+%package -n gst-rtsp-server
+Summary: Multimedia Framework Library
+Group: System/Libraries
+%endif
+
+%if "%{plugin}" == "all" || "%{plugin}" == "rs"
+
+Requires(post): /sbin/ldconfig
+Requires(postun): /sbin/ldconfig
+
+%description -n gst-rtsp-server
+This GStreamer plugin supports a large number of audio and video compression
+formats through the use of the libav library. The plugin contains GStreamer
+elements for decoding 90+ formats (AVI, MPEG, OGG, Matroska, ASF, ...),
+demuxing 30+ formats and colorspace conversion.
+
+%package -n gst-rtsp-server-devel
+Summary: Multimedia Framework RTSP server library (DEV)
+Group: Development/Libraries
+Requires: gst-rtsp-server = %{version}-%{release}
+
+%description -n gst-rtsp-server-devel
+
+%endif
+
+%endif
+
+#######################################################
+## Package info of editing-services Plugin
+#######################################################
+
+%if "%{plugin}" == "all"
+%package -n gst-editing-services
+Summary: GStreamer Editing Service Plug-Ins
+Group: Multimedia/Framework
+%endif
+
+%if "%{plugin}" == "all" || "%{plugin}" == "es"
+
+BuildRequires: flex
+BuildRequires: gobject-introspection-devel
+BuildRequires: gtk-doc
+BuildRequires: pkgconfig(libxml-2.0)
+Requires: gstreamer >= 1.0.0
+Supplements: gstreamer
+
+%description -n gst-editing-services
+This is a high-level library for facilitating the creation of audio/video
+non-linear editors.
+
+%package -n gst-editing-services-devel
+Summary: Development files for gst-editing-services
+Requires: gst-editing-services = %{version}-%{release}
+
+%description -n gst-editing-services-devel
+This package contains libraries and header files for
+developing applications that use %{name}
+
+%endif
+
+#######################################################
+## Prep
+#######################################################
%prep
%setup -q -n gstreamer-%{version}
-%setup -q -T -D -a 100
+cp %{SOURCE1001} ./gstreamer.manifest
+cp %{SOURCE1001} ./gst-plugins-base.manifest
+cp %{SOURCE1001} ./gst-plugins-good.manifest
+cp %{SOURCE1001} ./gst-plugins-bad.manifest
+cp %{SOURCE1001} ./gst-plugins-ugly.manifest
+cp %{SOURCE1001} ./gst-omx.manifest
+cp %{SOURCE1001} ./gst-libav.manifest
+%if 0
+cp %{SOURCE1001} ./gst-rtsp-server.manifest
+%endif
+cp %{SOURCE1001} ./gst-editing-services.manifest
+
+#######################################################
+## Build
+#######################################################
%build
-# FIXME: GTKDOC_CFLAGS, GST_OBJ_CFLAGS:
-# Silently ignored compilation of uninstalled gtk-doc scanners without RPM_OPT_FLAGS.
-export V=1
-NOCONFIGURE=1 ./autogen.sh
+
+%if "%{plugin}" != "all"
+pushd %{_source_path}
+%endif
+
+mkdir -p build
export CFLAGS="%{optflags} \
- -DTIZEN_FEATURE_QUEUE2_MODIFICATION\
- -DTIZEN_FEATURE_FILESINK_MODIFICATION\
- -DTIZEN_FEATURE_MQ_MODIFICATION\
- -DTIZEN_FEATURE_BASEPARSE_MODIFICATION\
- -DTIZEN_FEATURE_QUEUE_MODIFICATION\
-%if "%{TIZEN_PRODUCT_TV}" == "1"
- -DTIZEN_PROFILE_TV\
- -DRVU_LIVESTREAMING_OPTIMIZATION\
- -DTIZEN_FEATURE_TRUSTZONE\
-%endif
- -DTIZEN_FEATURE_RTSPSRC_MODIFICATION\
- -fno-strict-aliasing"
-
-%configure\
-%if %{with introspection}
- --enable-introspection\
-%endif
- --disable-static\
- --disable-docbook\
- --disable-gtk-doc\
- --enable-dlog\
-%if "%{TIZEN_PRODUCT_TV}" == "1"
- --enable-tv-profile\
-%endif
- --disable-examples\
- --disable-tests
-make %{?_smp_mflags}
+ -fno-strict-aliasing\
+ -fstack-protector-strong\
+ -Wl,-z,relro\
+ -D_FORTIFY_SOURCE=2"
+export CXXFLAGS+=" -Wno-error"
+export LDFLAGS+=" -pthread"
+
+meson --prefix=/usr --libdir=%{_libdir} --datadir=%{_datadir} --sysconfdir=%{_hal_sysconfdir} \
+%if "%{plugin}" == "all"
+ -Dtests=disabled \
+ -Dexamples=disabled \
+ -Dnls=disabled \
+ -Ddoc=disabled \
+ -Dgtk_doc=disabled \
+ -Dqt5=disabled \
+ -Dgst-examples=disabled \
+%endif
+%if "%{plugin}" == "all" || "%{plugin}" == "core"
+ -D %{_core_opt}bash-completion=disabled \
+ -D %{_core_opt}check=disabled \
+ -D %{_core_opt}doc=disabled \
+ -D %{_core_opt}examples=disabled \
+ -D %{_core_opt}introspection=enabled \
+ -D %{_core_opt}nls=disabled \
+ -D %{_core_opt}tests=disabled \
+ -D %{_core_opt}ptp-helper-permissions=none \
+%endif
+%if "%{plugin}" == "all" || "%{plugin}" == "base"
+ -D %{_base_opt}doc=disabled \
+ -D %{_base_opt}examples=disabled \
+ -D %{_base_opt}gl=disabled \
+ -D %{_base_opt}introspection=enabled \
+ -D %{_base_opt}nls=disabled \
+ -D %{_base_opt}tbm=true \
+ -D %{_base_opt}tests=disabled \
+ -D %{_base_opt}tools=disabled \
+ %if "%{tizen_profile_name}" == "tv"
+ -D %{_base_opt}tv-profile=true \
+ %else
+ %if 0%{?enable_gl:1}
+ -D %{_base_opt}gl=enabled \
+ %endif # gl
+ %endif # tv
+%endif # base plugin
+%if "%{plugin}" == "all" || "%{plugin}" == "good"
+ %if ! 0%{?ENABLE_AALIB}
+ -D %{_good_opt}aalib=disabled \
+ %endif
+ -D %{_good_opt}alpha=disabled \
+ -D %{_good_opt}auparse=disabled \
+ -D %{_good_opt}cutter=disabled \
+ -D %{_good_opt}dtmf=disabled \
+ -D %{_good_opt}equalizer=disabled \
+ -D %{_good_opt}flx=disabled \
+ -D %{_good_opt}goom=disabled \
+ -D %{_good_opt}goom2k1=disabled \
+ -D %{_good_opt}level=disabled \
+ -D %{_good_opt}monoscope=disabled \
+ -D %{_good_opt}multipart=disabled \
+ -D %{_good_opt}nls=disabled \
+ -D %{_good_opt}oss4=disabled \
+ -D %{_good_opt}oss=disabled \
+ -D %{_good_opt}shapewipe=disabled \
+ -D %{_good_opt}spectrum=disabled \
+ -D %{_good_opt}taglib=disabled \
+ -D %{_good_opt}tbm=true \
+ -D %{_good_opt}twolame=disabled \
+ -D %{_good_opt}v4l2-probe=true \
+ -D %{_good_opt}wavpack=disabled \
+ -D %{_good_opt}y4m=disabled \
+ %if "%{tizen_profile_name}" == "tv"
+ -D %{_good_opt}flv=disabled \
+ -D %{_good_opt}lame=disabled \
+ -D %{_good_opt}videobox=disabled \
+ -D %{_good_opt}videomixer=disabled \
+ %else
+ -D %{_good_opt}v4l2-libv4l2=enabled \
+ %endif # tv
+%endif # plugin
+%if "%{plugin}" == "all" || "%{plugin}" == "bad"
+ -D %{_bad_opt}accurip=disabled \
+ -D %{_bad_opt}adpcmdec=disabled \
+ -D %{_bad_opt}adpcmenc=disabled \
+ -D %{_bad_opt}aiff=disabled \
+ -D %{_bad_opt}asfmux=disabled \
+ -D %{_bad_opt}audiofxbad=disabled \
+ -D %{_bad_opt}audiovisualizers=disabled \
+ -D %{_bad_opt}bayer=disabled \
+ -D %{_bad_opt}bz2=disabled \
+ -D %{_bad_opt}codecalpha=disabled \
+ -D %{_bad_opt}curl=disabled \
+ -D %{_bad_opt}decklink=disabled \
+ -D %{_bad_opt}doc=disabled \
+ -D %{_bad_opt}dtls=enabled \
+ -D %{_bad_opt}dvb=disabled \
+ -D %{_bad_opt}dvbsubenc=disabled \
+ -D %{_bad_opt}dvbsuboverlay=disabled \
+ -D %{_bad_opt}dvdspu=disabled \
+ -D %{_bad_opt}examples=disabled \
+ -D %{_bad_opt}faceoverlay=disabled \
+ -D %{_bad_opt}fbdev=disabled \
+ -D %{_bad_opt}festival=disabled \
+ -D %{_bad_opt}fieldanalysis=disabled \
+ -D %{_bad_opt}freeverb=disabled \
+ -D %{_bad_opt}frei0r=disabled \
+ -D %{_bad_opt}geometrictransform=disabled \
+ -D %{_bad_opt}gl=disabled \
+ -D %{_bad_opt}gst_play_tests=false\
+ -D %{_bad_opt}inter=disabled \
+ -D %{_bad_opt}interlace=disabled \
+ -D %{_bad_opt}introspection=enabled \
+ -D %{_bad_opt}ivfparse=disabled \
+ -D %{_bad_opt}ivtc=disabled \
+ -D %{_bad_opt}jp2kdecimator=disabled \
+ -D %{_bad_opt}kms=disabled \
+ -D %{_bad_opt}librfb=disabled \
+ -D %{_bad_opt}mpegpsmux=disabled \
+ -D %{_bad_opt}mxf=disabled \
+ -D %{_bad_opt}nls=disabled \
+ -D %{_bad_opt}nvcodec=disabled \
+ -D %{_bad_opt}onvif=disabled \
+ -D %{_bad_opt}openal=enabled \
+ -D %{_bad_opt}pcapparse=disabled \
+ -D %{_bad_opt}pnm=disabled \
+ -D %{_bad_opt}rawparse=disabled \
+ -D %{_bad_opt}removesilence=disabled \
+ -D %{_bad_opt}rist=disabled \
+ -D %{_bad_opt}rtmp2=disabled \
+ -D %{_bad_opt}segmentclip=disabled \
+ -D %{_bad_opt}siren=disabled \
+ -D %{_bad_opt}smooth=disabled \
+ -D %{_bad_opt}sndfile=disabled \
+ -D %{_bad_opt}speed=disabled \
+ -D %{_bad_opt}subenc=disabled \
+ -D %{_bad_opt}switchbin=disabled \
+ -D %{_bad_opt}transcode=disabled \
+ -D %{_bad_opt}tests=disabled \
+ -D %{_bad_opt}uvch264=disabled \
+ -D %{_bad_opt}videofilters=disabled \
+ -D %{_bad_opt}videosignal=disabled \
+ -D %{_bad_opt}vmnc=disabled \
+ %if %{with wayland}
+ -D %{_bad_opt}wayland=enabled \
+ %endif
+ -D %{_bad_opt}y4m=disabled \
+ %if "%{tizen_profile_name}" == "tv"
+ -D %{_bad_opt}tv-profile=true \
+ -D %{_bad_opt}autoconvert=disabled \
+ -D %{_bad_opt}camerabin2=disabled \
+ -D %{_bad_opt}dash=disabled \
+ -D %{_bad_opt}hls=disabled \
+ -D %{_bad_opt}id3tag=disabled \
+ -D %{_bad_opt}jpegformat=disabled \
+ -D %{_bad_opt}mpegdemux=disabled \
+ -D %{_bad_opt}rtp=disabled \
+ -D %{_bad_opt}smoothstreaming=disabled \
+ %else
+ %if 0%{?enable_gl:1}
+ -D %{_bad_opt}gl=enabled \
+ %endif # gl
+ %endif # tv
+%endif # plugin
+%if "%{plugin}" == "all" || "%{plugin}" == "ugly"
+ -D %{_ugly_opt}a52dec=disabled \
+ -D %{_ugly_opt}cdio=disabled \
+ -D %{_ugly_opt}doc=disabled \
+ -D %{_ugly_opt}dvdlpcmdec=disabled \
+ -D %{_ugly_opt}dvdread=disabled \
+ -D %{_ugly_opt}dvdsub=disabled \
+ -D %{_ugly_opt}mpeg2dec=disabled \
+ -D %{_ugly_opt}nls=disabled \
+ -D %{_ugly_opt}realmedia=disabled \
+ -D %{_ugly_opt}sidplay=disabled \
+ -D %{_ugly_opt}x264=disabled \
+ -D %{_ugly_opt}xingmux=disabled \
+ %if "%{tizen_profile_name}" == "tv"
+ -D %{_ugly_opt}tv-profile=true \
+ -D %{_ugly_opt}amrnb=disabled \
+ -D %{_ugly_opt}asfdemux=disabled \
+ %endif # tv
+%endif # plugin
+%if "%{plugin}" == "all" || "%{plugin}" == "omx"
+ %if "%{target}" == "rpi"
+ -D %{_omx_opt}target=rpi \
+ -D %{_omx_opt}header_path=/opt/vc/include/interface/vmcs_host/khronos/IL \
+ %else
+ %ifarch aarch64
+ -D %{_omx_opt}target=exynos64 \
+ %else
+ -D %{_omx_opt}target=exynos \
+ -D %{_omx_opt}vp9=true \
+ %endif # arch
+ %endif # target
+%endif # plugin
+%if "%{plugin}" == "all" || "%{plugin}" == "libav"
+ %if "%{tizen_profile_name}" == "tv"
+ -D %{_libav_opt}tv-profile=true \
+ %endif # tv
+%endif # plugin
+%if "%{plugin}" == "all" || "%{plugin}" == "es"
+ -D %{_es_opt}doc=disabled \
+ -D %{_es_opt}examples=disabled \
+ -D %{_es_opt}tests=disabled \
+ -D %{_es_opt}bash-completion=disabled \
+ -D %{_es_opt}validate=disabled \
+%endif
+ build
+
+ninja -C build all %{?_smp_mflags}
+
+%if "%{plugin}" != "all"
+popd
+%endif
+
+#######################################################
+## Install
+#######################################################
%install
-%make_install
-mkdir -p %{buildroot}%{_datadir}/gstreamer-%{gst_branch}/presets
-mkdir -p %{buildroot}%{_docdir}/%{name}
-%find_lang %{name}-%{gst_branch}
-mv %{name}-%{gst_branch}.lang %{name}.lang
-rm -rf %{buildroot}%{_datadir}/gtk-doc
-rm -rf %{buildroot}%{_docdir}/%{name}/manual
-rm -rf %{buildroot}%{_docdir}/%{name}/pwg
-rm -rf %{buildroot}%{_libdir}/girepository-%{gst_branch}/*.typelib
+rm -rf %{buildroot}
+export DESTDIR=%{buildroot}
+ninja -C %{_source_path}/build install
mkdir -p %{buildroot}%{_datadir}/gstreamer-%{gst_branch}/presets
-%fdupes %{buildroot}
+rm -rf %{buildroot}%{_datadir}/gstreamer-%{gst_branch}/encoding-profiles
+rm -rf %{buildroot}%{_datadir}/locale
-%post -p /sbin/ldconfig
+%clean
+rm -rf $RPM_BUILD_ROOT
+%post -p /sbin/ldconfig
%postun -p /sbin/ldconfig
-%files
-%manifest %{name}.manifest
-%defattr(-, root, root)
-%license COPYING
+#######################################################
+## Packaging rpms
+#######################################################
+
+###################### gstreamer ######################
+
+%if "%{plugin}" == "all" || "%{plugin}" == "core"
+%files -n gstreamer
+%manifest gstreamer.manifest
+%defattr(-, root, root)
+%license subprojects/gstreamer/COPYING
%dir %{_datadir}/gstreamer-%{gst_branch}
%dir %{_datadir}/gstreamer-%{gst_branch}/presets
-%dir %{_libdir}/gstreamer-%{gst_branch}
-%{_libdir}/gstreamer-%{gst_branch}/*.so
+%dir %{_lib_gstreamer_dir}
+%{_lib_gstreamer_dir}/libgstcoreelements.so
+%{_lib_gstreamer_dir}/libgstcoretracers.so
%dir %{_libexecdir}/gstreamer-%{gst_branch}
-#%{_libdir}/include/gstreamer-%{gst_branch}/gst/gstconfig.h
+%{_libexecdir}/gstreamer-%{gst_branch}/gst-hotdoc-plugins-scanner
%{_libexecdir}/gstreamer-%{gst_branch}/gst-plugin-scanner
%{_libexecdir}/gstreamer-%{gst_branch}/gst-ptp-helper
-%{_libdir}/*.so.*
-#%{_libdir}/girepository-1.0/Gst-1.0.typelib
-#%{_libdir}/girepository-1.0/GstBase-1.0.typelib
-#%{_libdir}/girepository-1.0/GstCheck-1.0.typelib
-#%{_libdir}/girepository-1.0/GstController-1.0.typelib
-#%{_libdir}/girepository-1.0/GstNet-1.0.typelib
-
-%files utils
-%manifest %{name}.manifest
+%exclude %{_libexecdir}/gstreamer-%{gst_branch}/gst-plugins-doc-cache-generator
+%{_libdir}/libgstbase*.so.*
+%{_libdir}/libgstcontroller*.so.*
+%{_libdir}/libgstnet*.so.*
+%{_libdir}/libgstreamer*.so.*
+%{_lib_girepository}/Gst-1.0.typelib
+%{_lib_girepository}/GstBase-1.0.typelib
+%{_lib_girepository}/GstController-1.0.typelib
+%{_lib_girepository}/GstNet-1.0.typelib
+%{_datadir}/gdb/auto-load/usr/%{_lib}/libgstreamer*-gdb.py
+%{_datadir}/gstreamer-%{gst_branch}/gdb/glib_gobject_helper.py
+%{_datadir}/gstreamer-%{gst_branch}/gdb/gst_gdb.py
+
+%files -n gstreamer-utils
+%manifest gstreamer.manifest
%defattr(-, root, root)
-%license COPYING
-%{_bindir}/*-%{gst_branch}
-%doc %{_mandir}/man?/*-%{gst_branch}.*
+%license subprojects/gstreamer/COPYING
+%{_bindir}/gst-inspect-1.0
+%{_bindir}/gst-launch-1.0
+%{_bindir}/gst-stats-1.0
+%{_bindir}/gst-typefind-1.0
+%exclude %doc %{_mandir}/man?/*-%{gst_branch}.*
-%files devel
-%manifest %{name}.manifest
+%files -n gstreamer-devel
+%manifest gstreamer.manifest
%defattr(-, root, root)
-%{_datadir}/aclocal/*.m4
-%{_includedir}/*
-%{_libdir}/*.so
-%{_libdir}/pkgconfig/*.pc
-%{_datadir}/gir-1.0/*.gir
+%{_datadir}/aclocal/gst-element-check-1.0.m4
+%{_includedir}/gstreamer-%{gst_branch}/gst/*.h
+%{_includedir}/gstreamer-%{gst_branch}/gst/base/*
+%{_includedir}/gstreamer-%{gst_branch}/gst/controller/*
+%{_includedir}/gstreamer-%{gst_branch}/gst/net/*
+%{_libdir}/libgstbase*.so
+%{_libdir}/libgstcontroller*.so
+%{_libdir}/libgstnet*.so
+%{_libdir}/libgstreamer*.so
+%{_libdir}/pkgconfig/gstreamer-1.0.pc
+%{_libdir}/pkgconfig/gstreamer-base-1.0.pc
+%{_libdir}/pkgconfig/gstreamer-controller-1.0.pc
+%{_libdir}/pkgconfig/gstreamer-net-1.0.pc
+%{_datadir}/gir-%{gst_branch}/Gst-1.0.gir
+%{_datadir}/gir-%{gst_branch}/GstBase-1.0.gir
+%{_datadir}/gir-%{gst_branch}/GstController-1.0.gir
+%{_datadir}/gir-%{gst_branch}/GstNet-1.0.gir
%changelog
+
+%endif
+
+###################### gst-plugins-base ######################
+
+%if "%{plugin}" == "all" || "%{plugin}" == "base"
+
+%files -n gst-plugins-base
+%manifest gst-plugins-base.manifest
+%defattr(-, root, root)
+%license subprojects/gst-plugins-base/COPYING
+%{_lib_gstreamer_dir}/libgstalsa.so
+%{_lib_gstreamer_dir}/libgstapp.so
+%{_lib_gstreamer_dir}/libgstaudioconvert.so
+%{_lib_gstreamer_dir}/libgstaudiorate.so
+%{_lib_gstreamer_dir}/libgstaudioresample.so
+%{_lib_gstreamer_dir}/libgstaudiotestsrc.so
+%{_lib_gstreamer_dir}/libgstgio.so
+%{_lib_gstreamer_dir}/libgstogg.so
+%{_lib_gstreamer_dir}/libgstplayback.so
+%{_lib_gstreamer_dir}/libgstoverlaycomposition.so
+%{_lib_gstreamer_dir}/libgstsubparse.so
+%{_lib_gstreamer_dir}/libgsttcp.so
+%{_lib_gstreamer_dir}/libgsttheora.so
+%{_lib_gstreamer_dir}/libgsttypefindfunctions.so
+%{_lib_gstreamer_dir}/libgstvideoconvert.so
+%{_lib_gstreamer_dir}/libgstvideorate.so
+%{_lib_gstreamer_dir}/libgstvideoscale.so
+%{_lib_gstreamer_dir}/libgstvideotestsrc.so
+%{_lib_gstreamer_dir}/libgstvolume.so
+%{_lib_gstreamer_dir}/libgstvorbis.so
+%{_lib_gstreamer_dir}/libgstpbtypes.so
+%{_lib_gstreamer_dir}/libgstrawparse.so
+%{_lib_gstreamer_dir}/libgstopus.so
+%{_lib_gstreamer_dir}/libgstencoding.so
+%{_lib_gstreamer_dir}/libgstaudiomixer.so
+%{_lib_gstreamer_dir}/libgstcompositor.so
+%if %{with x}
+%{_lib_gstreamer_dir}/libgstximagesink.so
+%{_lib_gstreamer_dir}/libgstxvimagesink.so
+%endif
+%{_libdir}/libgstapp*.so.*
+%{_libdir}/libgstaudio*.so.*
+%{_libdir}/libgstallocators*.so.*
+%{_libdir}/libgstfft*.so.*
+%{_libdir}/libgstpbutils*.so.*
+%{_libdir}/libgstriff*.so.*
+%{_libdir}/libgstrtp*.so.*
+%{_libdir}/libgstrtsp*.so.*
+%{_libdir}/libgstsdp*.so.*
+%{_libdir}/libgsttag*.so.*
+%{_libdir}/libgstvideo*.so.*
+%{_lib_girepository}/GstAllocators-1.0.typelib
+%{_lib_girepository}/GstApp-1.0.typelib
+%{_lib_girepository}/GstAudio-1.0.typelib
+%{_lib_girepository}/GstPbutils-1.0.typelib
+%{_lib_girepository}/GstRtp-1.0.typelib
+%{_lib_girepository}/GstRtsp-1.0.typelib
+%{_lib_girepository}/GstSdp-1.0.typelib
+%{_lib_girepository}/GstTag-1.0.typelib
+%{_lib_girepository}/GstVideo-1.0.typelib
+%dir %{_datadir}/gst-plugins-base/
+%dir %{_datadir}/gst-plugins-base/%{gst_branch}/
+%{_datadir}/gst-plugins-base/%{gst_branch}/license-translations.dict
+
+%files -n gst-plugins-base-extension-adder
+%{_lib_gstreamer_dir}/libgstadder.so
+%license subprojects/gst-plugins-base/COPYING
+
+%files -n gst-plugins-base-devel
+%manifest gst-plugins-base.manifest
+%defattr(-, root, root)
+%{_includedir}/gstreamer-%{gst_branch}/gst/allocators/*
+%{_includedir}/gstreamer-%{gst_branch}/gst/app/*
+%{_includedir}/gstreamer-%{gst_branch}/gst/audio/*
+%{_includedir}/gstreamer-%{gst_branch}/gst/fft/*
+%{_includedir}/gstreamer-%{gst_branch}/gst/pbutils/*
+%{_includedir}/gstreamer-%{gst_branch}/gst/riff/*
+%{_includedir}/gstreamer-%{gst_branch}/gst/rtp/*
+%{_includedir}/gstreamer-%{gst_branch}/gst/rtsp/*
+%{_includedir}/gstreamer-%{gst_branch}/gst/sdp/*
+%{_includedir}/gstreamer-%{gst_branch}/gst/tag/*
+%{_includedir}/gstreamer-%{gst_branch}/gst/video/*
+%if "%{plugin}" == "all"
+%exclude %{_includedir}/gstreamer-%{gst_branch}/gst/audio/audio-bad-prelude.h
+%exclude %{_includedir}/gstreamer-%{gst_branch}/gst/audio/gstnonstreamaudiodecoder.h
+%exclude %{_includedir}/gstreamer-%{gst_branch}/gst/audio/gstplanaraudioadapter.h
+%endif
+%{_libdir}/libgstallocators*.so
+%{_libdir}/libgstapp*.so
+%{_libdir}/libgstaudio*.so
+%{_libdir}/libgstfft*.so
+%{_libdir}/libgstpbutils*.so
+%{_libdir}/libgstriff*.so
+%{_libdir}/libgstrtp*.so
+%{_libdir}/libgstrtsp*.so
+%{_libdir}/libgstsdp*.so
+%{_libdir}/libgsttag*.so
+%{_libdir}/libgstvideo*.so
+%{_libdir}/pkgconfig/gstreamer-allocators*.pc
+%{_libdir}/pkgconfig/gstreamer-app*.pc
+%{_libdir}/pkgconfig/gstreamer-audio*.pc
+%{_libdir}/pkgconfig/gstreamer-fft*.pc
+%{_libdir}/pkgconfig/gstreamer-pbutils*.pc
+%{_libdir}/pkgconfig/gstreamer-plugins-base*.pc
+%{_libdir}/pkgconfig/gstreamer-riff*.pc
+%{_libdir}/pkgconfig/gstreamer-rtp*.pc
+%{_libdir}/pkgconfig/gstreamer-rtsp*.pc
+%{_libdir}/pkgconfig/gstreamer-sdp*.pc
+%{_libdir}/pkgconfig/gstreamer-tag*.pc
+%{_libdir}/pkgconfig/gstreamer-video*.pc
+%{_datadir}/gir-%{gst_branch}/GstAllocators*.gir
+%{_datadir}/gir-%{gst_branch}/GstApp*.gir
+%{_datadir}/gir-%{gst_branch}/GstAudio*.gir
+%{_datadir}/gir-%{gst_branch}/GstPbutils*.gir
+%{_datadir}/gir-%{gst_branch}/GstRtp*.gir
+%{_datadir}/gir-%{gst_branch}/GstRtsp*.gir
+%{_datadir}/gir-%{gst_branch}/GstSdp*.gir
+%{_datadir}/gir-%{gst_branch}/GstTag*.gir
+%{_datadir}/gir-%{gst_branch}/GstVideo*.gir
+
+%endif
+
+###################### gst-plugins-good ######################
+
+%if "%{plugin}" == "all" || "%{plugin}" == "good"
+
+%files -n gst-plugins-good
+%manifest gst-plugins-good.manifest
+%defattr(-, root, root)
+%license subprojects/gst-plugins-good/COPYING
+%{_lib_gstreamer_dir}/libgstalaw.so
+%{_lib_gstreamer_dir}/libgstapetag.so
+%{_lib_gstreamer_dir}/libgstaudiofx.so
+%{_lib_gstreamer_dir}/libgstaudioparsers.so
+%{_lib_gstreamer_dir}/libgstautodetect.so
+%{_lib_gstreamer_dir}/libgstavi.so
+%{_lib_gstreamer_dir}/libgstdebug.so
+%{_lib_gstreamer_dir}/libgstdeinterlace.so
+%{_lib_gstreamer_dir}/libgsteffectv.so
+%{_lib_gstreamer_dir}/libgsticydemux.so
+%{_lib_gstreamer_dir}/libgstid3demux.so
+%{_lib_gstreamer_dir}/libgstinterleave.so
+%{_lib_gstreamer_dir}/libgstisomp4.so
+%{_lib_gstreamer_dir}/libgstjpeg.so
+%{_lib_gstreamer_dir}/libgstmatroska.so
+%{_lib_gstreamer_dir}/libgstmulaw.so
+%{_lib_gstreamer_dir}/libgstmultifile.so
+%{_lib_gstreamer_dir}/libgstnavigationtest.so
+%{_lib_gstreamer_dir}/libgstpulseaudio.so
+%{_lib_gstreamer_dir}/libgstreplaygain.so
+%{_lib_gstreamer_dir}/libgstrtp.so
+%{_lib_gstreamer_dir}/libgstrtpmanager.so
+%{_lib_gstreamer_dir}/libgstrtsp.so
+%{_lib_gstreamer_dir}/libgstsmpte.so
+%{_lib_gstreamer_dir}/libgstudp.so
+%{_lib_gstreamer_dir}/libgstvideo4linux2.so
+%{_lib_gstreamer_dir}/libgstvideocrop.so
+%{_lib_gstreamer_dir}/libgstvideofilter.so
+%{_lib_gstreamer_dir}/libgstwavenc.so
+%{_lib_gstreamer_dir}/libgstwavparse.so
+%if %{with x}
+%{_lib_gstreamer_dir}/libgstximagesrc.so
+%endif
+%{_lib_gstreamer_dir}/libgstcairo.so
+%{_lib_gstreamer_dir}/libgstsoup.so
+%{_lib_gstreamer_dir}/libgstvpx.so
+%{_lib_gstreamer_dir}/libgstimagefreeze.so
+%if "%{tizen_profile_name}" != "tv"
+%{_lib_gstreamer_dir}/libgstflv.so
+%{_lib_gstreamer_dir}/libgstvideobox.so
+%{_lib_gstreamer_dir}/libgstvideomixer.so
+%{_datadir}/gstreamer-%{gst_branch}/presets/GstQTMux.prs
+%endif
+%{_datadir}/gstreamer-%{gst_branch}/presets/GstVP8Enc.prs
+
+%files -n gst-plugins-good-extra
+%manifest gst-plugins-good.manifest
+%defattr(-, root, root)
+%license subprojects/gst-plugins-good/COPYING
+%if 0%{?ENABLE_AALIB}
+%{_lib_gstreamer_dir}/libgstaasink.so
+%endif
+%{_lib_gstreamer_dir}/libgstpng.so
+%{_lib_gstreamer_dir}/libgstimagefreeze.so
+
+%endif
+
+###################### gst-plugins-bad ######################
+
+%if "%{plugin}" == "all" || "%{plugin}" == "bad"
+
+%files -n gst-plugins-bad
+%manifest gst-plugins-bad.manifest
+%defattr(-, root, root)
+%license subprojects/gst-plugins-bad/COPYING
+%if "%{tizen_profile_name}" != "tv"
+%{_lib_gstreamer_dir}/libgstautoconvert.so
+%{_lib_gstreamer_dir}/libgstcamerabin.so
+%{_lib_gstreamer_dir}/libgstid3tag.so
+%{_lib_gstreamer_dir}/libgstjpegformat.so
+%{_lib_gstreamer_dir}/libgstmpegpsdemux.so
+%{_lib_gstreamer_dir}/libgstsmoothstreaming.so
+%{_lib_gstreamer_dir}/libgstdash.so
+%if 0%{?enable_gl:1}
+%{_lib_gstreamer_dir}/libgstopengl.so
+%endif
+%{_lib_gstreamer_dir}/libgstsoundtouch.so
+%{_libdir}/libgstadaptivedemux-%{gst_branch}.so.0*
+%{_libdir}/libgstbasecamerabinsrc-%{gst_branch}.so.0*
+%{_libdir}/libgstinsertbin-%{gst_branch}.so.0*
+%{_libdir}/libgstphotography-%{gst_branch}.so.0*
+%{_libdir}/libgsturidownloader-%{gst_branch}.so.0*
+%if 0%{?enable_gl:1}
+%{_libdir}/libgstgl-%{gst_branch}.so.0*
+%endif
+%{_libdir}/libgstisoff-%{gst_branch}.so.0*
+%endif
+%{_lib_gstreamer_dir}/libgstaes.so
+%{_lib_gstreamer_dir}/libgstgdp.so
+%{_lib_gstreamer_dir}/libgstdebugutilsbad.so
+%{_lib_gstreamer_dir}/libgstmpegtsdemux.so
+%{_lib_gstreamer_dir}/libgstmpegtsmux.so
+%{_lib_gstreamer_dir}/libgstsdpelem.so
+%{_lib_gstreamer_dir}/libgstshm.so
+%{_lib_gstreamer_dir}/libgstvideoparsersbad.so
+%{_lib_gstreamer_dir}/libgstmidi.so
+%{_lib_gstreamer_dir}/libgstopenal.so
+%{_lib_gstreamer_dir}/libgsthls.so
+%{_lib_gstreamer_dir}/libgstnetsim.so
+%{_lib_gstreamer_dir}/libgsttimecode.so
+%{_lib_gstreamer_dir}/libgstvideoframe_audiolevel.so
+%{_lib_gstreamer_dir}/libgstaudiomixmatrix.so
+%{_lib_gstreamer_dir}/libgstaudiobuffersplit.so
+%{_lib_gstreamer_dir}/libgstaudiolatency.so
+%{_lib_gstreamer_dir}/libgstipcpipeline.so
+%{_lib_gstreamer_dir}/libgstproxy.so
+%{_lib_gstreamer_dir}/libgstwebrtc.so
+%{_lib_gstreamer_dir}/libgstdtls.so
+%{_lib_gstreamer_dir}/libgstrtpmanagerbad.so
+%{_lib_gstreamer_dir}/libgstsctp.so
+%{_lib_gstreamer_dir}/libgstsrtp.so
+%{_lib_gstreamer_dir}/libgstopusparse.so
+%{_lib_gstreamer_dir}/libgstgaudieffects.so
+%{_lib_gstreamer_dir}/libgstcoloreffects.so
+%if %{with wayland}
+%{_lib_gstreamer_dir}/libgstwaylandsink.so
+%endif
+%{_libdir}/libgstbadaudio-%{gst_branch}.so.0*
+%{_libdir}/libgstcodecs-%{gst_branch}.so.0*
+%{_libdir}/libgstcodecparsers-%{gst_branch}.so.0*
+%{_libdir}/libgstmpegts-%{gst_branch}.so.0*
+%{_libdir}/libgstplay-%{gst_branch}.so.0*
+%{_libdir}/libgstplayer-%{gst_branch}.so.0*
+%{_libdir}/libgstsctp-%{gst_branch}.so.0*
+%{_libdir}/libgsttranscoder-%{gst_branch}.so.0*
+%{_libdir}/libgstwebrtc-%{gst_branch}.so.0*
+%if %{with wayland}
+%{_libdir}/libgstwayland-%{gst_branch}.so.0*
+%endif
+%exclude %{_bindir}/gst-transcoder-1.0
+%{_lib_girepository}/GstBadAudio-1.0.typelib
+%{_lib_girepository}/GstCodecs-1.0.typelib
+%{_lib_girepository}/GstInsertBin-1.0.typelib
+%{_lib_girepository}/GstMpegts-1.0.typelib
+%{_lib_girepository}/GstPlay-1.0.typelib
+%{_lib_girepository}/GstPlayer-1.0.typelib
+%{_lib_girepository}/GstTranscoder-1.0.typelib
+%{_lib_girepository}/GstWebRTC-1.0.typelib
+
+%files -n gst-plugins-bad-devel
+%manifest gst-plugins-bad.manifest
+%defattr(-, root, root)
+%{_includedir}/gstreamer-%{gst_branch}/gst/audio/audio-bad-prelude.h
+%{_includedir}/gstreamer-%{gst_branch}/gst/audio/gstnonstreamaudiodecoder.h
+%{_includedir}/gstreamer-%{gst_branch}/gst/audio/gstplanaraudioadapter.h
+%{_includedir}/gstreamer-%{gst_branch}/gst/basecamerabinsrc/*
+%{_includedir}/gstreamer-%{gst_branch}/gst/codecparsers/*
+%{_includedir}/gstreamer-%{gst_branch}/gst/insertbin/*
+%{_includedir}/gstreamer-%{gst_branch}/gst/interfaces/*
+%{_includedir}/gstreamer-%{gst_branch}/gst/isoff/*
+%{_includedir}/gstreamer-%{gst_branch}/gst/mpegts/*
+%{_includedir}/gstreamer-%{gst_branch}/gst/play/*
+%{_includedir}/gstreamer-%{gst_branch}/gst/player/*
+%{_includedir}/gstreamer-%{gst_branch}/gst/sctp/*
+%{_includedir}/gstreamer-%{gst_branch}/gst/transcoder/*
+%{_includedir}/gstreamer-%{gst_branch}/gst/uridownloader/*
+%if %{with wayland}
+%{_includedir}/gstreamer-%{gst_branch}/gst/wayland/*
+%endif
+%{_includedir}/gstreamer-%{gst_branch}/gst/webrtc/*
+%if "%{tizen_profile_name}" != "tv"
+%if 0%{?enable_gl:1}
+%{_lib_gstreamer_dir}/include/gst/gl/*
+%endif
+%endif
+%{_libdir}/libgstadaptivedemux*.so
+%{_libdir}/libgstbadaudio*.so
+%{_libdir}/libgstbasecamerabinsrc*.so
+%{_libdir}/libgstcodecparsers*.so
+%{_libdir}/libgstcodecs*.so
+%{_libdir}/libgstinsertbin*.so
+%{_libdir}/libgstisoff*.so
+%{_libdir}/libgstmpegts*.so
+%{_libdir}/libgstphotography*.so
+%{_libdir}/libgstplay*.so
+%{_libdir}/libgstsctp*.so
+%{_libdir}/libgsttranscoder*.so
+%{_libdir}/libgsturidownloader*.so
+%if %{with wayland}
+%{_libdir}/libgstwayland*.so
+%endif
+%{_libdir}/libgstwebrtc*.so
+%{_libdir}/pkgconfig/gstreamer-bad-audio-1.0.pc
+%{_libdir}/pkgconfig/gstreamer-codecparsers-1.0.pc
+%if "%{tizen_profile_name}" != "tv"
+%if 0%{?enable_gl:1}
+%{_libdir}/pkgconfig/gstreamer-gl-*.pc
+%endif
+%endif
+%{_libdir}/pkgconfig/gstreamer-insertbin-1.0.pc
+%{_libdir}/pkgconfig/gstreamer-mpegts-1.0.pc
+%{_libdir}/pkgconfig/gstreamer-photography-1.0.pc
+%{_libdir}/pkgconfig/gstreamer-play-1.0.pc
+%{_libdir}/pkgconfig/gstreamer-player-1.0.pc
+%{_libdir}/pkgconfig/gstreamer-plugins-bad-1.0.pc
+%{_libdir}/pkgconfig/gstreamer-sctp-1.0.pc
+%{_libdir}/pkgconfig/gstreamer-transcoder-1.0.pc
+%if %{with wayland}
+%{_libdir}/pkgconfig/gstreamer-wayland-1.0.pc
+%endif
+%{_libdir}/pkgconfig/gstreamer-webrtc-1.0.pc
+%{_datadir}/gir-%{gst_branch}/GstBadAudio*.gir
+%{_datadir}/gir-%{gst_branch}/GstCodecs*.gir
+%{_datadir}/gir-%{gst_branch}/GstInsertBin*.gir
+%{_datadir}/gir-%{gst_branch}/GstMpegts*.gir
+%{_datadir}/gir-%{gst_branch}/GstPlay*.gir
+%{_datadir}/gir-%{gst_branch}/GstPlayer*.gir
+%{_datadir}/gir-%{gst_branch}/GstTranscoder*.gir
+%{_datadir}/gir-%{gst_branch}/GstWebRTC*.gir
+
+%endif
+
+###################### gst-plugins-ugly ######################
+
+%if "%{plugin}" == "all" || "%{plugin}" == "ugly"
+
+%files -n gst-plugins-ugly
+%manifest gst-plugins-ugly.manifest
+%defattr(-,root,root,-)
+%license subprojects/gst-plugins-ugly/COPYING
+%if "%{tizen_profile_name}" != "tv"
+%{_lib_gstreamer_dir}/libgstasf.so
+%{_lib_gstreamer_dir}/libgstamrnb.so
+%exclude %{_datadir}/gstreamer-%{gst_branch}/presets/GstAmrnbEnc.prs
+%endif
+%{_lib_gstreamer_dir}/libgstamrwbdec.so
+
+%endif
+
+########################## gst-omx ###########################
+
+%if "%{plugin}" == "all" || "%{plugin}" == "omx"
+
+%files -n gst-omx
+%manifest gst-omx.manifest
+%defattr(-,root,root,-)
+%license subprojects/gst-omx/COPYING
+%{_libdir}/gstreamer-1.0/libgstomx.so
+
+%endif
+
+######################## gst-libav ###########################
+
+%if "%{plugin}" == "all" || "%{plugin}" == "libav"
+
+%files -n gst-libav
+%manifest gst-libav.manifest
+%defattr(-,root,root,-)
+%license subprojects/gst-libav/COPYING
+%{_libdir}/gstreamer-1.0/libgstlibav.so
+
+%endif
+
+%if 0
+###################### gst-rtsp-server #######################
+
+%if "%{plugin}" == "all" || "%{plugin}" == "rs"
+
+%files -n gst-rtsp-server
+%manifest gst-rtsp-server.manifest
+%defattr(-,root,root,-)
+%license subprojects/gst-rtsp-server/COPYING
+%{_libdir}/libgstrtspserver*.so.*
+%{_libdir}/gstreamer-1.0/libgstrtspclientsink.so
+
+%files -n gst-rtsp-server-devel
+%defattr(-,root,root,-)
+%{_libdir}/libgstrtspserver*.so
+%{_includedir}/gstreamer-1.0/gst/rtsp-server/rtsp-*.h
+%{_includedir}/gstreamer-1.0/gst/rtsp-server/gstwfd*.h
+%{_libdir}/pkgconfig/libgstrtspserver*
+
+%endif
+
+%endif
+
+###################### gst-editing-services #######################
+
+%if "%{plugin}" == "all" || "%{plugin}" == "es"
+
+%files -n gst-editing-services
+%manifest gst-editing-services.manifest
+%defattr(-,root,root,-)
+%license subprojects/gst-editing-services/COPYING
+%{_libdir}/libges*.so.*
+%{_libdir}/gstreamer-1.0/libgstges.so
+%{_libdir}/gstreamer-1.0/libgstnle.so
+%{_libdir}/girepository-1.0/GES-1.0.typelib
+%exclude %{_libdir}/gst-validate-launcher/python/launcher/apps/geslaunch.py
+%exclude %{_datadir}/gstreamer-%{gst_branch}/validate/scenarios/ges-edit-clip-while-paused.scenario
+%{_bindir}/ges*-%{gst_branch}
+
+%files -n gst-editing-services-devel
+%{_libdir}/libges*.so
+%{_includedir}/gstreamer-1.0/ges/*
+%{_libdir}/pkgconfig/gst-editing-services-1.0.pc
+%{_datadir}/gir-1.0/GES-1.0.gir
+
+%endif