Merge tag 'upstream/1.9.90' into debian-experimental
Upstream version 1.9.90
diff --git a/ChangeLog b/ChangeLog
index 2a64354..c6f423a 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,9 +1,339 @@
-=== release 1.9.2 ===
+=== release 1.9.90 ===
-2016-09-01 Sebastian Dröge <slomo@coaxion.net>
+2016-09-30 Sebastian Dröge <slomo@coaxion.net>
* configure.ac:
- releasing 1.9.2
+ releasing 1.9.90
+
+2016-09-30 11:42:21 +0300 Sebastian Dröge <sebastian@centricular.com>
+
+ * po/de.po:
+ po: Update translations
+
+2016-09-29 19:54:52 +0530 Arun Raghavan <arun@osg.samsung.com>
+
+ * gst-libs/gst/audio/Makefile.am:
+ audio-resampler: Add a missing header to noinst_HEADERS
+
+2016-09-29 19:45:16 +0530 Arun Raghavan <arun@osg.samsung.com>
+
+ * gst-libs/gst/audio/audio-resampler-x86-sse41.c:
+ * gst-libs/gst/audio/audio-resampler-x86.h:
+ audiorsample: Fix build on 32-bit x86
+ Turns out _mm_cvtsi128_si64() isn't available on 32-bit, so only build
+ SSE 4.1 optimisations on x86-64 for now.
+
+2016-09-28 17:37:38 +0530 Arun Raghavan <arun@osg.samsung.com>
+
+ * configure.ac:
+ * gst-libs/gst/audio/Makefile.am:
+ * gst-libs/gst/audio/audio-resampler-macros.h:
+ * gst-libs/gst/audio/audio-resampler-neon.h:
+ * gst-libs/gst/audio/audio-resampler-private.h:
+ * gst-libs/gst/audio/audio-resampler-x86-sse.c:
+ * gst-libs/gst/audio/audio-resampler-x86-sse.h:
+ * gst-libs/gst/audio/audio-resampler-x86-sse2.c:
+ * gst-libs/gst/audio/audio-resampler-x86-sse2.h:
+ * gst-libs/gst/audio/audio-resampler-x86-sse41.c:
+ * gst-libs/gst/audio/audio-resampler-x86-sse41.h:
+ * gst-libs/gst/audio/audio-resampler-x86.h:
+ * gst-libs/gst/audio/audio-resampler.c:
+ audioresample: Separate out CFLAGS used for SSE* code
+ This makes sure that we only build files that need explicit SIMD support
+ with the relevant CFLAGS. This allows the rest of the code to be built
+ without, and specific SSE* code is only called after runtime checks for
+ CPU features.
+ https://bugzilla.gnome.org/show_bug.cgi?id=729276
+
+2016-09-28 19:08:52 +0530 Arun Raghavan <arun@osg.samsung.com>
+
+ * gst-libs/gst/audio/audio-resampler.c:
+ audioresample: Fix some gobject introspection warnings
+
+2016-09-26 10:01:08 +0200 Edward Hervey <edward@centricular.com>
+
+ * gst/playback/gstplaybin3.c:
+ playbin3: Remove fallback properties/signals
+ These can all be used via the GstStream API
+ https://bugzilla.gnome.org/show_bug.cgi?id=769079
+
+2016-09-25 22:02:22 +0100 Tim-Philipp Müller <tim@centricular.com>
+
+ * tests/check/meson.build:
+ tests: playbin-complex test needs oggdemux
+
+2016-09-24 21:11:32 +0100 Tim-Philipp Müller <tim@centricular.com>
+
+ * tests/check/libs/videotimecode.c:
+ tests: videotimecode: fix floating point comparisons
+ Comparing floats for equality is not necessarily going to
+ work reliably, so use fail_unless_equals_float() for this.
+ Test would fail on x86 (Intel Atom x5-Z8300).
+
+2016-09-25 16:22:16 +0100 Tim-Philipp Müller <tim@centricular.com>
+
+ * tests/check/elements/adder.c:
+ tests: adder: disable racy flush_start_flush_stop test
+ It's been broken for years, and it's unlikely it will ever
+ be fixed for collectpads/adder now that there's audiomixer
+ which works fine. So let's disable it, since all it does
+ is that it creates noise that distracts from other failures.
+ https://bugzilla.gnome.org/show_bug.cgi?id=708891
+
+2016-09-22 16:15:54 +0200 Wim Taymans <wtaymans@redhat.com>
+
+ * gst-libs/gst/video/video-scaler.c:
+ video-scaler: take number of bits into account when copying
+ Copy twice the amount of pixels for 16 bits formats.
+ Fixes https://bugzilla.gnome.org/show_bug.cgi?id=747225
+
+2016-09-20 15:12:22 -0400 Sebastian Dröge <sebastian@centricular.com>
+
+ * gst/playback/gststreamsynchronizer.c:
+ streamsynchronizer: Correctly calculate group start times in reverse playback mode
+ We have to calculate from the segment.stop, not the segment.start, as
+ playback goes from stop to start. This fix works around another race
+ condition in streamsynchronizer in my testcase.
+ See https://bugzilla.gnome.org/show_bug.cgi?id=771479
+
+2016-09-20 17:31:55 +0100 Tim-Philipp Müller <tim@centricular.com>
+
+ * tests/examples/seek/stepping.c:
+ * tests/examples/seek/stepping2.c:
+ examples: seek: fix build with MSVC
+ Use G_PI instead of M_PI. Could also have defined
+ _USE_MATH_DEFINES or included gst/math-compat.h but
+ this seems simplest.
+
+2016-09-19 11:27:10 -0400 Nicolas Dufresne <nicolas.dufresne@collabora.com>
+
+ * gst-libs/gst/video/video-frame.c:
+ doc: Add missing map flag to gst_video_frame_map()
+ Add missing map flag, and also add unmap call.
+
+2016-09-17 12:42:46 +0200 Sebastian Dröge <sebastian@centricular.com>
+
+ * gst/audiotestsrc/gstaudiotestsrc.c:
+ audiotestsrc: Fix segment boundary checking for reverse playback
+
+2016-09-14 16:51:30 +0200 Sebastian Dröge <sebastian@centricular.com>
+
+ * gst/audiotestsrc/gstaudiotestsrc.c:
+ audiotestsrc: Don't adjust segment time in seek handler
+ basesrc already did that very well for us, adjusting it again on top of
+ that just breaks various non-standard seeks.
+
+2016-09-14 11:29:59 +0200 Sebastian Dröge <sebastian@centricular.com>
+
+ * configure.ac:
+ configure: Depend on gstreamer 1.9.2.1
+
+2016-09-14 10:14:18 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
+
+ * gst-libs/gst/video/video-overlay-composition.c:
+ videooverlaycomposition: document required map flags
+ Fix documentation for gst_video_overlay_composition_blend(). The video frame
+ needs to be mapped with GST_MAP_READWRITE flag.
+ https://bugzilla.gnome.org/show_bug.cgi?id=771382
+
+2016-09-12 18:37:21 +0200 Sebastian Dröge <sebastian@centricular.com>
+
+ * gst/playback/gstplaysink.c:
+ * gst/playback/gsturidecodebin.c:
+ * gst/playback/gsturisourcebin.c:
+ playback: Use new gst_bin_set_suppressed_flags() API instead of worrying about the flags in multiple places
+
+2016-09-10 20:50:56 +1000 Jan Schmidt <jan@centricular.com>
+
+ * autogen.sh:
+ * common:
+ Automatic update of common submodule
+ From b18d820 to f980fd9
+
+2016-09-10 10:05:28 +0100 Tim-Philipp Müller <tim@centricular.com>
+
+ * tests/check/Makefile.am:
+ * tests/check/elements/.gitignore:
+ * tests/check/elements/videoscale.c:
+ * tests/check/meson.build:
+ tests: videoscale: split test into multiple ones
+ The videoscale test takes eternities to run, that's not
+ great. Split the test into multiple ones. That way they
+ can be run in parallel. Reduces time to run all tests in
+ -base from 29 secs to 12 secs when using meson/ninja.
+
+2016-09-10 09:53:49 +1000 Jan Schmidt <jan@centricular.com>
+
+ * autogen.sh:
+ * common:
+ Automatic update of common submodule
+ From f49c55e to b18d820
+
+2016-09-07 17:02:23 -0300 Thibault Saunier <thibault.saunier@osg.samsung.com>
+
+ * tests/check/meson.build:
+ meson: Raise test timeout to 3 minutes
+ The videoscale testsuite (with 50 tests) last almost 2 minutes here
+
+2016-09-07 14:24:54 -0400 Nicolas Dufresne <nicolas.dufresne@collabora.com>
+
+ * tests/check/libs/video.c:
+ video/test: Coding style fix
+
+2016-09-05 19:55:58 -0300 Thibault Saunier <thibault.saunier@osg.samsung.com>
+
+ * tests/examples/overlay/meson.build:
+ meson: Workaround the qt5 module not letting us now the preprocessor is not avalaible
+ If moc-qt5 is not avalaible, meson breaks:
+ https://github.com/mesonbuild/meson/issues/758
+
+2016-09-05 18:40:19 -0300 Thibault Saunier <thibault.saunier@osg.samsung.com>
+
+ * tests/examples/overlay/meson.build:
+ meson: tests: Do not pull qt5 as a hard dependency
+
+2016-09-05 17:43:13 -0300 Thibault Saunier <thibault.saunier@osg.samsung.com>
+
+ * meson.build:
+ * tests/check/getpluginsdir:
+ * tests/check/meson.build:
+ meson: Properly find where GStreamer plugins are when using subprojects
+ And fix building with meson 0.34
+
+2016-09-05 12:22:36 -0300 Thibault Saunier <thibault.saunier@osg.samsung.com>
+
+ * meson.build:
+ meson: Bump version to 1.9.2
+
+2016-08-26 11:30:16 +0100 Vincent Penquerc'h <vincent.penquerch@collabora.co.uk>
+
+ * ext/ogg/gstoggdemux.c:
+ oggdemux: safety for failing to determine time length in push mode
+ If we can't find a valid granule near the end of the file, we
+ disable seeking. This guards against the whole file being then
+ read and never going to PLAYING.
+ https://bugzilla.gnome.org/show_bug.cgi?id=770314
+
+2016-08-26 11:27:17 +0100 Vincent Penquerc'h <vincent.penquerch@collabora.co.uk>
+
+ * ext/ogg/gstoggdemux.c:
+ oggdemux: increase EOS granpos detection chunk size
+ This can be too small on some files to find a valid granule.
+ https://bugzilla.gnome.org/show_bug.cgi?id=770314
+
+2016-09-04 21:41:04 +0100 Tim-Philipp Müller <tim@centricular.com>
+
+ * tests/examples/seek/meson.build:
+ meson: fix joystick header check for jseek example
+
+2016-09-03 11:57:22 +1000 Jonathan Matthew <jonathan@d14n.org>
+
+ * gst-libs/gst/pbutils/gstdiscoverer.c:
+ pbutils: store missing-plugin structure in current_info->misc again
+ This allows gst_discoverer_info_get_misc to work again, until it
+ finally gets removed.
+ https://bugzilla.gnome.org/show_bug.cgi?id=770643
+
+2016-09-04 16:04:00 +0100 Tim-Philipp Müller <tim@centricular.com>
+
+ * tools/gst-play.c:
+ tools: gst-play: cycle between video tracks without disabling video
+
+2016-09-01 17:56:24 +0300 Sebastian Dröge <sebastian@centricular.com>
+
+ * win32/common/libgstrtp.def:
+ win32: Update exports
+
+2016-09-01 22:48:40 +1000 Jan Schmidt <jan@centricular.com>
+
+ * gst-libs/gst/video/video-frame.h:
+ video-frame: Expand the range of caps for extended buffer flags
+ The video buffer flags can be applied to encoded video streams,
+ such as video/x-h264 marked up by a demuxer or parser.
+
+2016-09-01 13:07:07 +0300 Sebastian Dröge <sebastian@centricular.com>
+
+ * gst/playback/gstplaybackutils.h:
+ playback: Mark internal functions as G_GNUC_INTERNAL
+
+2016-09-01 14:47:02 +0900 Wonchul Lee <wonchul.lee@collabora.com>
+
+ * gst/playback/gstdecodebin2.c:
+ * gst/playback/gstplaybackutils.c:
+ * gst/playback/gstplaybackutils.h:
+ * gst/playback/gsturidecodebin.c:
+ * gst/playback/gsturisourcebin.c:
+ playbackutils: Move compare_factories_func
+ Move _decode_bin_compare_factories_func function to playbackutils
+ https://bugzilla.gnome.org/show_bug.cgi?id=770692
+
+2016-09-01 09:59:06 +0200 Havard Graff <havard.graff@gmail.com>
+
+ * gst-libs/gst/video/video-frame.h:
+ video-frame: GST_VIDEO_BUFFER_FLAG are only valid for video/x-raw caps
+ https://bugzilla.gnome.org/show_bug.cgi?id=769771
+
+2016-09-01 09:57:33 +0200 Havard Graff <havard.graff@gmail.com>
+
+ * gst-libs/gst/rtp/gstrtpbuffer.h:
+ rtpbuffer: Add buffer flag RETRANSMISSION
+ Useful for elements to know if a buffer is a retransmitted RTP packet.
+ https://bugzilla.gnome.org/show_bug.cgi?id=769771
+
+2016-09-01 12:38:14 +0300 Sebastian Dröge <sebastian@centricular.com>
+
+ * configure.ac:
+ configure: Require orc >= 0.4.24
+ Needed for being able to compile video.orc
+ https://bugzilla.gnome.org/show_bug.cgi?id=770698
+
+2016-09-01 12:26:40 +0300 Sebastian Dröge <sebastian@centricular.com>
+
+ * configure.ac:
+ Back to development
+
+=== release 1.9.2 ===
+
+2016-09-01 12:26:20 +0300 Sebastian Dröge <sebastian@centricular.com>
+
+ * ChangeLog:
+ * NEWS:
+ * RELEASE:
+ * configure.ac:
+ * docs/plugins/gst-plugins-base-plugins.signals:
+ * docs/plugins/inspect/plugin-adder.xml:
+ * docs/plugins/inspect/plugin-alsa.xml:
+ * docs/plugins/inspect/plugin-app.xml:
+ * docs/plugins/inspect/plugin-audioconvert.xml:
+ * docs/plugins/inspect/plugin-audiorate.xml:
+ * docs/plugins/inspect/plugin-audioresample.xml:
+ * docs/plugins/inspect/plugin-audiotestsrc.xml:
+ * docs/plugins/inspect/plugin-cdparanoia.xml:
+ * docs/plugins/inspect/plugin-encoding.xml:
+ * docs/plugins/inspect/plugin-gio.xml:
+ * docs/plugins/inspect/plugin-libvisual.xml:
+ * docs/plugins/inspect/plugin-ogg.xml:
+ * docs/plugins/inspect/plugin-opus.xml:
+ * docs/plugins/inspect/plugin-pango.xml:
+ * docs/plugins/inspect/plugin-playback.xml:
+ * docs/plugins/inspect/plugin-subparse.xml:
+ * docs/plugins/inspect/plugin-tcp.xml:
+ * docs/plugins/inspect/plugin-theora.xml:
+ * docs/plugins/inspect/plugin-typefindfunctions.xml:
+ * docs/plugins/inspect/plugin-videoconvert.xml:
+ * docs/plugins/inspect/plugin-videorate.xml:
+ * docs/plugins/inspect/plugin-videoscale.xml:
+ * docs/plugins/inspect/plugin-videotestsrc.xml:
+ * docs/plugins/inspect/plugin-volume.xml:
+ * docs/plugins/inspect/plugin-vorbis.xml:
+ * docs/plugins/inspect/plugin-ximagesink.xml:
+ * docs/plugins/inspect/plugin-xvimagesink.xml:
+ * gst-plugins-base.doap:
+ * win32/common/_stdint.h:
+ * win32/common/config.h:
+ * win32/common/video-enumtypes.c:
+ * win32/common/video-enumtypes.h:
+ Release 1.9.2
2016-09-01 11:23:10 +0300 Sebastian Dröge <sebastian@centricular.com>
diff --git a/Makefile.in b/Makefile.in
index 027d9c1..4eaa664 100644
--- a/Makefile.in
+++ b/Makefile.in
@@ -460,6 +460,9 @@
SED = @SED@
SET_MAKE = @SET_MAKE@
SHELL = @SHELL@
+SSE2_CFLAGS = @SSE2_CFLAGS@
+SSE41_CFLAGS = @SSE41_CFLAGS@
+SSE_CFLAGS = @SSE_CFLAGS@
STRIP = @STRIP@
THEORA_CFLAGS = @THEORA_CFLAGS@
THEORA_LIBS = @THEORA_LIBS@
@@ -1158,8 +1161,11 @@
update-exports:
make check-exports 2>&1 | patch -p1
- git add win32/common/libgst*.def
- git diff --cached -- win32/common/
+ if test -f "$(top_srcdir)/win32/common/libgstgl.def"; then \
+ git checkout "$(top_srcdir)/win32/common/libgstgl.def"; \
+ fi
+ git add $(top_srcdir)/win32/common/libgst*.def
+ git diff --cached -- $(top_srcdir)/win32/common/
echo '^^^--- updated and staged changes above'
# complain about nonportable printf format strings (%lld, %llu, %zu etc.)
diff --git a/NEWS b/NEWS
index 027c018..072b2df 100644
--- a/NEWS
+++ b/NEWS
@@ -1 +1 @@
-This is GStreamer 1.9.2
+This is GStreamer 1.9.90
diff --git a/RELEASE b/RELEASE
index c655d19..32a0af3 100644
--- a/RELEASE
+++ b/RELEASE
@@ -1,13 +1,10 @@
-Release notes for GStreamer Base Plugins 1.9.2
+Release notes for GStreamer Base Plugins 1.9.90
-The GStreamer team is pleased to announce the second release of the unstable
-1.9 release series, which marks the feature freeze for 1.10. The 1.9 release
-series is adding new features on top of the 1.0, 1.2, 1.4, 1.6 and 1.8 series
-and is part of the API and ABI-stable 1.x release series of the GStreamer
-multimedia framework. The unstable 1.9 release series will lead to the stable
-1.10 release series in the next weeks. Any newly added API can still change
-until that point.
+The GStreamer team is pleased to announce the first release candidate of the
+stable 1.10 release series. The 1.10 release series is adding new features on
+top of the 1.0, 1.2, 1.4, 1.6 and 1.8 series and is part of the API and
+ABI-stable 1.x release series of the GStreamer multimedia framework.
Binaries for Android, iOS, Mac OS X and Windows will be provided in the next days.
@@ -59,23 +56,12 @@
Bugs fixed in this release
- * 761514 : riff: remove limits for sample rate and channel count
- * 766419 : videotimecode: Added support for SMPTE time code metadata
- * 767816 : Comparison of constant 64 with expression of type 'GstVideoFormat' is always false in Mac OS X
- * 768495 : POTFILES.in is out of date
- * 768525 : subparse: don't reset allowed tags
- * 768687 : Rework video orientation
- * 768718 : videoscale: fix leak in test
- * 768811 : decodebin3/playbin3: fix leaks
- * 768852 : appsink: add _try_pull_{sample,preroll} with timeout parameter
- * 768990 : audioclock: use GST_STIME_FORMAT for the correct argument
- * 769080 : decodebin3: fix collection refcounting
- * 769270 : decodebin3/playbin3: fix ref handling
- * 769298 : decodebin3: handle full removal of streams
- * 769299 : ogg: check return values in gst_ogg_parse_new_stream
- * 769303 : pbutils: Add more h264 scalable profiles
- * 769624 : videorate: Does not support reverse playback
- * 770053 : parsebin: sometimes sets global tags to stream
+ * 729276 : audioresample: Misdetected and/or misused intrinsics headers
+ * 769771 : rtpbuffer: Add buffer flag RETRANSMISSION
+ * 770314 : oggdemux: Does not go back to beginning point on EOS when determining stream length
+ * 770446 : pulsesrc, audiosrc: No audio captured with new GStreamer 1.8.2
+ * 770692 : playbackutils: Move compare_factories_func
+ * 770698 : video-orc.orc doesn't compile with orc 0.4.23
==== Download ====
@@ -113,29 +99,16 @@
Contributors to this release
* Arun Raghavan
- * Carlos Rafael Giani
- * Duncan Palmer
* Edward Hervey
- * Guillaume Desmottes
+ * Havard Graff
* Jan Schmidt
- * Joan Pau Beltran
- * Josep Torra
- * Luis de Bethencourt
- * Matej Knopp
- * Michael Olbrich
- * Nirbheek Chauhan
- * Piotr Drąg
+ * Jonathan Matthew
+ * Nicolas Dufresne
* Sebastian Dröge
- * Sergio Torres Soldado
- * Seungha Yang
- * Sreerenj Balachandran
- * Stefan Sauer
* Thibault Saunier
- * Thijs Vermeir
* Tim-Philipp Müller
* Vincent Penquerc'h
- * Vivia Nikolaidou
* Víctor Manuel Jáquez Leal
* Wim Taymans
- * Xabier Rodriguez Calvar
+ * Wonchul Lee
\ No newline at end of file
diff --git a/common/Makefile.in b/common/Makefile.in
index 2a0b963..ef5dca8 100644
--- a/common/Makefile.in
+++ b/common/Makefile.in
@@ -422,6 +422,9 @@
SED = @SED@
SET_MAKE = @SET_MAKE@
SHELL = @SHELL@
+SSE2_CFLAGS = @SSE2_CFLAGS@
+SSE41_CFLAGS = @SSE41_CFLAGS@
+SSE_CFLAGS = @SSE_CFLAGS@
STRIP = @STRIP@
THEORA_CFLAGS = @THEORA_CFLAGS@
THEORA_LIBS = @THEORA_LIBS@
diff --git a/common/m4/Makefile.in b/common/m4/Makefile.in
index 7b19cdb..65ddad5 100644
--- a/common/m4/Makefile.in
+++ b/common/m4/Makefile.in
@@ -362,6 +362,9 @@
SED = @SED@
SET_MAKE = @SET_MAKE@
SHELL = @SHELL@
+SSE2_CFLAGS = @SSE2_CFLAGS@
+SSE41_CFLAGS = @SSE41_CFLAGS@
+SSE_CFLAGS = @SSE_CFLAGS@
STRIP = @STRIP@
THEORA_CFLAGS = @THEORA_CFLAGS@
THEORA_LIBS = @THEORA_LIBS@
diff --git a/common/win32.mak b/common/win32.mak
index 87cd346..6060532 100644
--- a/common/win32.mak
+++ b/common/win32.mak
@@ -61,8 +61,11 @@
update-exports:
make check-exports 2>&1 | patch -p1
- git add win32/common/libgst*.def
- git diff --cached -- win32/common/
+ if test -f "$(top_srcdir)/win32/common/libgstgl.def"; then \
+ git checkout "$(top_srcdir)/win32/common/libgstgl.def"; \
+ fi
+ git add $(top_srcdir)/win32/common/libgst*.def
+ git diff --cached -- $(top_srcdir)/win32/common/
echo '^^^--- updated and staged changes above'
# complain about nonportable printf format strings (%lld, %llu, %zu etc.)
diff --git a/config.h.in b/config.h.in
index ed89cad..91a3a5b 100644
--- a/config.h.in
+++ b/config.h.in
@@ -161,6 +161,14 @@
*/
#undef HAVE_DCGETTEXT
+/* Define to 1 if you have the declaration of `__i386__', and to 0 if you
+ don't. */
+#undef HAVE_DECL___I386__
+
+/* Define to 1 if you have the declaration of `__x86_64__', and to 0 if you
+ don't. */
+#undef HAVE_DECL___X86_64__
+
/* Define to 1 if you have the <dlfcn.h> header file. */
#undef HAVE_DLFCN_H
@@ -257,6 +265,15 @@
/* Define to 1 if you have the <smmintrin.h> header file. */
#undef HAVE_SMMINTRIN_H
+/* SSE support is enabled */
+#undef HAVE_SSE
+
+/* SSE2 support is enabled */
+#undef HAVE_SSE2
+
+/* SSE4.1 support is enabled */
+#undef HAVE_SSE41
+
/* Define to 1 if you have the <stdint.h> header file. */
#undef HAVE_STDINT_H
diff --git a/configure b/configure
index 52cdce5..2c3f00f 100755
--- a/configure
+++ b/configure
@@ -1,6 +1,6 @@
#! /bin/sh
# Guess values for system-dependent variables and create Makefiles.
-# Generated by GNU Autoconf 2.69 for GStreamer Base Plug-ins 1.9.2.
+# Generated by GNU Autoconf 2.69 for GStreamer Base Plug-ins 1.9.90.
#
# Report bugs to <http://bugzilla.gnome.org/enter_bug.cgi?product=GStreamer>.
#
@@ -591,8 +591,8 @@
# Identity of this package.
PACKAGE_NAME='GStreamer Base Plug-ins'
PACKAGE_TARNAME='gst-plugins-base'
-PACKAGE_VERSION='1.9.2'
-PACKAGE_STRING='GStreamer Base Plug-ins 1.9.2'
+PACKAGE_VERSION='1.9.90'
+PACKAGE_STRING='GStreamer Base Plug-ins 1.9.90'
PACKAGE_BUGREPORT='http://bugzilla.gnome.org/enter_bug.cgi?product=GStreamer'
PACKAGE_URL=''
@@ -821,6 +821,11 @@
HAVE_WINSOCK2_H_TRUE
HAVE_SYS_SOCKET_H_FALSE
HAVE_SYS_SOCKET_H_TRUE
+SSE41_CFLAGS
+SSE2_CFLAGS
+SSE_CFLAGS
+HAVE_X86_FALSE
+HAVE_X86_TRUE
PTHREAD_CFLAGS
PTHREAD_LIBS
PTHREAD_CC
@@ -1793,7 +1798,7 @@
# Omit some internal or obsolete options to make the list less imposing.
# This message is too long to be a string in the A/UX 3.1 sh.
cat <<_ACEOF
-\`configure' configures GStreamer Base Plug-ins 1.9.2 to adapt to many kinds of systems.
+\`configure' configures GStreamer Base Plug-ins 1.9.90 to adapt to many kinds of systems.
Usage: $0 [OPTION]... [VAR=VALUE]...
@@ -1866,7 +1871,7 @@
if test -n "$ac_init_help"; then
case $ac_init_help in
- short | recursive ) echo "Configuration of GStreamer Base Plug-ins 1.9.2:";;
+ short | recursive ) echo "Configuration of GStreamer Base Plug-ins 1.9.90:";;
esac
cat <<\_ACEOF
@@ -2161,7 +2166,7 @@
test -n "$ac_init_help" && exit $ac_status
if $ac_init_version; then
cat <<\_ACEOF
-GStreamer Base Plug-ins configure 1.9.2
+GStreamer Base Plug-ins configure 1.9.90
generated by GNU Autoconf 2.69
Copyright (C) 2012 Free Software Foundation, Inc.
@@ -2934,7 +2939,7 @@
This file contains any messages produced by compilers while
running configure, to aid debugging if configure makes a mistake.
-It was created by GStreamer Base Plug-ins $as_me 1.9.2, which was
+It was created by GStreamer Base Plug-ins $as_me 1.9.90, which was
generated by GNU Autoconf 2.69. Invocation command line was
$ $0 $@
@@ -3913,7 +3918,7 @@
# Define the identity of the package.
PACKAGE='gst-plugins-base'
- VERSION='1.9.2'
+ VERSION='1.9.90'
cat >>confdefs.h <<_ACEOF
@@ -4124,9 +4129,9 @@
- PACKAGE_VERSION_MAJOR=$(echo 1.9.2 | cut -d'.' -f1)
- PACKAGE_VERSION_MINOR=$(echo 1.9.2 | cut -d'.' -f2)
- PACKAGE_VERSION_MICRO=$(echo 1.9.2 | cut -d'.' -f3)
+ PACKAGE_VERSION_MAJOR=$(echo 1.9.90 | cut -d'.' -f1)
+ PACKAGE_VERSION_MINOR=$(echo 1.9.90 | cut -d'.' -f2)
+ PACKAGE_VERSION_MICRO=$(echo 1.9.90 | cut -d'.' -f3)
@@ -4137,7 +4142,7 @@
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking nano version" >&5
$as_echo_n "checking nano version... " >&6; }
- NANO=$(echo 1.9.2 | cut -d'.' -f4)
+ NANO=$(echo 1.9.90 | cut -d'.' -f4)
if test x"$NANO" = x || test "x$NANO" = "x0" ; then
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: 0 (release)" >&5
@@ -8971,10 +8976,10 @@
done
- GST_CURRENT=902
+ GST_CURRENT=990
GST_REVISION=0
- GST_AGE=902
- GST_LIBVERSION=902:0:902
+ GST_AGE=990
+ GST_LIBVERSION=990:0:990
@@ -13602,7 +13607,7 @@
-GST_REQ=1.9.2
+GST_REQ=1.9.90
@@ -23664,6 +23669,177 @@
done
+ac_fn_c_check_decl "$LINENO" "__i386__" "ac_cv_have_decl___i386__" "$ac_includes_default"
+if test "x$ac_cv_have_decl___i386__" = xyes; then :
+ ac_have_decl=1
+else
+ ac_have_decl=0
+fi
+
+cat >>confdefs.h <<_ACEOF
+#define HAVE_DECL___I386__ $ac_have_decl
+_ACEOF
+if test $ac_have_decl = 1; then :
+ HAVE_X86=1
+fi
+
+ac_fn_c_check_decl "$LINENO" "__x86_64__" "ac_cv_have_decl___x86_64__" "$ac_includes_default"
+if test "x$ac_cv_have_decl___x86_64__" = xyes; then :
+ ac_have_decl=1
+else
+ ac_have_decl=0
+fi
+
+cat >>confdefs.h <<_ACEOF
+#define HAVE_DECL___X86_64__ $ac_have_decl
+_ACEOF
+if test $ac_have_decl = 1; then :
+ HAVE_X86=1
+fi
+
+
+SSE_CFLAGS="-msse"
+SSE2_CFLAGS="-msse2"
+SSE41_CFLAGS="-msse4.1"
+
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking to see if compiler understands $SSE_CFLAGS" >&5
+$as_echo_n "checking to see if compiler understands $SSE_CFLAGS... " >&6; }
+
+ save_CFLAGS="$CFLAGS"
+ CFLAGS="$CFLAGS $SSE_CFLAGS"
+
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+int
+main ()
+{
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ flag_ok=yes
+else
+ flag_ok=no
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+ CFLAGS="$save_CFLAGS"
+
+ if test "X$flag_ok" = Xyes ; then
+ HAVE_SSE=1
+ true
+ else
+ HAVE_SSE=0
+ true
+ fi
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $flag_ok" >&5
+$as_echo "$flag_ok" >&6; }
+
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking to see if compiler understands $SSE2_CFLAGS" >&5
+$as_echo_n "checking to see if compiler understands $SSE2_CFLAGS... " >&6; }
+
+ save_CFLAGS="$CFLAGS"
+ CFLAGS="$CFLAGS $SSE2_CFLAGS"
+
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+int
+main ()
+{
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ flag_ok=yes
+else
+ flag_ok=no
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+ CFLAGS="$save_CFLAGS"
+
+ if test "X$flag_ok" = Xyes ; then
+ HAVE_SSE2=1
+ true
+ else
+ HAVE_SSE2=0
+ true
+ fi
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $flag_ok" >&5
+$as_echo "$flag_ok" >&6; }
+
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking to see if compiler understands $SSE41_CFLAGS" >&5
+$as_echo_n "checking to see if compiler understands $SSE41_CFLAGS... " >&6; }
+
+ save_CFLAGS="$CFLAGS"
+ CFLAGS="$CFLAGS $SSE41_CFLAGS"
+
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+int
+main ()
+{
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ flag_ok=yes
+else
+ flag_ok=no
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+ CFLAGS="$save_CFLAGS"
+
+ if test "X$flag_ok" = Xyes ; then
+ HAVE_SSE41=1
+ true
+ else
+ HAVE_SSE41=0
+ true
+ fi
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $flag_ok" >&5
+$as_echo "$flag_ok" >&6; }
+
+
+ if test "x${HAVE_X86}" = "x1"; then
+ HAVE_X86_TRUE=
+ HAVE_X86_FALSE='#'
+else
+ HAVE_X86_TRUE='#'
+ HAVE_X86_FALSE=
+fi
+
+
+
+cat >>confdefs.h <<_ACEOF
+#define HAVE_SSE $HAVE_SSE
+_ACEOF
+
+
+cat >>confdefs.h <<_ACEOF
+#define HAVE_SSE2 $HAVE_SSE2
+_ACEOF
+
+
+cat >>confdefs.h <<_ACEOF
+#define HAVE_SSE41 $HAVE_SSE41
+_ACEOF
+
+
+
+
+
+
for ac_header in sys/socket.h
do :
ac_fn_c_check_header_compile "$LINENO" "sys/socket.h" "ac_cv_header_sys_socket_h" "$ac_includes_default
@@ -24885,7 +25061,7 @@
- ORC_REQ=0.4.23
+ ORC_REQ=0.4.24
# Check whether --enable-orc was given.
if test "${enable_orc+set}" = set; then :
@@ -32120,6 +32296,10 @@
as_fn_error $? "conditional \"ENABLE_PLUGIN_DOCS\" was never defined.
Usually this means the macro was only invoked conditionally." "$LINENO" 5
fi
+if test -z "${HAVE_X86_TRUE}" && test -z "${HAVE_X86_FALSE}"; then
+ as_fn_error $? "conditional \"HAVE_X86\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
if test -z "${HAVE_SYS_SOCKET_H_TRUE}" && test -z "${HAVE_SYS_SOCKET_H_FALSE}"; then
as_fn_error $? "conditional \"HAVE_SYS_SOCKET_H\" was never defined.
Usually this means the macro was only invoked conditionally." "$LINENO" 5
@@ -32733,7 +32913,7 @@
# report actual input values of CONFIG_FILES etc. instead of their
# values after options handling.
ac_log="
-This file was extended by GStreamer Base Plug-ins $as_me 1.9.2, which was
+This file was extended by GStreamer Base Plug-ins $as_me 1.9.90, which was
generated by GNU Autoconf 2.69. Invocation command line was
CONFIG_FILES = $CONFIG_FILES
@@ -32799,7 +32979,7 @@
cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`"
ac_cs_version="\\
-GStreamer Base Plug-ins config.status 1.9.2
+GStreamer Base Plug-ins config.status 1.9.90
configured by $0, generated by GNU Autoconf 2.69,
with options \\"\$ac_cs_config\\"
diff --git a/configure.ac b/configure.ac
index 7e70428..6e9dc52 100644
--- a/configure.ac
+++ b/configure.ac
@@ -5,7 +5,7 @@
dnl initialize autoconf
dnl releases only do -Wall, git and prerelease does -Werror too
dnl use a three digit version number for releases, and four for git/prerelease
-AC_INIT([GStreamer Base Plug-ins],[1.9.2],[http://bugzilla.gnome.org/enter_bug.cgi?product=GStreamer],[gst-plugins-base])
+AC_INIT([GStreamer Base Plug-ins],[1.9.90],[http://bugzilla.gnome.org/enter_bug.cgi?product=GStreamer],[gst-plugins-base])
AG_GST_INIT
@@ -56,10 +56,10 @@
dnl 1.10.9 (who knows) => 1009
dnl
dnl sets GST_LT_LDFLAGS
-AS_LIBTOOL(GST, 902, 0, 902)
+AS_LIBTOOL(GST, 990, 0, 990)
dnl *** required versions of GStreamer stuff ***
-GST_REQ=1.9.2
+GST_REQ=1.9.90
dnl *** autotools stuff ****
@@ -179,6 +179,30 @@
dnl these are used by the speex resampler code
AC_CHECK_HEADERS([xmmintrin.h emmintrin.h smmintrin.h])
+dnl also check which architecture we're on for building files with intrinsics
+dnl separately
+AC_CHECK_DECLS([__i386__], [HAVE_X86=1])
+AC_CHECK_DECLS([__x86_64__], [HAVE_X86=1])
+
+dnl check for -m* compiler flags too
+SSE_CFLAGS="-msse"
+SSE2_CFLAGS="-msse2"
+SSE41_CFLAGS="-msse4.1"
+
+AS_COMPILER_FLAG([$SSE_CFLAGS], [HAVE_SSE=1], [HAVE_SSE=0])
+AS_COMPILER_FLAG([$SSE2_CFLAGS], [HAVE_SSE2=1], [HAVE_SSE2=0])
+AS_COMPILER_FLAG([$SSE41_CFLAGS], [HAVE_SSE41=1], [HAVE_SSE41=0])
+
+AM_CONDITIONAL(HAVE_X86, [test "x${HAVE_X86}" = "x1"])
+
+AC_DEFINE_UNQUOTED(HAVE_SSE, [$HAVE_SSE], [SSE support is enabled])
+AC_DEFINE_UNQUOTED(HAVE_SSE2, [$HAVE_SSE2], [SSE2 support is enabled])
+AC_DEFINE_UNQUOTED(HAVE_SSE41, [$HAVE_SSE41], [SSE4.1 support is enabled])
+
+AC_SUBST(SSE_CFLAGS)
+AC_SUBST(SSE2_CFLAGS)
+AC_SUBST(SSE41_CFLAGS)
+
dnl used in gst/tcp
AC_CHECK_HEADERS([sys/socket.h],
[HAVE_SYS_SOCKET_H="yes"], [HAVE_SYS_SOCKET_H="no"], [AC_INCLUDES_DEFAULT])
@@ -254,7 +278,7 @@
GLIB_REQ=2.40.0
AG_GST_GLIB_CHECK([$GLIB_REQ])
-ORC_CHECK([0.4.23])
+ORC_CHECK([0.4.24])
dnl checks for gstreamer
dnl uninstalled is selected preferentially -- see pkg-config(1)
diff --git a/docs/Makefile.in b/docs/Makefile.in
index a748b04..94cd2a5 100644
--- a/docs/Makefile.in
+++ b/docs/Makefile.in
@@ -421,6 +421,9 @@
SED = @SED@
SET_MAKE = @SET_MAKE@
SHELL = @SHELL@
+SSE2_CFLAGS = @SSE2_CFLAGS@
+SSE41_CFLAGS = @SSE41_CFLAGS@
+SSE_CFLAGS = @SSE_CFLAGS@
STRIP = @STRIP@
THEORA_CFLAGS = @THEORA_CFLAGS@
THEORA_LIBS = @THEORA_LIBS@
diff --git a/docs/design/Makefile.in b/docs/design/Makefile.in
index 59f08dc..6d9c958 100644
--- a/docs/design/Makefile.in
+++ b/docs/design/Makefile.in
@@ -422,6 +422,9 @@
SED = @SED@
SET_MAKE = @SET_MAKE@
SHELL = @SHELL@
+SSE2_CFLAGS = @SSE2_CFLAGS@
+SSE41_CFLAGS = @SSE41_CFLAGS@
+SSE_CFLAGS = @SSE_CFLAGS@
STRIP = @STRIP@
THEORA_CFLAGS = @THEORA_CFLAGS@
THEORA_LIBS = @THEORA_LIBS@
diff --git a/docs/libs/Makefile.in b/docs/libs/Makefile.in
index 70aacc9..b058347 100644
--- a/docs/libs/Makefile.in
+++ b/docs/libs/Makefile.in
@@ -383,6 +383,9 @@
SED = @SED@
SET_MAKE = @SET_MAKE@
SHELL = @SHELL@
+SSE2_CFLAGS = @SSE2_CFLAGS@
+SSE41_CFLAGS = @SSE41_CFLAGS@
+SSE_CFLAGS = @SSE_CFLAGS@
STRIP = @STRIP@
THEORA_CFLAGS = @THEORA_CFLAGS@
THEORA_LIBS = @THEORA_LIBS@
diff --git a/docs/libs/html/gst-plugins-base-libs-gstpluginsbaseversion.html b/docs/libs/html/gst-plugins-base-libs-gstpluginsbaseversion.html
index 574f6d4..8031929 100644
--- a/docs/libs/html/gst-plugins-base-libs-gstpluginsbaseversion.html
+++ b/docs/libs/html/gst-plugins-base-libs-gstpluginsbaseversion.html
@@ -184,7 +184,7 @@
<hr>
<div class="refsect2">
<a name="GST-PLUGINS-BASE-VERSION-MICRO:CAPS"></a><h3>GST_PLUGINS_BASE_VERSION_MICRO</h3>
-<pre class="programlisting">#define GST_PLUGINS_BASE_VERSION_MICRO (2)
+<pre class="programlisting">#define GST_PLUGINS_BASE_VERSION_MICRO (90)
</pre>
<p>The micro version of GStreamer's gst-plugins-base libraries at compile time.</p>
</div>
diff --git a/docs/libs/html/gst-plugins-base-libs-gstvideo.html b/docs/libs/html/gst-plugins-base-libs-gstvideo.html
index b9af0e7..5baab99 100644
--- a/docs/libs/html/gst-plugins-base-libs-gstvideo.html
+++ b/docs/libs/html/gst-plugins-base-libs-gstvideo.html
@@ -3708,11 +3708,13 @@
14
15
16
-17</pre></td>
+17
+18
+19</pre></td>
<td class="listing_code"><pre class="programlisting">GstVideoFrame vframe<span class="gtkdoc opt">;</span>
<span class="gtkdoc opt">...</span>
<span class="gtkdoc slc">// set RGB pixels to black one at a time</span>
-<span class="keyword">if</span> <span class="gtkdoc opt">(</span><span class="function"><a href="gst-plugins-base-libs-gstvideo.html#gst-video-frame-map">gst_video_frame_map</a></span> <span class="gtkdoc opt">(&</span>vframe<span class="gtkdoc opt">,</span> video_info<span class="gtkdoc opt">,</span> video_buffer<span class="gtkdoc opt">)) {</span>
+<span class="keyword">if</span> <span class="gtkdoc opt">(</span><span class="function"><a href="gst-plugins-base-libs-gstvideo.html#gst-video-frame-map">gst_video_frame_map</a></span> <span class="gtkdoc opt">(&</span>vframe<span class="gtkdoc opt">,</span> video_info<span class="gtkdoc opt">,</span> video_buffer<span class="gtkdoc opt">,</span> GST_MAP_WRITE<span class="gtkdoc opt">)) {</span>
guint8 <span class="gtkdoc opt">*</span>pixels <span class="gtkdoc opt">=</span> <span class="function"><a href="gst-plugins-base-libs-gstvideo.html#GST-VIDEO-FRAME-PLANE-DATA:CAPS">GST_VIDEO_FRAME_PLANE_DATA</a></span> <span class="gtkdoc opt">(</span>vframe<span class="gtkdoc opt">,</span> <span class="number">0</span><span class="gtkdoc opt">);</span>
guint stride <span class="gtkdoc opt">=</span> <span class="function"><a href="gst-plugins-base-libs-gstvideo.html#GST-VIDEO-FRAME-PLANE-STRIDE:CAPS">GST_VIDEO_FRAME_PLANE_STRIDE</a></span> <span class="gtkdoc opt">(</span>vframe<span class="gtkdoc opt">,</span> <span class="number">0</span><span class="gtkdoc opt">);</span>
guint pixel_stride <span class="gtkdoc opt">=</span> <span class="function"><a href="gst-plugins-base-libs-gstvideo.html#GST-VIDEO-FRAME-COMP-PSTRIDE:CAPS">GST_VIDEO_FRAME_COMP_PSTRIDE</a></span> <span class="gtkdoc opt">(</span>vframe<span class="gtkdoc opt">,</span> <span class="number">0</span><span class="gtkdoc opt">);</span>
@@ -3724,6 +3726,8 @@
<span class="function">memset</span> <span class="gtkdoc opt">(</span>pixel<span class="gtkdoc opt">,</span> <span class="number">0</span><span class="gtkdoc opt">,</span> pixel_stride<span class="gtkdoc opt">);</span>
<span class="gtkdoc opt">}</span>
<span class="gtkdoc opt">}</span>
+
+ <span class="function"><a href="gst-plugins-base-libs-gstvideo.html#gst-video-frame-unmap">gst_video_frame_unmap</a></span> <span class="gtkdoc opt">(&</span>vframe<span class="gtkdoc opt">);</span>
<span class="gtkdoc opt">}</span>
<span class="gtkdoc opt">...</span></pre></td>
</tr>
@@ -7269,6 +7273,8 @@
<a name="GstVideoBufferFlags"></a><h3>enum GstVideoBufferFlags</h3>
<p>Additional video buffer flags. These flags can potentially be used on any
buffers carrying video data - even encoded data.</p>
+<p>Note that these are only valid for <a href="/usr/share/gtk-doc/html/gstreamer-1.0GstCaps.html#GstCaps-struct"><span class="type">GstCaps</span></a> of type: video/...
+They can conflict with other extended buffer flags.</p>
<div class="refsect3">
<a name="GstVideoBufferFlags.members"></a><h4>Members</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
diff --git a/docs/libs/html/gst-plugins-base-libs-gstvideooverlaycomposition.html b/docs/libs/html/gst-plugins-base-libs-gstvideooverlaycomposition.html
index b7d0e8f..be3fd72 100644
--- a/docs/libs/html/gst-plugins-base-libs-gstvideooverlaycomposition.html
+++ b/docs/libs/html/gst-plugins-base-libs-gstvideooverlaycomposition.html
@@ -651,6 +651,9 @@
. The data in <em class="parameter"><code>video_buf</code></em>
must be writable and
mapped appropriately.</p>
+<p>Since <em class="parameter"><code>video_buf</code></em>
+ data is read and will be modified, it ought be
+mapped with flag GST_MAP_READWRITE.</p>
<div class="refsect3">
<a name="gst-video-overlay-composition-blend.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
@@ -667,7 +670,8 @@
</tr>
<tr>
<td class="parameter_name"><p>video_buf</p></td>
-<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-gstvideo.html#GstVideoFrame" title="struct GstVideoFrame"><span class="type">GstVideoFrame</span></a> containing raw video data in a supported format</p></td>
+<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-gstvideo.html#GstVideoFrame" title="struct GstVideoFrame"><span class="type">GstVideoFrame</span></a> containing raw video data in a
+supported format. It should be mapped using GST_MAP_READWRITE</p></td>
<td class="parameter_annotations"> </td>
</tr>
</tbody>
diff --git a/docs/libs/html/index.html b/docs/libs/html/index.html
index 63de253..188af43 100644
--- a/docs/libs/html/index.html
+++ b/docs/libs/html/index.html
@@ -15,7 +15,7 @@
<div>
<div><table class="navigation" id="top" width="100%" cellpadding="2" cellspacing="0"><tr><th valign="middle"><p class="title">GStreamer Base Plugins 1.0 Library Reference Manual</p></th></tr></table></div>
<div><p class="releaseinfo">
- for GStreamer Base Library 1.0 (1.9.2)
+ for GStreamer Base Library 1.0 (1.9.90)
<a class="ulink" href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base-libs/html/" target="_top">http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base-libs/html/</a>.
</p></div>
</div>
diff --git a/docs/plugins/Makefile.in b/docs/plugins/Makefile.in
index bef8068..50768e9 100644
--- a/docs/plugins/Makefile.in
+++ b/docs/plugins/Makefile.in
@@ -381,6 +381,9 @@
SED = @SED@
SET_MAKE = @SET_MAKE@
SHELL = @SHELL@
+SSE2_CFLAGS = @SSE2_CFLAGS@
+SSE41_CFLAGS = @SSE41_CFLAGS@
+SSE_CFLAGS = @SSE_CFLAGS@
STRIP = @STRIP@
THEORA_CFLAGS = @THEORA_CFLAGS@
THEORA_LIBS = @THEORA_LIBS@
diff --git a/docs/plugins/html/gst-plugins-base-plugins-plugin-adder.html b/docs/plugins/html/gst-plugins-base-plugins-plugin-adder.html
index 3af4f5e..926fbbc 100644
--- a/docs/plugins/html/gst-plugins-base-plugins-plugin-adder.html
+++ b/docs/plugins/html/gst-plugins-base-plugins-plugin-adder.html
@@ -42,7 +42,7 @@
</tr>
<tr>
<td><p><span class="term">version</span></p></td>
-<td>1.9.2</td>
+<td>1.9.90</td>
</tr>
<tr>
<td><p><span class="term">run-time license</span></p></td>
diff --git a/docs/plugins/html/gst-plugins-base-plugins-plugin-alsa.html b/docs/plugins/html/gst-plugins-base-plugins-plugin-alsa.html
index 7a4da23..9e50cc1 100644
--- a/docs/plugins/html/gst-plugins-base-plugins-plugin-alsa.html
+++ b/docs/plugins/html/gst-plugins-base-plugins-plugin-alsa.html
@@ -42,7 +42,7 @@
</tr>
<tr>
<td><p><span class="term">version</span></p></td>
-<td>1.9.2</td>
+<td>1.9.90</td>
</tr>
<tr>
<td><p><span class="term">run-time license</span></p></td>
diff --git a/docs/plugins/html/gst-plugins-base-plugins-plugin-app.html b/docs/plugins/html/gst-plugins-base-plugins-plugin-app.html
index 9d0b352..7642de6 100644
--- a/docs/plugins/html/gst-plugins-base-plugins-plugin-app.html
+++ b/docs/plugins/html/gst-plugins-base-plugins-plugin-app.html
@@ -42,7 +42,7 @@
</tr>
<tr>
<td><p><span class="term">version</span></p></td>
-<td>1.9.2</td>
+<td>1.9.90</td>
</tr>
<tr>
<td><p><span class="term">run-time license</span></p></td>
diff --git a/docs/plugins/html/gst-plugins-base-plugins-plugin-audioconvert.html b/docs/plugins/html/gst-plugins-base-plugins-plugin-audioconvert.html
index a867458..3a13941 100644
--- a/docs/plugins/html/gst-plugins-base-plugins-plugin-audioconvert.html
+++ b/docs/plugins/html/gst-plugins-base-plugins-plugin-audioconvert.html
@@ -42,7 +42,7 @@
</tr>
<tr>
<td><p><span class="term">version</span></p></td>
-<td>1.9.2</td>
+<td>1.9.90</td>
</tr>
<tr>
<td><p><span class="term">run-time license</span></p></td>
diff --git a/docs/plugins/html/gst-plugins-base-plugins-plugin-audiorate.html b/docs/plugins/html/gst-plugins-base-plugins-plugin-audiorate.html
index 22b3733..406086d 100644
--- a/docs/plugins/html/gst-plugins-base-plugins-plugin-audiorate.html
+++ b/docs/plugins/html/gst-plugins-base-plugins-plugin-audiorate.html
@@ -42,7 +42,7 @@
</tr>
<tr>
<td><p><span class="term">version</span></p></td>
-<td>1.9.2</td>
+<td>1.9.90</td>
</tr>
<tr>
<td><p><span class="term">run-time license</span></p></td>
diff --git a/docs/plugins/html/gst-plugins-base-plugins-plugin-audioresample.html b/docs/plugins/html/gst-plugins-base-plugins-plugin-audioresample.html
index 7ca97a1..af25b2f 100644
--- a/docs/plugins/html/gst-plugins-base-plugins-plugin-audioresample.html
+++ b/docs/plugins/html/gst-plugins-base-plugins-plugin-audioresample.html
@@ -42,7 +42,7 @@
</tr>
<tr>
<td><p><span class="term">version</span></p></td>
-<td>1.9.2</td>
+<td>1.9.90</td>
</tr>
<tr>
<td><p><span class="term">run-time license</span></p></td>
diff --git a/docs/plugins/html/gst-plugins-base-plugins-plugin-audiotestsrc.html b/docs/plugins/html/gst-plugins-base-plugins-plugin-audiotestsrc.html
index 260ae1e..96a7825 100644
--- a/docs/plugins/html/gst-plugins-base-plugins-plugin-audiotestsrc.html
+++ b/docs/plugins/html/gst-plugins-base-plugins-plugin-audiotestsrc.html
@@ -42,7 +42,7 @@
</tr>
<tr>
<td><p><span class="term">version</span></p></td>
-<td>1.9.2</td>
+<td>1.9.90</td>
</tr>
<tr>
<td><p><span class="term">run-time license</span></p></td>
diff --git a/docs/plugins/html/gst-plugins-base-plugins-plugin-cdparanoia.html b/docs/plugins/html/gst-plugins-base-plugins-plugin-cdparanoia.html
index d333753..c908992 100644
--- a/docs/plugins/html/gst-plugins-base-plugins-plugin-cdparanoia.html
+++ b/docs/plugins/html/gst-plugins-base-plugins-plugin-cdparanoia.html
@@ -42,7 +42,7 @@
</tr>
<tr>
<td><p><span class="term">version</span></p></td>
-<td>1.9.2</td>
+<td>1.9.90</td>
</tr>
<tr>
<td><p><span class="term">run-time license</span></p></td>
diff --git a/docs/plugins/html/gst-plugins-base-plugins-plugin-encoding.html b/docs/plugins/html/gst-plugins-base-plugins-plugin-encoding.html
index 68b4bc0..1039767 100644
--- a/docs/plugins/html/gst-plugins-base-plugins-plugin-encoding.html
+++ b/docs/plugins/html/gst-plugins-base-plugins-plugin-encoding.html
@@ -42,7 +42,7 @@
</tr>
<tr>
<td><p><span class="term">version</span></p></td>
-<td>1.9.2</td>
+<td>1.9.90</td>
</tr>
<tr>
<td><p><span class="term">run-time license</span></p></td>
diff --git a/docs/plugins/html/gst-plugins-base-plugins-plugin-gio.html b/docs/plugins/html/gst-plugins-base-plugins-plugin-gio.html
index 67cabe0..1ccbc6c 100644
--- a/docs/plugins/html/gst-plugins-base-plugins-plugin-gio.html
+++ b/docs/plugins/html/gst-plugins-base-plugins-plugin-gio.html
@@ -42,7 +42,7 @@
</tr>
<tr>
<td><p><span class="term">version</span></p></td>
-<td>1.9.2</td>
+<td>1.9.90</td>
</tr>
<tr>
<td><p><span class="term">run-time license</span></p></td>
diff --git a/docs/plugins/html/gst-plugins-base-plugins-plugin-libvisual.html b/docs/plugins/html/gst-plugins-base-plugins-plugin-libvisual.html
index 9abe5b6..59a142b 100644
--- a/docs/plugins/html/gst-plugins-base-plugins-plugin-libvisual.html
+++ b/docs/plugins/html/gst-plugins-base-plugins-plugin-libvisual.html
@@ -42,7 +42,7 @@
</tr>
<tr>
<td><p><span class="term">version</span></p></td>
-<td>1.9.2</td>
+<td>1.9.90</td>
</tr>
<tr>
<td><p><span class="term">run-time license</span></p></td>
diff --git a/docs/plugins/html/gst-plugins-base-plugins-plugin-ogg.html b/docs/plugins/html/gst-plugins-base-plugins-plugin-ogg.html
index 7b1e614..b3960b0 100644
--- a/docs/plugins/html/gst-plugins-base-plugins-plugin-ogg.html
+++ b/docs/plugins/html/gst-plugins-base-plugins-plugin-ogg.html
@@ -42,7 +42,7 @@
</tr>
<tr>
<td><p><span class="term">version</span></p></td>
-<td>1.9.2</td>
+<td>1.9.90</td>
</tr>
<tr>
<td><p><span class="term">run-time license</span></p></td>
diff --git a/docs/plugins/html/gst-plugins-base-plugins-plugin-opus.html b/docs/plugins/html/gst-plugins-base-plugins-plugin-opus.html
index a7f3a21..ae6272e 100644
--- a/docs/plugins/html/gst-plugins-base-plugins-plugin-opus.html
+++ b/docs/plugins/html/gst-plugins-base-plugins-plugin-opus.html
@@ -42,7 +42,7 @@
</tr>
<tr>
<td><p><span class="term">version</span></p></td>
-<td>1.9.2</td>
+<td>1.9.90</td>
</tr>
<tr>
<td><p><span class="term">run-time license</span></p></td>
diff --git a/docs/plugins/html/gst-plugins-base-plugins-plugin-pango.html b/docs/plugins/html/gst-plugins-base-plugins-plugin-pango.html
index 24ed8cb..da3e404 100644
--- a/docs/plugins/html/gst-plugins-base-plugins-plugin-pango.html
+++ b/docs/plugins/html/gst-plugins-base-plugins-plugin-pango.html
@@ -42,7 +42,7 @@
</tr>
<tr>
<td><p><span class="term">version</span></p></td>
-<td>1.9.2</td>
+<td>1.9.90</td>
</tr>
<tr>
<td><p><span class="term">run-time license</span></p></td>
diff --git a/docs/plugins/html/gst-plugins-base-plugins-plugin-playback.html b/docs/plugins/html/gst-plugins-base-plugins-plugin-playback.html
index c6d4cd2..34619ed 100644
--- a/docs/plugins/html/gst-plugins-base-plugins-plugin-playback.html
+++ b/docs/plugins/html/gst-plugins-base-plugins-plugin-playback.html
@@ -42,7 +42,7 @@
</tr>
<tr>
<td><p><span class="term">version</span></p></td>
-<td>1.9.2</td>
+<td>1.9.90</td>
</tr>
<tr>
<td><p><span class="term">run-time license</span></p></td>
diff --git a/docs/plugins/html/gst-plugins-base-plugins-plugin-subparse.html b/docs/plugins/html/gst-plugins-base-plugins-plugin-subparse.html
index 46d9c24..455b3ff 100644
--- a/docs/plugins/html/gst-plugins-base-plugins-plugin-subparse.html
+++ b/docs/plugins/html/gst-plugins-base-plugins-plugin-subparse.html
@@ -42,7 +42,7 @@
</tr>
<tr>
<td><p><span class="term">version</span></p></td>
-<td>1.9.2</td>
+<td>1.9.90</td>
</tr>
<tr>
<td><p><span class="term">run-time license</span></p></td>
diff --git a/docs/plugins/html/gst-plugins-base-plugins-plugin-tcp.html b/docs/plugins/html/gst-plugins-base-plugins-plugin-tcp.html
index effcd94..6d90926 100644
--- a/docs/plugins/html/gst-plugins-base-plugins-plugin-tcp.html
+++ b/docs/plugins/html/gst-plugins-base-plugins-plugin-tcp.html
@@ -42,7 +42,7 @@
</tr>
<tr>
<td><p><span class="term">version</span></p></td>
-<td>1.9.2</td>
+<td>1.9.90</td>
</tr>
<tr>
<td><p><span class="term">run-time license</span></p></td>
diff --git a/docs/plugins/html/gst-plugins-base-plugins-plugin-theora.html b/docs/plugins/html/gst-plugins-base-plugins-plugin-theora.html
index a4516ef..bbc44de 100644
--- a/docs/plugins/html/gst-plugins-base-plugins-plugin-theora.html
+++ b/docs/plugins/html/gst-plugins-base-plugins-plugin-theora.html
@@ -42,7 +42,7 @@
</tr>
<tr>
<td><p><span class="term">version</span></p></td>
-<td>1.9.2</td>
+<td>1.9.90</td>
</tr>
<tr>
<td><p><span class="term">run-time license</span></p></td>
diff --git a/docs/plugins/html/gst-plugins-base-plugins-plugin-typefindfunctions.html b/docs/plugins/html/gst-plugins-base-plugins-plugin-typefindfunctions.html
index 6ef0998..719115f 100644
--- a/docs/plugins/html/gst-plugins-base-plugins-plugin-typefindfunctions.html
+++ b/docs/plugins/html/gst-plugins-base-plugins-plugin-typefindfunctions.html
@@ -42,7 +42,7 @@
</tr>
<tr>
<td><p><span class="term">version</span></p></td>
-<td>1.9.2</td>
+<td>1.9.90</td>
</tr>
<tr>
<td><p><span class="term">run-time license</span></p></td>
diff --git a/docs/plugins/html/gst-plugins-base-plugins-plugin-videoconvert.html b/docs/plugins/html/gst-plugins-base-plugins-plugin-videoconvert.html
index 18b7796..0270be7 100644
--- a/docs/plugins/html/gst-plugins-base-plugins-plugin-videoconvert.html
+++ b/docs/plugins/html/gst-plugins-base-plugins-plugin-videoconvert.html
@@ -42,7 +42,7 @@
</tr>
<tr>
<td><p><span class="term">version</span></p></td>
-<td>1.9.2</td>
+<td>1.9.90</td>
</tr>
<tr>
<td><p><span class="term">run-time license</span></p></td>
diff --git a/docs/plugins/html/gst-plugins-base-plugins-plugin-videorate.html b/docs/plugins/html/gst-plugins-base-plugins-plugin-videorate.html
index 4e262f5..5630349 100644
--- a/docs/plugins/html/gst-plugins-base-plugins-plugin-videorate.html
+++ b/docs/plugins/html/gst-plugins-base-plugins-plugin-videorate.html
@@ -42,7 +42,7 @@
</tr>
<tr>
<td><p><span class="term">version</span></p></td>
-<td>1.9.2</td>
+<td>1.9.90</td>
</tr>
<tr>
<td><p><span class="term">run-time license</span></p></td>
diff --git a/docs/plugins/html/gst-plugins-base-plugins-plugin-videoscale.html b/docs/plugins/html/gst-plugins-base-plugins-plugin-videoscale.html
index d52a015..6f28975 100644
--- a/docs/plugins/html/gst-plugins-base-plugins-plugin-videoscale.html
+++ b/docs/plugins/html/gst-plugins-base-plugins-plugin-videoscale.html
@@ -42,7 +42,7 @@
</tr>
<tr>
<td><p><span class="term">version</span></p></td>
-<td>1.9.2</td>
+<td>1.9.90</td>
</tr>
<tr>
<td><p><span class="term">run-time license</span></p></td>
diff --git a/docs/plugins/html/gst-plugins-base-plugins-plugin-videotestsrc.html b/docs/plugins/html/gst-plugins-base-plugins-plugin-videotestsrc.html
index f321cdd..5dd8861 100644
--- a/docs/plugins/html/gst-plugins-base-plugins-plugin-videotestsrc.html
+++ b/docs/plugins/html/gst-plugins-base-plugins-plugin-videotestsrc.html
@@ -42,7 +42,7 @@
</tr>
<tr>
<td><p><span class="term">version</span></p></td>
-<td>1.9.2</td>
+<td>1.9.90</td>
</tr>
<tr>
<td><p><span class="term">run-time license</span></p></td>
diff --git a/docs/plugins/html/gst-plugins-base-plugins-plugin-volume.html b/docs/plugins/html/gst-plugins-base-plugins-plugin-volume.html
index d2a134c..fd75d4f 100644
--- a/docs/plugins/html/gst-plugins-base-plugins-plugin-volume.html
+++ b/docs/plugins/html/gst-plugins-base-plugins-plugin-volume.html
@@ -42,7 +42,7 @@
</tr>
<tr>
<td><p><span class="term">version</span></p></td>
-<td>1.9.2</td>
+<td>1.9.90</td>
</tr>
<tr>
<td><p><span class="term">run-time license</span></p></td>
diff --git a/docs/plugins/html/gst-plugins-base-plugins-plugin-vorbis.html b/docs/plugins/html/gst-plugins-base-plugins-plugin-vorbis.html
index 87bbafe..036bb85 100644
--- a/docs/plugins/html/gst-plugins-base-plugins-plugin-vorbis.html
+++ b/docs/plugins/html/gst-plugins-base-plugins-plugin-vorbis.html
@@ -42,7 +42,7 @@
</tr>
<tr>
<td><p><span class="term">version</span></p></td>
-<td>1.9.2</td>
+<td>1.9.90</td>
</tr>
<tr>
<td><p><span class="term">run-time license</span></p></td>
diff --git a/docs/plugins/html/gst-plugins-base-plugins-plugin-ximagesink.html b/docs/plugins/html/gst-plugins-base-plugins-plugin-ximagesink.html
index 5e731c1..0a00988 100644
--- a/docs/plugins/html/gst-plugins-base-plugins-plugin-ximagesink.html
+++ b/docs/plugins/html/gst-plugins-base-plugins-plugin-ximagesink.html
@@ -42,7 +42,7 @@
</tr>
<tr>
<td><p><span class="term">version</span></p></td>
-<td>1.9.2</td>
+<td>1.9.90</td>
</tr>
<tr>
<td><p><span class="term">run-time license</span></p></td>
diff --git a/docs/plugins/html/gst-plugins-base-plugins-plugin-xvimagesink.html b/docs/plugins/html/gst-plugins-base-plugins-plugin-xvimagesink.html
index 9e05513..dd786fa 100644
--- a/docs/plugins/html/gst-plugins-base-plugins-plugin-xvimagesink.html
+++ b/docs/plugins/html/gst-plugins-base-plugins-plugin-xvimagesink.html
@@ -41,7 +41,7 @@
</tr>
<tr>
<td><p><span class="term">version</span></p></td>
-<td>1.9.2</td>
+<td>1.9.90</td>
</tr>
<tr>
<td><p><span class="term">run-time license</span></p></td>
diff --git a/docs/plugins/html/index.html b/docs/plugins/html/index.html
index 79b3401..e794f07 100644
--- a/docs/plugins/html/index.html
+++ b/docs/plugins/html/index.html
@@ -15,7 +15,7 @@
<div>
<div><table class="navigation" id="top" width="100%" cellpadding="2" cellspacing="0"><tr><th valign="middle"><p class="title">GStreamer Base Plugins 1.0 Plugins Reference Manual</p></th></tr></table></div>
<div><p class="releaseinfo">
- for GStreamer Base Plugins 1.0 (1.9.2)
+ for GStreamer Base Plugins 1.0 (1.9.90)
The latest version of this documentation can be found on-line at
<a class="ulink" href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base/html/" target="_top">http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base/html/</a>.
</p></div>
diff --git a/docs/plugins/inspect/plugin-adder.xml b/docs/plugins/inspect/plugin-adder.xml
index d8012c6..4b33951 100644
--- a/docs/plugins/inspect/plugin-adder.xml
+++ b/docs/plugins/inspect/plugin-adder.xml
@@ -3,7 +3,7 @@
<description>Adds multiple streams</description>
<filename>../../gst/adder/.libs/libgstadder.so</filename>
<basename>libgstadder.so</basename>
- <version>1.9.2</version>
+ <version>1.9.90</version>
<license>LGPL</license>
<source>gst-plugins-base</source>
<package>GStreamer Base Plug-ins source release</package>
diff --git a/docs/plugins/inspect/plugin-alsa.xml b/docs/plugins/inspect/plugin-alsa.xml
index cf61e62..93639ed 100644
--- a/docs/plugins/inspect/plugin-alsa.xml
+++ b/docs/plugins/inspect/plugin-alsa.xml
@@ -3,7 +3,7 @@
<description>ALSA plugin library</description>
<filename>../../ext/alsa/.libs/libgstalsa.so</filename>
<basename>libgstalsa.so</basename>
- <version>1.9.2</version>
+ <version>1.9.90</version>
<license>LGPL</license>
<source>gst-plugins-base</source>
<package>GStreamer Base Plug-ins source release</package>
diff --git a/docs/plugins/inspect/plugin-app.xml b/docs/plugins/inspect/plugin-app.xml
index ca8109c..5f00d19 100644
--- a/docs/plugins/inspect/plugin-app.xml
+++ b/docs/plugins/inspect/plugin-app.xml
@@ -3,7 +3,7 @@
<description>Elements used to communicate with applications</description>
<filename>../../gst/app/.libs/libgstapp.so</filename>
<basename>libgstapp.so</basename>
- <version>1.9.2</version>
+ <version>1.9.90</version>
<license>LGPL</license>
<source>gst-plugins-base</source>
<package>GStreamer Base Plug-ins source release</package>
diff --git a/docs/plugins/inspect/plugin-audioconvert.xml b/docs/plugins/inspect/plugin-audioconvert.xml
index 7f01b2d..d4482f7 100644
--- a/docs/plugins/inspect/plugin-audioconvert.xml
+++ b/docs/plugins/inspect/plugin-audioconvert.xml
@@ -3,7 +3,7 @@
<description>Convert audio to different formats</description>
<filename>../../gst/audioconvert/.libs/libgstaudioconvert.so</filename>
<basename>libgstaudioconvert.so</basename>
- <version>1.9.2</version>
+ <version>1.9.90</version>
<license>LGPL</license>
<source>gst-plugins-base</source>
<package>GStreamer Base Plug-ins source release</package>
diff --git a/docs/plugins/inspect/plugin-audiorate.xml b/docs/plugins/inspect/plugin-audiorate.xml
index 34b7636..1ed6e56 100644
--- a/docs/plugins/inspect/plugin-audiorate.xml
+++ b/docs/plugins/inspect/plugin-audiorate.xml
@@ -3,7 +3,7 @@
<description>Adjusts audio frames</description>
<filename>../../gst/audiorate/.libs/libgstaudiorate.so</filename>
<basename>libgstaudiorate.so</basename>
- <version>1.9.2</version>
+ <version>1.9.90</version>
<license>LGPL</license>
<source>gst-plugins-base</source>
<package>GStreamer Base Plug-ins source release</package>
diff --git a/docs/plugins/inspect/plugin-audioresample.xml b/docs/plugins/inspect/plugin-audioresample.xml
index 8ba114d..fe9634e 100644
--- a/docs/plugins/inspect/plugin-audioresample.xml
+++ b/docs/plugins/inspect/plugin-audioresample.xml
@@ -3,7 +3,7 @@
<description>Resamples audio</description>
<filename>../../gst/audioresample/.libs/libgstaudioresample.so</filename>
<basename>libgstaudioresample.so</basename>
- <version>1.9.2</version>
+ <version>1.9.90</version>
<license>LGPL</license>
<source>gst-plugins-base</source>
<package>GStreamer Base Plug-ins source release</package>
diff --git a/docs/plugins/inspect/plugin-audiotestsrc.xml b/docs/plugins/inspect/plugin-audiotestsrc.xml
index d42239c..ac1f95e 100644
--- a/docs/plugins/inspect/plugin-audiotestsrc.xml
+++ b/docs/plugins/inspect/plugin-audiotestsrc.xml
@@ -3,7 +3,7 @@
<description>Creates audio test signals of given frequency and volume</description>
<filename>../../gst/audiotestsrc/.libs/libgstaudiotestsrc.so</filename>
<basename>libgstaudiotestsrc.so</basename>
- <version>1.9.2</version>
+ <version>1.9.90</version>
<license>LGPL</license>
<source>gst-plugins-base</source>
<package>GStreamer Base Plug-ins source release</package>
diff --git a/docs/plugins/inspect/plugin-cdparanoia.xml b/docs/plugins/inspect/plugin-cdparanoia.xml
index c498c18..874ebc8 100644
--- a/docs/plugins/inspect/plugin-cdparanoia.xml
+++ b/docs/plugins/inspect/plugin-cdparanoia.xml
@@ -3,7 +3,7 @@
<description>Read audio from CD in paranoid mode</description>
<filename>../../ext/cdparanoia/.libs/libgstcdparanoia.so</filename>
<basename>libgstcdparanoia.so</basename>
- <version>1.9.2</version>
+ <version>1.9.90</version>
<license>LGPL</license>
<source>gst-plugins-base</source>
<package>GStreamer Base Plug-ins source release</package>
diff --git a/docs/plugins/inspect/plugin-encoding.xml b/docs/plugins/inspect/plugin-encoding.xml
index c1bcfec..30a693e 100644
--- a/docs/plugins/inspect/plugin-encoding.xml
+++ b/docs/plugins/inspect/plugin-encoding.xml
@@ -3,7 +3,7 @@
<description>various encoding-related elements</description>
<filename>../../gst/encoding/.libs/libgstencodebin.so</filename>
<basename>libgstencodebin.so</basename>
- <version>1.9.2</version>
+ <version>1.9.90</version>
<license>LGPL</license>
<source>gst-plugins-base</source>
<package>GStreamer Base Plug-ins source release</package>
diff --git a/docs/plugins/inspect/plugin-gio.xml b/docs/plugins/inspect/plugin-gio.xml
index 50c7fee..bf7049b 100644
--- a/docs/plugins/inspect/plugin-gio.xml
+++ b/docs/plugins/inspect/plugin-gio.xml
@@ -3,7 +3,7 @@
<description>GIO elements</description>
<filename>../../gst/gio/.libs/libgstgio.so</filename>
<basename>libgstgio.so</basename>
- <version>1.9.2</version>
+ <version>1.9.90</version>
<license>LGPL</license>
<source>gst-plugins-base</source>
<package>GStreamer Base Plug-ins source release</package>
diff --git a/docs/plugins/inspect/plugin-libvisual.xml b/docs/plugins/inspect/plugin-libvisual.xml
index e4b68ab..d16008a 100644
--- a/docs/plugins/inspect/plugin-libvisual.xml
+++ b/docs/plugins/inspect/plugin-libvisual.xml
@@ -3,7 +3,7 @@
<description>libvisual visualization plugins</description>
<filename>../../ext/libvisual/.libs/libgstlibvisual.so</filename>
<basename>libgstlibvisual.so</basename>
- <version>1.9.2</version>
+ <version>1.9.90</version>
<license>LGPL</license>
<source>gst-plugins-base</source>
<package>GStreamer Base Plug-ins source release</package>
diff --git a/docs/plugins/inspect/plugin-ogg.xml b/docs/plugins/inspect/plugin-ogg.xml
index cae7aeb..e7eb52b 100644
--- a/docs/plugins/inspect/plugin-ogg.xml
+++ b/docs/plugins/inspect/plugin-ogg.xml
@@ -3,7 +3,7 @@
<description>ogg stream manipulation (info about ogg: http://xiph.org)</description>
<filename>../../ext/ogg/.libs/libgstogg.so</filename>
<basename>libgstogg.so</basename>
- <version>1.9.2</version>
+ <version>1.9.90</version>
<license>LGPL</license>
<source>gst-plugins-base</source>
<package>GStreamer Base Plug-ins source release</package>
diff --git a/docs/plugins/inspect/plugin-opus.xml b/docs/plugins/inspect/plugin-opus.xml
index 04d4e4c..2ede8a1 100644
--- a/docs/plugins/inspect/plugin-opus.xml
+++ b/docs/plugins/inspect/plugin-opus.xml
@@ -3,7 +3,7 @@
<description>OPUS plugin library</description>
<filename>../../ext/opus/.libs/libgstopus.so</filename>
<basename>libgstopus.so</basename>
- <version>1.9.2</version>
+ <version>1.9.90</version>
<license>LGPL</license>
<source>gst-plugins-base</source>
<package>GStreamer Base Plug-ins source release</package>
diff --git a/docs/plugins/inspect/plugin-pango.xml b/docs/plugins/inspect/plugin-pango.xml
index 355dc4e..5179d85 100644
--- a/docs/plugins/inspect/plugin-pango.xml
+++ b/docs/plugins/inspect/plugin-pango.xml
@@ -3,7 +3,7 @@
<description>Pango-based text rendering and overlay</description>
<filename>../../ext/pango/.libs/libgstpango.so</filename>
<basename>libgstpango.so</basename>
- <version>1.9.2</version>
+ <version>1.9.90</version>
<license>LGPL</license>
<source>gst-plugins-base</source>
<package>GStreamer Base Plug-ins source release</package>
diff --git a/docs/plugins/inspect/plugin-playback.xml b/docs/plugins/inspect/plugin-playback.xml
index a1f8627..65ad797 100644
--- a/docs/plugins/inspect/plugin-playback.xml
+++ b/docs/plugins/inspect/plugin-playback.xml
@@ -3,7 +3,7 @@
<description>various playback elements</description>
<filename>../../gst/playback/.libs/libgstplayback.so</filename>
<basename>libgstplayback.so</basename>
- <version>1.9.2</version>
+ <version>1.9.90</version>
<license>LGPL</license>
<source>gst-plugins-base</source>
<package>GStreamer Base Plug-ins source release</package>
diff --git a/docs/plugins/inspect/plugin-subparse.xml b/docs/plugins/inspect/plugin-subparse.xml
index 48b86fe..b237508 100644
--- a/docs/plugins/inspect/plugin-subparse.xml
+++ b/docs/plugins/inspect/plugin-subparse.xml
@@ -3,7 +3,7 @@
<description>Subtitle parsing</description>
<filename>../../gst/subparse/.libs/libgstsubparse.so</filename>
<basename>libgstsubparse.so</basename>
- <version>1.9.2</version>
+ <version>1.9.90</version>
<license>LGPL</license>
<source>gst-plugins-base</source>
<package>GStreamer Base Plug-ins source release</package>
diff --git a/docs/plugins/inspect/plugin-tcp.xml b/docs/plugins/inspect/plugin-tcp.xml
index 900a19a..9ff7b1d 100644
--- a/docs/plugins/inspect/plugin-tcp.xml
+++ b/docs/plugins/inspect/plugin-tcp.xml
@@ -3,7 +3,7 @@
<description>transfer data over the network via TCP</description>
<filename>../../gst/tcp/.libs/libgsttcp.so</filename>
<basename>libgsttcp.so</basename>
- <version>1.9.2</version>
+ <version>1.9.90</version>
<license>LGPL</license>
<source>gst-plugins-base</source>
<package>GStreamer Base Plug-ins source release</package>
diff --git a/docs/plugins/inspect/plugin-theora.xml b/docs/plugins/inspect/plugin-theora.xml
index 184ad55..135ec2e 100644
--- a/docs/plugins/inspect/plugin-theora.xml
+++ b/docs/plugins/inspect/plugin-theora.xml
@@ -3,7 +3,7 @@
<description>Theora plugin library</description>
<filename>../../ext/theora/.libs/libgsttheora.so</filename>
<basename>libgsttheora.so</basename>
- <version>1.9.2</version>
+ <version>1.9.90</version>
<license>LGPL</license>
<source>gst-plugins-base</source>
<package>GStreamer Base Plug-ins source release</package>
diff --git a/docs/plugins/inspect/plugin-typefindfunctions.xml b/docs/plugins/inspect/plugin-typefindfunctions.xml
index 7b1eac9..5a8ee77 100644
--- a/docs/plugins/inspect/plugin-typefindfunctions.xml
+++ b/docs/plugins/inspect/plugin-typefindfunctions.xml
@@ -3,7 +3,7 @@
<description>default typefind functions</description>
<filename>../../gst/typefind/.libs/libgsttypefindfunctions.so</filename>
<basename>libgsttypefindfunctions.so</basename>
- <version>1.9.2</version>
+ <version>1.9.90</version>
<license>LGPL</license>
<source>gst-plugins-base</source>
<package>GStreamer Base Plug-ins source release</package>
diff --git a/docs/plugins/inspect/plugin-videoconvert.xml b/docs/plugins/inspect/plugin-videoconvert.xml
index 7c544af..a90b084 100644
--- a/docs/plugins/inspect/plugin-videoconvert.xml
+++ b/docs/plugins/inspect/plugin-videoconvert.xml
@@ -3,7 +3,7 @@
<description>Colorspace conversion</description>
<filename>../../gst/videoconvert/.libs/libgstvideoconvert.so</filename>
<basename>libgstvideoconvert.so</basename>
- <version>1.9.2</version>
+ <version>1.9.90</version>
<license>LGPL</license>
<source>gst-plugins-base</source>
<package>GStreamer Base Plug-ins source release</package>
diff --git a/docs/plugins/inspect/plugin-videorate.xml b/docs/plugins/inspect/plugin-videorate.xml
index 55ebd6d..3ebf6f6 100644
--- a/docs/plugins/inspect/plugin-videorate.xml
+++ b/docs/plugins/inspect/plugin-videorate.xml
@@ -3,7 +3,7 @@
<description>Adjusts video frames</description>
<filename>../../gst/videorate/.libs/libgstvideorate.so</filename>
<basename>libgstvideorate.so</basename>
- <version>1.9.2</version>
+ <version>1.9.90</version>
<license>LGPL</license>
<source>gst-plugins-base</source>
<package>GStreamer Base Plug-ins source release</package>
diff --git a/docs/plugins/inspect/plugin-videoscale.xml b/docs/plugins/inspect/plugin-videoscale.xml
index f8fe61d..32de3e6 100644
--- a/docs/plugins/inspect/plugin-videoscale.xml
+++ b/docs/plugins/inspect/plugin-videoscale.xml
@@ -3,7 +3,7 @@
<description>Resizes video</description>
<filename>../../gst/videoscale/.libs/libgstvideoscale.so</filename>
<basename>libgstvideoscale.so</basename>
- <version>1.9.2</version>
+ <version>1.9.90</version>
<license>LGPL</license>
<source>gst-plugins-base</source>
<package>GStreamer Base Plug-ins source release</package>
diff --git a/docs/plugins/inspect/plugin-videotestsrc.xml b/docs/plugins/inspect/plugin-videotestsrc.xml
index 8b97d83..4db9ddc 100644
--- a/docs/plugins/inspect/plugin-videotestsrc.xml
+++ b/docs/plugins/inspect/plugin-videotestsrc.xml
@@ -3,7 +3,7 @@
<description>Creates a test video stream</description>
<filename>../../gst/videotestsrc/.libs/libgstvideotestsrc.so</filename>
<basename>libgstvideotestsrc.so</basename>
- <version>1.9.2</version>
+ <version>1.9.90</version>
<license>LGPL</license>
<source>gst-plugins-base</source>
<package>GStreamer Base Plug-ins source release</package>
diff --git a/docs/plugins/inspect/plugin-volume.xml b/docs/plugins/inspect/plugin-volume.xml
index e3ffd31..31353a6 100644
--- a/docs/plugins/inspect/plugin-volume.xml
+++ b/docs/plugins/inspect/plugin-volume.xml
@@ -3,7 +3,7 @@
<description>plugin for controlling audio volume</description>
<filename>../../gst/volume/.libs/libgstvolume.so</filename>
<basename>libgstvolume.so</basename>
- <version>1.9.2</version>
+ <version>1.9.90</version>
<license>LGPL</license>
<source>gst-plugins-base</source>
<package>GStreamer Base Plug-ins source release</package>
diff --git a/docs/plugins/inspect/plugin-vorbis.xml b/docs/plugins/inspect/plugin-vorbis.xml
index 91001d4..3782b02 100644
--- a/docs/plugins/inspect/plugin-vorbis.xml
+++ b/docs/plugins/inspect/plugin-vorbis.xml
@@ -3,7 +3,7 @@
<description>Vorbis plugin library</description>
<filename>../../ext/vorbis/.libs/libgstvorbis.so</filename>
<basename>libgstvorbis.so</basename>
- <version>1.9.2</version>
+ <version>1.9.90</version>
<license>LGPL</license>
<source>gst-plugins-base</source>
<package>GStreamer Base Plug-ins source release</package>
diff --git a/docs/plugins/inspect/plugin-ximagesink.xml b/docs/plugins/inspect/plugin-ximagesink.xml
index 5438bc3..88d8078 100644
--- a/docs/plugins/inspect/plugin-ximagesink.xml
+++ b/docs/plugins/inspect/plugin-ximagesink.xml
@@ -3,7 +3,7 @@
<description>X11 video output element based on standard Xlib calls</description>
<filename>../../sys/ximage/.libs/libgstximagesink.so</filename>
<basename>libgstximagesink.so</basename>
- <version>1.9.2</version>
+ <version>1.9.90</version>
<license>LGPL</license>
<source>gst-plugins-base</source>
<package>GStreamer Base Plug-ins source release</package>
diff --git a/docs/plugins/inspect/plugin-xvimagesink.xml b/docs/plugins/inspect/plugin-xvimagesink.xml
index 7a42f42..5e92856 100644
--- a/docs/plugins/inspect/plugin-xvimagesink.xml
+++ b/docs/plugins/inspect/plugin-xvimagesink.xml
@@ -3,7 +3,7 @@
<description>XFree86 video output plugin using Xv extension</description>
<filename>../../sys/xvimage/.libs/libgstxvimagesink.so</filename>
<basename>libgstxvimagesink.so</basename>
- <version>1.9.2</version>
+ <version>1.9.90</version>
<license>LGPL</license>
<source>gst-plugins-base</source>
<package>GStreamer Base Plug-ins source release</package>
diff --git a/ext/Makefile.in b/ext/Makefile.in
index 0fdfb16..f83c95e 100644
--- a/ext/Makefile.in
+++ b/ext/Makefile.in
@@ -427,6 +427,9 @@
SED = @SED@
SET_MAKE = @SET_MAKE@
SHELL = @SHELL@
+SSE2_CFLAGS = @SSE2_CFLAGS@
+SSE41_CFLAGS = @SSE41_CFLAGS@
+SSE_CFLAGS = @SSE_CFLAGS@
STRIP = @STRIP@
THEORA_CFLAGS = @THEORA_CFLAGS@
THEORA_LIBS = @THEORA_LIBS@
diff --git a/ext/alsa/Makefile.in b/ext/alsa/Makefile.in
index 5a7a013..4cd4ec2 100644
--- a/ext/alsa/Makefile.in
+++ b/ext/alsa/Makefile.in
@@ -451,6 +451,9 @@
SED = @SED@
SET_MAKE = @SET_MAKE@
SHELL = @SHELL@
+SSE2_CFLAGS = @SSE2_CFLAGS@
+SSE41_CFLAGS = @SSE41_CFLAGS@
+SSE_CFLAGS = @SSE_CFLAGS@
STRIP = @STRIP@
THEORA_CFLAGS = @THEORA_CFLAGS@
THEORA_LIBS = @THEORA_LIBS@
diff --git a/ext/cdparanoia/Makefile.in b/ext/cdparanoia/Makefile.in
index f021f67..f0d1f91 100644
--- a/ext/cdparanoia/Makefile.in
+++ b/ext/cdparanoia/Makefile.in
@@ -450,6 +450,9 @@
SED = @SED@
SET_MAKE = @SET_MAKE@
SHELL = @SHELL@
+SSE2_CFLAGS = @SSE2_CFLAGS@
+SSE41_CFLAGS = @SSE41_CFLAGS@
+SSE_CFLAGS = @SSE_CFLAGS@
STRIP = @STRIP@
THEORA_CFLAGS = @THEORA_CFLAGS@
THEORA_LIBS = @THEORA_LIBS@
diff --git a/ext/libvisual/Makefile.in b/ext/libvisual/Makefile.in
index 92c7cfa..a690c35 100644
--- a/ext/libvisual/Makefile.in
+++ b/ext/libvisual/Makefile.in
@@ -452,6 +452,9 @@
SED = @SED@
SET_MAKE = @SET_MAKE@
SHELL = @SHELL@
+SSE2_CFLAGS = @SSE2_CFLAGS@
+SSE41_CFLAGS = @SSE41_CFLAGS@
+SSE_CFLAGS = @SSE_CFLAGS@
STRIP = @STRIP@
THEORA_CFLAGS = @THEORA_CFLAGS@
THEORA_LIBS = @THEORA_LIBS@
diff --git a/ext/ogg/Makefile.in b/ext/ogg/Makefile.in
index bc2337d..f54e0e0 100644
--- a/ext/ogg/Makefile.in
+++ b/ext/ogg/Makefile.in
@@ -456,6 +456,9 @@
SED = @SED@
SET_MAKE = @SET_MAKE@
SHELL = @SHELL@
+SSE2_CFLAGS = @SSE2_CFLAGS@
+SSE41_CFLAGS = @SSE41_CFLAGS@
+SSE_CFLAGS = @SSE_CFLAGS@
STRIP = @STRIP@
THEORA_CFLAGS = @THEORA_CFLAGS@
THEORA_LIBS = @THEORA_LIBS@
diff --git a/ext/ogg/gstoggdemux.c b/ext/ogg/gstoggdemux.c
index d653df8..517430e 100644
--- a/ext/ogg/gstoggdemux.c
+++ b/ext/ogg/gstoggdemux.c
@@ -48,7 +48,7 @@
#define CHUNKSIZE (8500) /* this is out of vorbisfile */
/* we hope we get a granpos within this many bytes off the end */
-#define DURATION_CHUNK_OFFSET (64*1024)
+#define DURATION_CHUNK_OFFSET (128*1024)
/* An Ogg page can not be larger than 255 segments of 255 bytes, plus
26 bytes of header */
@@ -1538,6 +1538,10 @@
event = ogg->push_mode_seek_delayed_event;
ogg->push_mode_seek_delayed_event = NULL;
+ /* if we haven't learnt about the total time yet, disable seeking */
+ if (ogg->total_time == -1)
+ ogg->push_disable_seeking = TRUE;
+
ogg->push_state = PUSH_PLAYING;
/* If there is one, perform it. Otherwise, seek back at start to start
diff --git a/ext/opus/Makefile.in b/ext/opus/Makefile.in
index b5b0c32..eda9240 100644
--- a/ext/opus/Makefile.in
+++ b/ext/opus/Makefile.in
@@ -453,6 +453,9 @@
SED = @SED@
SET_MAKE = @SET_MAKE@
SHELL = @SHELL@
+SSE2_CFLAGS = @SSE2_CFLAGS@
+SSE41_CFLAGS = @SSE41_CFLAGS@
+SSE_CFLAGS = @SSE_CFLAGS@
STRIP = @STRIP@
THEORA_CFLAGS = @THEORA_CFLAGS@
THEORA_LIBS = @THEORA_LIBS@
diff --git a/ext/pango/Makefile.in b/ext/pango/Makefile.in
index 79bf545..2f92a4c 100644
--- a/ext/pango/Makefile.in
+++ b/ext/pango/Makefile.in
@@ -453,6 +453,9 @@
SED = @SED@
SET_MAKE = @SET_MAKE@
SHELL = @SHELL@
+SSE2_CFLAGS = @SSE2_CFLAGS@
+SSE41_CFLAGS = @SSE41_CFLAGS@
+SSE_CFLAGS = @SSE_CFLAGS@
STRIP = @STRIP@
THEORA_CFLAGS = @THEORA_CFLAGS@
THEORA_LIBS = @THEORA_LIBS@
diff --git a/ext/theora/Makefile.in b/ext/theora/Makefile.in
index 5c69c3a..dd19bdc 100644
--- a/ext/theora/Makefile.in
+++ b/ext/theora/Makefile.in
@@ -453,6 +453,9 @@
SED = @SED@
SET_MAKE = @SET_MAKE@
SHELL = @SHELL@
+SSE2_CFLAGS = @SSE2_CFLAGS@
+SSE41_CFLAGS = @SSE41_CFLAGS@
+SSE_CFLAGS = @SSE_CFLAGS@
STRIP = @STRIP@
THEORA_CFLAGS = @THEORA_CFLAGS@
THEORA_LIBS = @THEORA_LIBS@
diff --git a/ext/vorbis/Makefile.in b/ext/vorbis/Makefile.in
index c3745b5..88b3b17 100644
--- a/ext/vorbis/Makefile.in
+++ b/ext/vorbis/Makefile.in
@@ -479,6 +479,9 @@
SED = @SED@
SET_MAKE = @SET_MAKE@
SHELL = @SHELL@
+SSE2_CFLAGS = @SSE2_CFLAGS@
+SSE41_CFLAGS = @SSE41_CFLAGS@
+SSE_CFLAGS = @SSE_CFLAGS@
STRIP = @STRIP@
THEORA_CFLAGS = @THEORA_CFLAGS@
THEORA_LIBS = @THEORA_LIBS@
diff --git a/gst-libs/Makefile.in b/gst-libs/Makefile.in
index b288fdc..3f1b9ea 100644
--- a/gst-libs/Makefile.in
+++ b/gst-libs/Makefile.in
@@ -422,6 +422,9 @@
SED = @SED@
SET_MAKE = @SET_MAKE@
SHELL = @SHELL@
+SSE2_CFLAGS = @SSE2_CFLAGS@
+SSE41_CFLAGS = @SSE41_CFLAGS@
+SSE_CFLAGS = @SSE_CFLAGS@
STRIP = @STRIP@
THEORA_CFLAGS = @THEORA_CFLAGS@
THEORA_LIBS = @THEORA_LIBS@
diff --git a/gst-libs/gst/Makefile.in b/gst-libs/gst/Makefile.in
index a9dce3d..42cb21e 100644
--- a/gst-libs/gst/Makefile.in
+++ b/gst-libs/gst/Makefile.in
@@ -425,6 +425,9 @@
SED = @SED@
SET_MAKE = @SET_MAKE@
SHELL = @SHELL@
+SSE2_CFLAGS = @SSE2_CFLAGS@
+SSE41_CFLAGS = @SSE41_CFLAGS@
+SSE_CFLAGS = @SSE_CFLAGS@
STRIP = @STRIP@
THEORA_CFLAGS = @THEORA_CFLAGS@
THEORA_LIBS = @THEORA_LIBS@
diff --git a/gst-libs/gst/allocators/Makefile.in b/gst-libs/gst/allocators/Makefile.in
index 72c7b88..e222ce1 100644
--- a/gst-libs/gst/allocators/Makefile.in
+++ b/gst-libs/gst/allocators/Makefile.in
@@ -440,6 +440,9 @@
SED = @SED@
SET_MAKE = @SET_MAKE@
SHELL = @SHELL@
+SSE2_CFLAGS = @SSE2_CFLAGS@
+SSE41_CFLAGS = @SSE41_CFLAGS@
+SSE_CFLAGS = @SSE_CFLAGS@
STRIP = @STRIP@
THEORA_CFLAGS = @THEORA_CFLAGS@
THEORA_LIBS = @THEORA_LIBS@
diff --git a/gst-libs/gst/app/Makefile.in b/gst-libs/gst/app/Makefile.in
index 64fc856..1c900f4 100644
--- a/gst-libs/gst/app/Makefile.in
+++ b/gst-libs/gst/app/Makefile.in
@@ -446,6 +446,9 @@
SED = @SED@
SET_MAKE = @SET_MAKE@
SHELL = @SHELL@
+SSE2_CFLAGS = @SSE2_CFLAGS@
+SSE41_CFLAGS = @SSE41_CFLAGS@
+SSE_CFLAGS = @SSE_CFLAGS@
STRIP = @STRIP@
THEORA_CFLAGS = @THEORA_CFLAGS@
THEORA_LIBS = @THEORA_LIBS@
diff --git a/gst-libs/gst/audio/Makefile.am b/gst-libs/gst/audio/Makefile.am
index 1f3ec51..41f9c4d 100644
--- a/gst-libs/gst/audio/Makefile.am
+++ b/gst-libs/gst/audio/Makefile.am
@@ -82,8 +82,13 @@
audio-enumtypes.h
noinst_HEADERS = \
- gstaudioutilsprivate.h \
- audio-resampler-x86.h \
+ gstaudioutilsprivate.h \
+ audio-resampler-private.h \
+ audio-resampler-macros.h \
+ audio-resampler-x86.h \
+ audio-resampler-x86-sse.h \
+ audio-resampler-x86-sse2.h \
+ audio-resampler-x86-sse41.h \
audio-resampler-neon.h
libgstaudio_@GST_API_VERSION@_la_CFLAGS = $(GST_PLUGINS_BASE_CFLAGS) $(GST_BASE_CFLAGS) $(GST_CFLAGS) \
@@ -93,6 +98,50 @@
$(GST_BASE_LIBS) $(GST_LIBS) $(LIBM) $(ORC_LIBS)
libgstaudio_@GST_API_VERSION@_la_LDFLAGS = $(GST_LIB_LDFLAGS) $(GST_ALL_LDFLAGS) $(GST_LT_LDFLAGS)
+
+# Arch-specific bits
+
+noinst_LTLIBRARIES =
+
+if HAVE_X86
+# Don't use full GST_LT_LDFLAGS in LDFLAGS because we get things like
+# -version-info that cause a warning on private libs
+
+noinst_LTLIBRARIES += libaudio_resampler_sse.la
+libaudio_resampler_sse_la_SOURCES = audio-resampler-x86-sse.c
+libaudio_resampler_sse_la_CFLAGS = \
+ $(libgstaudio_@GST_API_VERSION@_la_CFLAGS) \
+ $(SSE_CFLAGS)
+libaudio_resampler_sse_la_LDFLAGS = \
+ $(GST_LIB_LDFLAGS) \
+ $(GST_ALL_LDFLAGS)
+libgstaudio_@GST_API_VERSION@_la_LIBADD += libaudio_resampler_sse.la
+
+noinst_LTLIBRARIES += libaudio_resampler_sse2.la
+libaudio_resampler_sse2_la_SOURCES = audio-resampler-x86-sse2.c
+libaudio_resampler_sse2_la_CFLAGS = \
+ $(libgstaudio_@GST_API_VERSION@_la_CFLAGS) \
+ $(SSE2_CFLAGS)
+libaudio_resampler_sse2_la_LDFLAGS = \
+ $(GST_LIB_LDFLAGS) \
+ $(GST_ALL_LDFLAGS)
+libgstaudio_@GST_API_VERSION@_la_LIBADD += libaudio_resampler_sse2.la
+
+noinst_LTLIBRARIES += libaudio_resampler_sse41.la
+libaudio_resampler_sse41_la_SOURCES = audio-resampler-x86-sse41.c
+libaudio_resampler_sse41_la_CFLAGS = \
+ $(libgstaudio_@GST_API_VERSION@_la_CFLAGS) \
+ $(SSE41_CFLAGS)
+libaudio_resampler_sse41_la_LDFLAGS = \
+ $(GST_LIB_LDFLAGS) \
+ $(GST_ALL_LDFLAGS)
+libgstaudio_@GST_API_VERSION@_la_LIBADD += libaudio_resampler_sse41.la
+
+endif
+
+
+# Introspection
+
include $(top_srcdir)/common/gst-glib-gen.mak
if HAVE_INTROSPECTION
diff --git a/gst-libs/gst/audio/Makefile.in b/gst-libs/gst/audio/Makefile.in
index cd31641..add64b1 100644
--- a/gst-libs/gst/audio/Makefile.in
+++ b/gst-libs/gst/audio/Makefile.in
@@ -121,7 +121,16 @@
build_triplet = @build@
host_triplet = @host@
target_triplet = @target@
-@HAVE_INTROSPECTION_TRUE@am__append_1 = $(BUILT_GIRSOURCES) $(typelibs_DATA)
+
+# Don't use full GST_LT_LDFLAGS in LDFLAGS because we get things like
+# -version-info that cause a warning on private libs
+@HAVE_X86_TRUE@am__append_1 = libaudio_resampler_sse.la \
+@HAVE_X86_TRUE@ libaudio_resampler_sse2.la \
+@HAVE_X86_TRUE@ libaudio_resampler_sse41.la
+@HAVE_X86_TRUE@am__append_2 = libaudio_resampler_sse.la \
+@HAVE_X86_TRUE@ libaudio_resampler_sse2.la \
+@HAVE_X86_TRUE@ libaudio_resampler_sse41.la
+@HAVE_INTROSPECTION_TRUE@am__append_3 = $(BUILT_GIRSOURCES) $(typelibs_DATA)
subdir = gst-libs/gst/audio
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \
@@ -197,11 +206,48 @@
"$(DESTDIR)$(typelibsdir)" \
"$(DESTDIR)$(libgstaudio_@GST_API_VERSION@includedir)" \
"$(DESTDIR)$(libgstaudio_@GST_API_VERSION@includedir)"
-LTLIBRARIES = $(lib_LTLIBRARIES)
+LTLIBRARIES = $(lib_LTLIBRARIES) $(noinst_LTLIBRARIES)
+libaudio_resampler_sse_la_LIBADD =
+am__libaudio_resampler_sse_la_SOURCES_DIST = \
+ audio-resampler-x86-sse.c
+@HAVE_X86_TRUE@am_libaudio_resampler_sse_la_OBJECTS = libaudio_resampler_sse_la-audio-resampler-x86-sse.lo
+libaudio_resampler_sse_la_OBJECTS = \
+ $(am_libaudio_resampler_sse_la_OBJECTS)
+AM_V_lt = $(am__v_lt_@AM_V@)
+am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@)
+am__v_lt_0 = --silent
+am__v_lt_1 =
+libaudio_resampler_sse_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \
+ $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CCLD) \
+ $(libaudio_resampler_sse_la_CFLAGS) $(CFLAGS) \
+ $(libaudio_resampler_sse_la_LDFLAGS) $(LDFLAGS) -o $@
+@HAVE_X86_TRUE@am_libaudio_resampler_sse_la_rpath =
+libaudio_resampler_sse2_la_LIBADD =
+am__libaudio_resampler_sse2_la_SOURCES_DIST = \
+ audio-resampler-x86-sse2.c
+@HAVE_X86_TRUE@am_libaudio_resampler_sse2_la_OBJECTS = libaudio_resampler_sse2_la-audio-resampler-x86-sse2.lo
+libaudio_resampler_sse2_la_OBJECTS = \
+ $(am_libaudio_resampler_sse2_la_OBJECTS)
+libaudio_resampler_sse2_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \
+ $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CCLD) \
+ $(libaudio_resampler_sse2_la_CFLAGS) $(CFLAGS) \
+ $(libaudio_resampler_sse2_la_LDFLAGS) $(LDFLAGS) -o $@
+@HAVE_X86_TRUE@am_libaudio_resampler_sse2_la_rpath =
+libaudio_resampler_sse41_la_LIBADD =
+am__libaudio_resampler_sse41_la_SOURCES_DIST = \
+ audio-resampler-x86-sse41.c
+@HAVE_X86_TRUE@am_libaudio_resampler_sse41_la_OBJECTS = libaudio_resampler_sse41_la-audio-resampler-x86-sse41.lo
+libaudio_resampler_sse41_la_OBJECTS = \
+ $(am_libaudio_resampler_sse41_la_OBJECTS)
+libaudio_resampler_sse41_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \
+ $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CCLD) \
+ $(libaudio_resampler_sse41_la_CFLAGS) $(CFLAGS) \
+ $(libaudio_resampler_sse41_la_LDFLAGS) $(LDFLAGS) -o $@
+@HAVE_X86_TRUE@am_libaudio_resampler_sse41_la_rpath =
am__DEPENDENCIES_1 =
libgstaudio_@GST_API_VERSION@_la_DEPENDENCIES = $(top_builddir)/gst-libs/gst/tag/libgsttag-@GST_API_VERSION@.la \
$(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \
- $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1)
+ $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) $(am__append_2)
am_libgstaudio_@GST_API_VERSION@_la_OBJECTS = \
libgstaudio_@GST_API_VERSION@_la-audio.lo \
libgstaudio_@GST_API_VERSION@_la-audio-format.lo \
@@ -233,10 +279,6 @@
libgstaudio_@GST_API_VERSION@_la_OBJECTS = \
$(am_libgstaudio_@GST_API_VERSION@_la_OBJECTS) \
$(nodist_libgstaudio_@GST_API_VERSION@_la_OBJECTS)
-AM_V_lt = $(am__v_lt_@AM_V@)
-am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@)
-am__v_lt_0 = --silent
-am__v_lt_1 =
libgstaudio_@GST_API_VERSION@_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \
$(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CCLD) \
$(libgstaudio_@GST_API_VERSION@_la_CFLAGS) $(CFLAGS) \
@@ -275,9 +317,15 @@
am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@)
am__v_CCLD_0 = @echo " CCLD " $@;
am__v_CCLD_1 =
-SOURCES = $(libgstaudio_@GST_API_VERSION@_la_SOURCES) \
+SOURCES = $(libaudio_resampler_sse_la_SOURCES) \
+ $(libaudio_resampler_sse2_la_SOURCES) \
+ $(libaudio_resampler_sse41_la_SOURCES) \
+ $(libgstaudio_@GST_API_VERSION@_la_SOURCES) \
$(nodist_libgstaudio_@GST_API_VERSION@_la_SOURCES)
-DIST_SOURCES = $(libgstaudio_@GST_API_VERSION@_la_SOURCES)
+DIST_SOURCES = $(am__libaudio_resampler_sse_la_SOURCES_DIST) \
+ $(am__libaudio_resampler_sse2_la_SOURCES_DIST) \
+ $(am__libaudio_resampler_sse41_la_SOURCES_DIST) \
+ $(libgstaudio_@GST_API_VERSION@_la_SOURCES)
am__can_run_installinfo = \
case $$AM_UPDATE_INFO_DIR in \
n|no|NO) false;; \
@@ -520,6 +568,9 @@
SED = @SED@
SET_MAKE = @SET_MAKE@
SHELL = @SHELL@
+SSE2_CFLAGS = @SSE2_CFLAGS@
+SSE41_CFLAGS = @SSE41_CFLAGS@
+SSE_CFLAGS = @SSE_CFLAGS@
STRIP = @STRIP@
THEORA_CFLAGS = @THEORA_CFLAGS@
THEORA_LIBS = @THEORA_LIBS@
@@ -640,7 +691,7 @@
lib_LTLIBRARIES = \
libgstaudio-@GST_API_VERSION@.la
-CLEANFILES = $(BUILT_SOURCES) $(am__append_1)
+CLEANFILES = $(BUILT_SOURCES) $(am__append_3)
libgstaudio_@GST_API_VERSION@_la_SOURCES = \
audio.c \
audio-format.c \
@@ -694,19 +745,55 @@
audio-enumtypes.h
noinst_HEADERS = \
- gstaudioutilsprivate.h \
- audio-resampler-x86.h \
+ gstaudioutilsprivate.h \
+ audio-resampler-private.h \
+ audio-resampler-macros.h \
+ audio-resampler-x86.h \
+ audio-resampler-x86-sse.h \
+ audio-resampler-x86-sse2.h \
+ audio-resampler-x86-sse41.h \
audio-resampler-neon.h
libgstaudio_@GST_API_VERSION@_la_CFLAGS = $(GST_PLUGINS_BASE_CFLAGS) $(GST_BASE_CFLAGS) $(GST_CFLAGS) \
$(ORC_CFLAGS)
-libgstaudio_@GST_API_VERSION@_la_LIBADD = \
- $(top_builddir)/gst-libs/gst/tag/libgsttag-@GST_API_VERSION@.la \
- $(GST_BASE_LIBS) $(GST_LIBS) $(LIBM) $(ORC_LIBS)
-
+libgstaudio_@GST_API_VERSION@_la_LIBADD = $(top_builddir)/gst-libs/gst/tag/libgsttag-@GST_API_VERSION@.la \
+ $(GST_BASE_LIBS) $(GST_LIBS) $(LIBM) $(ORC_LIBS) \
+ $(am__append_2)
libgstaudio_@GST_API_VERSION@_la_LDFLAGS = $(GST_LIB_LDFLAGS) $(GST_ALL_LDFLAGS) $(GST_LT_LDFLAGS)
+
+# Arch-specific bits
+noinst_LTLIBRARIES = $(am__append_1)
+@HAVE_X86_TRUE@libaudio_resampler_sse_la_SOURCES = audio-resampler-x86-sse.c
+@HAVE_X86_TRUE@libaudio_resampler_sse_la_CFLAGS = \
+@HAVE_X86_TRUE@ $(libgstaudio_@GST_API_VERSION@_la_CFLAGS) \
+@HAVE_X86_TRUE@ $(SSE_CFLAGS)
+
+@HAVE_X86_TRUE@libaudio_resampler_sse_la_LDFLAGS = \
+@HAVE_X86_TRUE@ $(GST_LIB_LDFLAGS) \
+@HAVE_X86_TRUE@ $(GST_ALL_LDFLAGS)
+
+@HAVE_X86_TRUE@libaudio_resampler_sse2_la_SOURCES = audio-resampler-x86-sse2.c
+@HAVE_X86_TRUE@libaudio_resampler_sse2_la_CFLAGS = \
+@HAVE_X86_TRUE@ $(libgstaudio_@GST_API_VERSION@_la_CFLAGS) \
+@HAVE_X86_TRUE@ $(SSE2_CFLAGS)
+
+@HAVE_X86_TRUE@libaudio_resampler_sse2_la_LDFLAGS = \
+@HAVE_X86_TRUE@ $(GST_LIB_LDFLAGS) \
+@HAVE_X86_TRUE@ $(GST_ALL_LDFLAGS)
+
+@HAVE_X86_TRUE@libaudio_resampler_sse41_la_SOURCES = audio-resampler-x86-sse41.c
+@HAVE_X86_TRUE@libaudio_resampler_sse41_la_CFLAGS = \
+@HAVE_X86_TRUE@ $(libgstaudio_@GST_API_VERSION@_la_CFLAGS) \
+@HAVE_X86_TRUE@ $(SSE41_CFLAGS)
+
+@HAVE_X86_TRUE@libaudio_resampler_sse41_la_LDFLAGS = \
+@HAVE_X86_TRUE@ $(GST_LIB_LDFLAGS) \
+@HAVE_X86_TRUE@ $(GST_ALL_LDFLAGS)
+
enum_headers = $(foreach h,$(glib_enum_headers),\n\#include \"$(h)\")
+
+# Introspection
@HAVE_INTROSPECTION_TRUE@BUILT_GIRSOURCES = GstAudio-@GST_API_VERSION@.gir
@HAVE_INTROSPECTION_TRUE@gir_headers = $(patsubst %,$(srcdir)/%, \
@HAVE_INTROSPECTION_TRUE@ $(libgstaudio_@GST_API_VERSION@include_HEADERS)) \
@@ -794,6 +881,26 @@
rm -f $${locs}; \
}
+clean-noinstLTLIBRARIES:
+ -test -z "$(noinst_LTLIBRARIES)" || rm -f $(noinst_LTLIBRARIES)
+ @list='$(noinst_LTLIBRARIES)'; \
+ locs=`for p in $$list; do echo $$p; done | \
+ sed 's|^[^/]*$$|.|; s|/[^/]*$$||; s|$$|/so_locations|' | \
+ sort -u`; \
+ test -z "$$locs" || { \
+ echo rm -f $${locs}; \
+ rm -f $${locs}; \
+ }
+
+libaudio_resampler_sse.la: $(libaudio_resampler_sse_la_OBJECTS) $(libaudio_resampler_sse_la_DEPENDENCIES) $(EXTRA_libaudio_resampler_sse_la_DEPENDENCIES)
+ $(AM_V_CCLD)$(libaudio_resampler_sse_la_LINK) $(am_libaudio_resampler_sse_la_rpath) $(libaudio_resampler_sse_la_OBJECTS) $(libaudio_resampler_sse_la_LIBADD) $(LIBS)
+
+libaudio_resampler_sse2.la: $(libaudio_resampler_sse2_la_OBJECTS) $(libaudio_resampler_sse2_la_DEPENDENCIES) $(EXTRA_libaudio_resampler_sse2_la_DEPENDENCIES)
+ $(AM_V_CCLD)$(libaudio_resampler_sse2_la_LINK) $(am_libaudio_resampler_sse2_la_rpath) $(libaudio_resampler_sse2_la_OBJECTS) $(libaudio_resampler_sse2_la_LIBADD) $(LIBS)
+
+libaudio_resampler_sse41.la: $(libaudio_resampler_sse41_la_OBJECTS) $(libaudio_resampler_sse41_la_DEPENDENCIES) $(EXTRA_libaudio_resampler_sse41_la_DEPENDENCIES)
+ $(AM_V_CCLD)$(libaudio_resampler_sse41_la_LINK) $(am_libaudio_resampler_sse41_la_rpath) $(libaudio_resampler_sse41_la_OBJECTS) $(libaudio_resampler_sse41_la_LIBADD) $(LIBS)
+
libgstaudio-@GST_API_VERSION@.la: $(libgstaudio_@GST_API_VERSION@_la_OBJECTS) $(libgstaudio_@GST_API_VERSION@_la_DEPENDENCIES) $(EXTRA_libgstaudio_@GST_API_VERSION@_la_DEPENDENCIES)
$(AM_V_CCLD)$(libgstaudio_@GST_API_VERSION@_la_LINK) -rpath $(libdir) $(libgstaudio_@GST_API_VERSION@_la_OBJECTS) $(libgstaudio_@GST_API_VERSION@_la_LIBADD) $(LIBS)
@@ -803,6 +910,9 @@
distclean-compile:
-rm -f *.tab.c
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libaudio_resampler_sse2_la-audio-resampler-x86-sse2.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libaudio_resampler_sse41_la-audio-resampler-x86-sse41.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libaudio_resampler_sse_la-audio-resampler-x86-sse.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstaudio_@GST_API_VERSION@_la-audio-channel-mixer.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstaudio_@GST_API_VERSION@_la-audio-channels.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstaudio_@GST_API_VERSION@_la-audio-converter.Plo@am__quote@
@@ -852,6 +962,27 @@
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $<
+libaudio_resampler_sse_la-audio-resampler-x86-sse.lo: audio-resampler-x86-sse.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libaudio_resampler_sse_la_CFLAGS) $(CFLAGS) -MT libaudio_resampler_sse_la-audio-resampler-x86-sse.lo -MD -MP -MF $(DEPDIR)/libaudio_resampler_sse_la-audio-resampler-x86-sse.Tpo -c -o libaudio_resampler_sse_la-audio-resampler-x86-sse.lo `test -f 'audio-resampler-x86-sse.c' || echo '$(srcdir)/'`audio-resampler-x86-sse.c
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libaudio_resampler_sse_la-audio-resampler-x86-sse.Tpo $(DEPDIR)/libaudio_resampler_sse_la-audio-resampler-x86-sse.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='audio-resampler-x86-sse.c' object='libaudio_resampler_sse_la-audio-resampler-x86-sse.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libaudio_resampler_sse_la_CFLAGS) $(CFLAGS) -c -o libaudio_resampler_sse_la-audio-resampler-x86-sse.lo `test -f 'audio-resampler-x86-sse.c' || echo '$(srcdir)/'`audio-resampler-x86-sse.c
+
+libaudio_resampler_sse2_la-audio-resampler-x86-sse2.lo: audio-resampler-x86-sse2.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libaudio_resampler_sse2_la_CFLAGS) $(CFLAGS) -MT libaudio_resampler_sse2_la-audio-resampler-x86-sse2.lo -MD -MP -MF $(DEPDIR)/libaudio_resampler_sse2_la-audio-resampler-x86-sse2.Tpo -c -o libaudio_resampler_sse2_la-audio-resampler-x86-sse2.lo `test -f 'audio-resampler-x86-sse2.c' || echo '$(srcdir)/'`audio-resampler-x86-sse2.c
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libaudio_resampler_sse2_la-audio-resampler-x86-sse2.Tpo $(DEPDIR)/libaudio_resampler_sse2_la-audio-resampler-x86-sse2.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='audio-resampler-x86-sse2.c' object='libaudio_resampler_sse2_la-audio-resampler-x86-sse2.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libaudio_resampler_sse2_la_CFLAGS) $(CFLAGS) -c -o libaudio_resampler_sse2_la-audio-resampler-x86-sse2.lo `test -f 'audio-resampler-x86-sse2.c' || echo '$(srcdir)/'`audio-resampler-x86-sse2.c
+
+libaudio_resampler_sse41_la-audio-resampler-x86-sse41.lo: audio-resampler-x86-sse41.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libaudio_resampler_sse41_la_CFLAGS) $(CFLAGS) -MT libaudio_resampler_sse41_la-audio-resampler-x86-sse41.lo -MD -MP -MF $(DEPDIR)/libaudio_resampler_sse41_la-audio-resampler-x86-sse41.Tpo -c -o libaudio_resampler_sse41_la-audio-resampler-x86-sse41.lo `test -f 'audio-resampler-x86-sse41.c' || echo '$(srcdir)/'`audio-resampler-x86-sse41.c
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libaudio_resampler_sse41_la-audio-resampler-x86-sse41.Tpo $(DEPDIR)/libaudio_resampler_sse41_la-audio-resampler-x86-sse41.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='audio-resampler-x86-sse41.c' object='libaudio_resampler_sse41_la-audio-resampler-x86-sse41.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libaudio_resampler_sse41_la_CFLAGS) $(CFLAGS) -c -o libaudio_resampler_sse41_la-audio-resampler-x86-sse41.lo `test -f 'audio-resampler-x86-sse41.c' || echo '$(srcdir)/'`audio-resampler-x86-sse41.c
+
libgstaudio_@GST_API_VERSION@_la-audio.lo: audio.c
@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstaudio_@GST_API_VERSION@_la_CFLAGS) $(CFLAGS) -MT libgstaudio_@GST_API_VERSION@_la-audio.lo -MD -MP -MF $(DEPDIR)/libgstaudio_@GST_API_VERSION@_la-audio.Tpo -c -o libgstaudio_@GST_API_VERSION@_la-audio.lo `test -f 'audio.c' || echo '$(srcdir)/'`audio.c
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstaudio_@GST_API_VERSION@_la-audio.Tpo $(DEPDIR)/libgstaudio_@GST_API_VERSION@_la-audio.Plo
@@ -1239,7 +1370,7 @@
clean: clean-am
clean-am: clean-generic clean-libLTLIBRARIES clean-libtool clean-local \
- mostlyclean-am
+ clean-noinstLTLIBRARIES mostlyclean-am
distclean: distclean-am
-rm -rf ./$(DEPDIR)
@@ -1316,14 +1447,14 @@
.MAKE: all check install install-am install-strip
.PHONY: CTAGS GTAGS TAGS all all-am check check-am clean clean-generic \
- clean-libLTLIBRARIES clean-libtool clean-local cscopelist-am \
- ctags ctags-am dist-hook distclean distclean-compile \
- distclean-generic distclean-libtool distclean-tags distdir dvi \
- dvi-am html html-am info info-am install install-am \
- install-data install-data-am install-dvi install-dvi-am \
- install-exec install-exec-am install-girDATA install-html \
- install-html-am install-info install-info-am \
- install-libLTLIBRARIES \
+ clean-libLTLIBRARIES clean-libtool clean-local \
+ clean-noinstLTLIBRARIES cscopelist-am ctags ctags-am dist-hook \
+ distclean distclean-compile distclean-generic \
+ distclean-libtool distclean-tags distdir dvi dvi-am html \
+ html-am info info-am install install-am install-data \
+ install-data-am install-dvi install-dvi-am install-exec \
+ install-exec-am install-girDATA install-html install-html-am \
+ install-info install-info-am install-libLTLIBRARIES \
install-libgstaudio_@GST_API_VERSION@includeHEADERS \
install-man \
install-nodist_libgstaudio_@GST_API_VERSION@includeHEADERS \
diff --git a/gst-libs/gst/audio/audio-resampler-macros.h b/gst-libs/gst/audio/audio-resampler-macros.h
new file mode 100644
index 0000000..fd6652c
--- /dev/null
+++ b/gst-libs/gst/audio/audio-resampler-macros.h
@@ -0,0 +1,108 @@
+/* GStreamer
+ * Copyright (C) <2015> Wim Taymans <wim.taymans@gmail.com>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public
+ * License along with this library; if not, write to the
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
+ */
+
+#ifndef __GST_AUDIO_RESAMPLER_MACROS_H__
+#define __GST_AUDIO_RESAMPLER_MACROS_H__
+
+#include <string.h>
+
+#include "audio-resampler-private.h"
+
+#define PRECISION_S16 15
+#define PRECISION_S32 31
+
+#define DECL_GET_TAPS_FULL_FUNC(type) \
+gpointer \
+get_taps_##type##_full (GstAudioResampler * resampler, \
+ gint *samp_index, gint *samp_phase, type icoeff[4])
+
+DECL_GET_TAPS_FULL_FUNC (gint16);
+DECL_GET_TAPS_FULL_FUNC (gint32);
+DECL_GET_TAPS_FULL_FUNC (gfloat);
+DECL_GET_TAPS_FULL_FUNC (gdouble);
+
+
+#define DECL_GET_TAPS_INTERPOLATE_FUNC(type, inter) \
+gpointer \
+get_taps_##type##_##inter (GstAudioResampler * resampler, \
+ gint *samp_index, gint *samp_phase, type icoeff[4]) \
+
+DECL_GET_TAPS_INTERPOLATE_FUNC (gint16, linear);
+DECL_GET_TAPS_INTERPOLATE_FUNC (gint32, linear);
+DECL_GET_TAPS_INTERPOLATE_FUNC (gfloat, linear);
+DECL_GET_TAPS_INTERPOLATE_FUNC (gdouble, linear);
+
+DECL_GET_TAPS_INTERPOLATE_FUNC (gint16, cubic);
+DECL_GET_TAPS_INTERPOLATE_FUNC (gint32, cubic);
+DECL_GET_TAPS_INTERPOLATE_FUNC (gfloat, cubic);
+DECL_GET_TAPS_INTERPOLATE_FUNC (gdouble, cubic);
+
+
+#define DECL_RESAMPLE_FUNC(type,inter,channels,arch) \
+void \
+resample_ ##type## _ ##inter## _ ##channels## _ ##arch (GstAudioResampler * resampler, \
+ gpointer in[], gsize in_len, gpointer out[], gsize out_len, \
+ gsize * consumed)
+
+#define MAKE_RESAMPLE_FUNC(type,inter,channels,arch) \
+DECL_RESAMPLE_FUNC (type, inter, channels, arch) \
+{ \
+ gint c, di = 0; \
+ gint n_taps = resampler->n_taps; \
+ gint blocks = resampler->blocks; \
+ gint ostride = resampler->ostride; \
+ gint taps_stride = resampler->taps_stride; \
+ gint samp_index = 0; \
+ gint samp_phase = 0; \
+ \
+ for (c = 0; c < blocks; c++) { \
+ type *ip = in[c]; \
+ type *op = ostride == 1 ? out[c] : (type *)out[0] + c; \
+ \
+ samp_index = resampler->samp_index; \
+ samp_phase = resampler->samp_phase; \
+ \
+ for (di = 0; di < out_len; di++) { \
+ type *ipp, icoeff[4], *taps; \
+ \
+ ipp = &ip[samp_index * channels]; \
+ \
+ taps = get_taps_ ##type##_##inter \
+ (resampler, &samp_index, &samp_phase, icoeff); \
+ inner_product_ ##type##_##inter##_##channels##_##arch \
+ (op, ipp, taps, n_taps, icoeff, taps_stride); \
+ op += ostride; \
+ } \
+ if (in_len > samp_index) \
+ memmove (ip, &ip[samp_index * channels], \
+ (in_len - samp_index) * sizeof(type) * channels); \
+ } \
+ *consumed = samp_index - resampler->samp_index; \
+ \
+ resampler->samp_index = 0; \
+ resampler->samp_phase = samp_phase; \
+}
+
+#define DECL_RESAMPLE_FUNC_STATIC(type,inter,channels,arch) \
+static DECL_RESAMPLE_FUNC (type, inter, channels, arch)
+
+#define MAKE_RESAMPLE_FUNC_STATIC(type,inter,channels,arch) \
+static MAKE_RESAMPLE_FUNC (type, inter, channels, arch)
+
+#endif /* __GST_AUDIO_RESAMPLER_MACROS_H__ */
diff --git a/gst-libs/gst/audio/audio-resampler-neon.h b/gst-libs/gst/audio/audio-resampler-neon.h
index 5520b07..5863e18 100644
--- a/gst-libs/gst/audio/audio-resampler-neon.h
+++ b/gst-libs/gst/audio/audio-resampler-neon.h
@@ -650,17 +650,17 @@
"q10", "q11", "q12", "q13", "q14", "q15", "memory");
}
-MAKE_RESAMPLE_FUNC (gint16, full, 1, neon);
-MAKE_RESAMPLE_FUNC (gint16, linear, 1, neon);
-MAKE_RESAMPLE_FUNC (gint16, cubic, 1, neon);
+MAKE_RESAMPLE_FUNC_STATIC (gint16, full, 1, neon);
+MAKE_RESAMPLE_FUNC_STATIC (gint16, linear, 1, neon);
+MAKE_RESAMPLE_FUNC_STATIC (gint16, cubic, 1, neon);
-MAKE_RESAMPLE_FUNC (gint32, full, 1, neon);
-MAKE_RESAMPLE_FUNC (gint32, linear, 1, neon);
-MAKE_RESAMPLE_FUNC (gint32, cubic, 1, neon);
+MAKE_RESAMPLE_FUNC_STATIC (gint32, full, 1, neon);
+MAKE_RESAMPLE_FUNC_STATIC (gint32, linear, 1, neon);
+MAKE_RESAMPLE_FUNC_STATIC (gint32, cubic, 1, neon);
-MAKE_RESAMPLE_FUNC (gfloat, full, 1, neon);
-MAKE_RESAMPLE_FUNC (gfloat, linear, 1, neon);
-MAKE_RESAMPLE_FUNC (gfloat, cubic, 1, neon);
+MAKE_RESAMPLE_FUNC_STATIC (gfloat, full, 1, neon);
+MAKE_RESAMPLE_FUNC_STATIC (gfloat, linear, 1, neon);
+MAKE_RESAMPLE_FUNC_STATIC (gfloat, cubic, 1, neon);
static void
audio_resampler_check_neon (const gchar *option)
diff --git a/gst-libs/gst/audio/audio-resampler-private.h b/gst-libs/gst/audio/audio-resampler-private.h
new file mode 100644
index 0000000..c8d1a7e
--- /dev/null
+++ b/gst-libs/gst/audio/audio-resampler-private.h
@@ -0,0 +1,113 @@
+/* GStreamer
+ * Copyright (C) <2015> Wim Taymans <wim.taymans@gmail.com>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public
+ * License along with this library; if not, write to the
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
+ */
+
+#ifndef __GST_AUDIO_RESAMPLER_PRIVATE_H__
+#define __GST_AUDIO_RESAMPLER_PRIVATE_H__
+
+#include "audio-resampler.h"
+
+/* Contains a collection of all things found in other resamplers:
+ * speex (filter construction, optimizations), ffmpeg (fixed phase filter, blackman filter),
+ * SRC (linear interpolation, fixed precomputed tables),...
+ *
+ * Supports:
+ * - S16, S32, F32 and F64 formats
+ * - nearest, linear and cubic interpolation
+ * - sinc based interpolation with kaiser or blackman-nutall windows
+ * - fully configurable kaiser parameters
+ * - dynamic linear or cubic interpolation of filter table, this can
+ * use less memory but more CPU
+ * - full filter table, generated from optionally linear or cubic
+ * interpolation of filter table
+ * - fixed filter table size with nearest neighbour phase, optionally
+ * using a precomputed tables
+ * - dynamic samplerate changes
+ * - x86 and neon optimizations
+ */
+typedef void (*ConvertTapsFunc) (gdouble * tmp_taps, gpointer taps,
+ gdouble weight, gint n_taps);
+typedef void (*InterpolateFunc) (gpointer o, const gpointer a, gint len,
+ const gpointer icoeff, gint astride);
+typedef void (*ResampleFunc) (GstAudioResampler * resampler, gpointer in[],
+ gsize in_len, gpointer out[], gsize out_len, gsize * consumed);
+typedef void (*DeinterleaveFunc) (GstAudioResampler * resampler,
+ gpointer * sbuf, gpointer in[], gsize in_frames);
+
+struct _GstAudioResampler
+{
+ GstAudioResamplerMethod method;
+ GstAudioResamplerFlags flags;
+ GstAudioFormat format;
+ GstStructure *options;
+ gint format_index;
+ gint channels;
+ gint in_rate;
+ gint out_rate;
+
+ gint bps;
+ gint ostride;
+
+ GstAudioResamplerFilterMode filter_mode;
+ guint filter_threshold;
+ GstAudioResamplerFilterInterpolation filter_interpolation;
+
+ gdouble cutoff;
+ gdouble kaiser_beta;
+ /* for cubic */
+ gdouble b, c;
+
+ /* temp taps */
+ gpointer tmp_taps;
+
+ /* oversampled main filter table */
+ gint oversample;
+ gint n_taps;
+ gpointer taps;
+ gpointer taps_mem;
+ gsize taps_stride;
+ gint n_phases;
+ gint alloc_taps;
+ gint alloc_phases;
+
+ /* cached taps */
+ gpointer *cached_phases;
+ gpointer cached_taps;
+ gpointer cached_taps_mem;
+ gsize cached_taps_stride;
+
+ ConvertTapsFunc convert_taps;
+ InterpolateFunc interpolate;
+ DeinterleaveFunc deinterleave;
+ ResampleFunc resample;
+
+ gint blocks;
+ gint inc;
+ gint samp_inc;
+ gint samp_frac;
+ gint samp_index;
+ gint samp_phase;
+ gint skip;
+
+ gpointer samples;
+ gsize samples_len;
+ gsize samples_avail;
+ gpointer *sbuf;
+};
+
+#endif /* __GST_AUDIO_RESAMPLER_PRIVATE_H__ */
diff --git a/gst-libs/gst/audio/audio-resampler-x86-sse.c b/gst-libs/gst/audio/audio-resampler-x86-sse.c
new file mode 100644
index 0000000..d100c59
--- /dev/null
+++ b/gst-libs/gst/audio/audio-resampler-x86-sse.c
@@ -0,0 +1,168 @@
+/* GStreamer
+ * Copyright (C) <2016> Wim Taymans <wim.taymans@gmail.com>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public
+ * License along with this library; if not, write to the
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
+ */
+
+#ifdef HAVE_CONFIG_H
+# include "config.h"
+#endif
+
+#include "audio-resampler-x86-sse.h"
+
+#if defined (HAVE_XMMINTRIN_H) && defined(__SSE__)
+#include <xmmintrin.h>
+
+static inline void
+inner_product_gfloat_full_1_sse (gfloat * o, const gfloat * a,
+ const gfloat * b, gint len, const gfloat * icoeff, gint bstride)
+{
+ gint i = 0;
+ __m128 sum = _mm_setzero_ps ();
+
+ for (; i < len; i += 8) {
+ sum =
+ _mm_add_ps (sum, _mm_mul_ps (_mm_loadu_ps (a + i + 0),
+ _mm_load_ps (b + i + 0)));
+ sum =
+ _mm_add_ps (sum, _mm_mul_ps (_mm_loadu_ps (a + i + 4),
+ _mm_load_ps (b + i + 4)));
+ }
+ sum = _mm_add_ps (sum, _mm_movehl_ps (sum, sum));
+ sum = _mm_add_ss (sum, _mm_shuffle_ps (sum, sum, 0x55));
+ _mm_store_ss (o, sum);
+}
+
+static inline void
+inner_product_gfloat_linear_1_sse (gfloat * o, const gfloat * a,
+ const gfloat * b, gint len, const gfloat * icoeff, gint bstride)
+{
+ gint i = 0;
+ __m128 sum[2], t;
+ const gfloat *c[2] = { (gfloat *) ((gint8 *) b + 0 * bstride),
+ (gfloat *) ((gint8 *) b + 1 * bstride)
+ };
+
+ sum[0] = sum[1] = _mm_setzero_ps ();
+
+ for (; i < len; i += 8) {
+ t = _mm_loadu_ps (a + i + 0);
+ sum[0] = _mm_add_ps (sum[0], _mm_mul_ps (t, _mm_load_ps (c[0] + i + 0)));
+ sum[1] = _mm_add_ps (sum[1], _mm_mul_ps (t, _mm_load_ps (c[1] + i + 0)));
+ t = _mm_loadu_ps (a + i + 4);
+ sum[0] = _mm_add_ps (sum[0], _mm_mul_ps (t, _mm_load_ps (c[0] + i + 4)));
+ sum[1] = _mm_add_ps (sum[1], _mm_mul_ps (t, _mm_load_ps (c[1] + i + 4)));
+ }
+ sum[0] = _mm_mul_ps (_mm_sub_ps (sum[0], sum[1]), _mm_load1_ps (icoeff));
+ sum[0] = _mm_add_ps (sum[0], sum[1]);
+ sum[0] = _mm_add_ps (sum[0], _mm_movehl_ps (sum[0], sum[0]));
+ sum[0] = _mm_add_ss (sum[0], _mm_shuffle_ps (sum[0], sum[0], 0x55));
+ _mm_store_ss (o, sum[0]);
+}
+
+static inline void
+inner_product_gfloat_cubic_1_sse (gfloat * o, const gfloat * a,
+ const gfloat * b, gint len, const gfloat * icoeff, gint bstride)
+{
+ gint i = 0;
+ __m128 sum[4];
+ __m128 t, f = _mm_loadu_ps (icoeff);
+ const gfloat *c[4] = { (gfloat *) ((gint8 *) b + 0 * bstride),
+ (gfloat *) ((gint8 *) b + 1 * bstride),
+ (gfloat *) ((gint8 *) b + 2 * bstride),
+ (gfloat *) ((gint8 *) b + 3 * bstride)
+ };
+
+ sum[0] = sum[1] = sum[2] = sum[3] = _mm_setzero_ps ();
+
+ for (; i < len; i += 4) {
+ t = _mm_loadu_ps (a + i);
+ sum[0] = _mm_add_ps (sum[0], _mm_mul_ps (t, _mm_load_ps (c[0] + i)));
+ sum[1] = _mm_add_ps (sum[1], _mm_mul_ps (t, _mm_load_ps (c[1] + i)));
+ sum[2] = _mm_add_ps (sum[2], _mm_mul_ps (t, _mm_load_ps (c[2] + i)));
+ sum[3] = _mm_add_ps (sum[3], _mm_mul_ps (t, _mm_load_ps (c[3] + i)));
+ }
+ sum[0] = _mm_mul_ps (sum[0], _mm_shuffle_ps (f, f, 0x00));
+ sum[1] = _mm_mul_ps (sum[1], _mm_shuffle_ps (f, f, 0x55));
+ sum[2] = _mm_mul_ps (sum[2], _mm_shuffle_ps (f, f, 0xaa));
+ sum[3] = _mm_mul_ps (sum[3], _mm_shuffle_ps (f, f, 0xff));
+ sum[0] = _mm_add_ps (sum[0], sum[1]);
+ sum[2] = _mm_add_ps (sum[2], sum[3]);
+ sum[0] = _mm_add_ps (sum[0], sum[2]);
+ sum[0] = _mm_add_ps (sum[0], _mm_movehl_ps (sum[0], sum[0]));
+ sum[0] = _mm_add_ss (sum[0], _mm_shuffle_ps (sum[0], sum[0], 0x55));
+ _mm_store_ss (o, sum[0]);
+}
+
+MAKE_RESAMPLE_FUNC (gfloat, full, 1, sse);
+MAKE_RESAMPLE_FUNC (gfloat, linear, 1, sse);
+MAKE_RESAMPLE_FUNC (gfloat, cubic, 1, sse);
+
+void
+interpolate_gfloat_linear_sse (gpointer op, const gpointer ap,
+ gint len, const gpointer icp, gint astride)
+{
+ gint i;
+ gfloat *o = op, *a = ap, *ic = icp;
+ __m128 f[2], t1, t2;
+ const gfloat *c[2] = { (gfloat *) ((gint8 *) a + 0 * astride),
+ (gfloat *) ((gint8 *) a + 1 * astride)
+ };
+
+ f[0] = _mm_load1_ps (ic + 0);
+ f[1] = _mm_load1_ps (ic + 1);
+
+ for (i = 0; i < len; i += 8) {
+ t1 = _mm_mul_ps (_mm_load_ps (c[0] + i + 0), f[0]);
+ t2 = _mm_mul_ps (_mm_load_ps (c[1] + i + 0), f[1]);
+ _mm_store_ps (o + i + 0, _mm_add_ps (t1, t2));
+
+ t1 = _mm_mul_ps (_mm_load_ps (c[0] + i + 4), f[0]);
+ t2 = _mm_mul_ps (_mm_load_ps (c[1] + i + 4), f[1]);
+ _mm_store_ps (o + i + 4, _mm_add_ps (t1, t2));
+ }
+}
+
+void
+interpolate_gfloat_cubic_sse (gpointer op, const gpointer ap,
+ gint len, const gpointer icp, gint astride)
+{
+ gint i;
+ gfloat *o = op, *a = ap, *ic = icp;
+ __m128 f[4], t[4];
+ const gfloat *c[4] = { (gfloat *) ((gint8 *) a + 0 * astride),
+ (gfloat *) ((gint8 *) a + 1 * astride),
+ (gfloat *) ((gint8 *) a + 2 * astride),
+ (gfloat *) ((gint8 *) a + 3 * astride)
+ };
+
+ f[0] = _mm_load1_ps (ic + 0);
+ f[1] = _mm_load1_ps (ic + 1);
+ f[2] = _mm_load1_ps (ic + 2);
+ f[3] = _mm_load1_ps (ic + 3);
+
+ for (i = 0; i < len; i += 4) {
+ t[0] = _mm_mul_ps (_mm_load_ps (c[0] + i + 0), f[0]);
+ t[1] = _mm_mul_ps (_mm_load_ps (c[1] + i + 0), f[1]);
+ t[2] = _mm_mul_ps (_mm_load_ps (c[2] + i + 0), f[2]);
+ t[3] = _mm_mul_ps (_mm_load_ps (c[3] + i + 0), f[3]);
+ t[0] = _mm_add_ps (t[0], t[1]);
+ t[2] = _mm_add_ps (t[2], t[3]);
+ _mm_store_ps (o + i + 0, _mm_add_ps (t[0], t[2]));
+ }
+}
+
+#endif
diff --git a/gst-libs/gst/audio/audio-resampler-x86-sse.h b/gst-libs/gst/audio/audio-resampler-x86-sse.h
new file mode 100644
index 0000000..1d3e9a4
--- /dev/null
+++ b/gst-libs/gst/audio/audio-resampler-x86-sse.h
@@ -0,0 +1,35 @@
+/* GStreamer
+ * Copyright (C) <2016> Wim Taymans <wim.taymans@gmail.com>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public
+ * License along with this library; if not, write to the
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
+ */
+
+#ifndef AUDIO_RESAMPLER_X86_SSE_H
+#define AUDIO_RESAMPLER_X86_SSE_H
+
+#include "audio-resampler-macros.h"
+
+DECL_RESAMPLE_FUNC (gfloat, full, 1, sse);
+DECL_RESAMPLE_FUNC (gfloat, linear, 1, sse);
+DECL_RESAMPLE_FUNC (gfloat, cubic, 1, sse);
+
+void interpolate_gfloat_linear_sse (gpointer op, const gpointer ap,
+ gint len, const gpointer icp, gint astride);
+
+void interpolate_gfloat_cubic_sse (gpointer op, const gpointer ap,
+ gint len, const gpointer icp, gint astride);
+
+#endif /* AUDIO_RESAMPLER_X86_SSE_H */
diff --git a/gst-libs/gst/audio/audio-resampler-x86-sse2.c b/gst-libs/gst/audio/audio-resampler-x86-sse2.c
new file mode 100644
index 0000000..a89fb41
--- /dev/null
+++ b/gst-libs/gst/audio/audio-resampler-x86-sse2.c
@@ -0,0 +1,399 @@
+/* GStreamer
+ * Copyright (C) <2016> Wim Taymans <wim.taymans@gmail.com>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public
+ * License along with this library; if not, write to the
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
+ */
+
+#ifdef HAVE_CONFIG_H
+# include "config.h"
+#endif
+
+#include "audio-resampler-x86-sse2.h"
+
+#if defined (HAVE_EMMINTRIN_H) && defined(__SSE2__)
+#include <emmintrin.h>
+
+static inline void
+inner_product_gint16_full_1_sse2 (gint16 * o, const gint16 * a,
+ const gint16 * b, gint len, const gint16 * icoeff, gint bstride)
+{
+ gint i;
+ __m128i sum, t;
+
+ sum = _mm_setzero_si128 ();
+
+ for (i = 0; i < len; i += 16) {
+ t = _mm_loadu_si128 ((__m128i *) (a + i));
+ sum =
+ _mm_add_epi32 (sum, _mm_madd_epi16 (t,
+ _mm_load_si128 ((__m128i *) (b + i + 0))));
+
+ t = _mm_loadu_si128 ((__m128i *) (a + i + 8));
+ sum =
+ _mm_add_epi32 (sum, _mm_madd_epi16 (t,
+ _mm_load_si128 ((__m128i *) (b + i + 8))));
+ }
+ sum = _mm_add_epi32 (sum, _mm_shuffle_epi32 (sum, _MM_SHUFFLE (2, 3, 2, 3)));
+ sum = _mm_add_epi32 (sum, _mm_shuffle_epi32 (sum, _MM_SHUFFLE (1, 1, 1, 1)));
+
+ sum = _mm_add_epi32 (sum, _mm_set1_epi32 (1 << (PRECISION_S16 - 1)));
+ sum = _mm_srai_epi32 (sum, PRECISION_S16);
+ sum = _mm_packs_epi32 (sum, sum);
+ *o = _mm_extract_epi16 (sum, 0);
+}
+
+static inline void
+inner_product_gint16_linear_1_sse2 (gint16 * o, const gint16 * a,
+ const gint16 * b, gint len, const gint16 * icoeff, gint bstride)
+{
+ gint i = 0;
+ __m128i sum[2], t;
+ __m128i f = _mm_set_epi64x (0, *((gint64 *) icoeff));
+ const gint16 *c[2] = { (gint16 *) ((gint8 *) b + 0 * bstride),
+ (gint16 *) ((gint8 *) b + 1 * bstride)
+ };
+
+ sum[0] = sum[1] = _mm_setzero_si128 ();
+ f = _mm_unpacklo_epi16 (f, sum[0]);
+
+ for (; i < len; i += 16) {
+ t = _mm_loadu_si128 ((__m128i *) (a + i + 0));
+ sum[0] =
+ _mm_add_epi32 (sum[0], _mm_madd_epi16 (t,
+ _mm_load_si128 ((__m128i *) (c[0] + i + 0))));
+ sum[1] =
+ _mm_add_epi32 (sum[1], _mm_madd_epi16 (t,
+ _mm_load_si128 ((__m128i *) (c[1] + i + 0))));
+
+ t = _mm_loadu_si128 ((__m128i *) (a + i + 8));
+ sum[0] =
+ _mm_add_epi32 (sum[0], _mm_madd_epi16 (t,
+ _mm_load_si128 ((__m128i *) (c[0] + i + 8))));
+ sum[1] =
+ _mm_add_epi32 (sum[1], _mm_madd_epi16 (t,
+ _mm_load_si128 ((__m128i *) (c[1] + i + 8))));
+ }
+ sum[0] = _mm_srai_epi32 (sum[0], PRECISION_S16);
+ sum[1] = _mm_srai_epi32 (sum[1], PRECISION_S16);
+
+ sum[0] =
+ _mm_madd_epi16 (sum[0], _mm_shuffle_epi32 (f, _MM_SHUFFLE (0, 0, 0, 0)));
+ sum[1] =
+ _mm_madd_epi16 (sum[1], _mm_shuffle_epi32 (f, _MM_SHUFFLE (1, 1, 1, 1)));
+ sum[0] = _mm_add_epi32 (sum[0], sum[1]);
+
+ sum[0] =
+ _mm_add_epi32 (sum[0], _mm_shuffle_epi32 (sum[0], _MM_SHUFFLE (2, 3, 2,
+ 3)));
+ sum[0] =
+ _mm_add_epi32 (sum[0], _mm_shuffle_epi32 (sum[0], _MM_SHUFFLE (1, 1, 1,
+ 1)));
+
+ sum[0] = _mm_add_epi32 (sum[0], _mm_set1_epi32 (1 << (PRECISION_S16 - 1)));
+ sum[0] = _mm_srai_epi32 (sum[0], PRECISION_S16);
+ sum[0] = _mm_packs_epi32 (sum[0], sum[0]);
+ *o = _mm_extract_epi16 (sum[0], 0);
+}
+
+static inline void
+inner_product_gint16_cubic_1_sse2 (gint16 * o, const gint16 * a,
+ const gint16 * b, gint len, const gint16 * icoeff, gint bstride)
+{
+ gint i = 0;
+ __m128i sum[4], t[4];
+ __m128i f = _mm_set_epi64x (0, *((long long *) icoeff));
+ const gint16 *c[4] = { (gint16 *) ((gint8 *) b + 0 * bstride),
+ (gint16 *) ((gint8 *) b + 1 * bstride),
+ (gint16 *) ((gint8 *) b + 2 * bstride),
+ (gint16 *) ((gint8 *) b + 3 * bstride)
+ };
+
+ sum[0] = sum[1] = sum[2] = sum[3] = _mm_setzero_si128 ();
+ f = _mm_unpacklo_epi16 (f, sum[0]);
+
+ for (; i < len; i += 8) {
+ t[0] = _mm_loadu_si128 ((__m128i *) (a + i));
+ sum[0] =
+ _mm_add_epi32 (sum[0], _mm_madd_epi16 (t[0],
+ _mm_load_si128 ((__m128i *) (c[0] + i))));
+ sum[1] =
+ _mm_add_epi32 (sum[1], _mm_madd_epi16 (t[0],
+ _mm_load_si128 ((__m128i *) (c[1] + i))));
+ sum[2] =
+ _mm_add_epi32 (sum[2], _mm_madd_epi16 (t[0],
+ _mm_load_si128 ((__m128i *) (c[2] + i))));
+ sum[3] =
+ _mm_add_epi32 (sum[3], _mm_madd_epi16 (t[0],
+ _mm_load_si128 ((__m128i *) (c[3] + i))));
+ }
+ t[0] = _mm_unpacklo_epi32 (sum[0], sum[1]);
+ t[1] = _mm_unpacklo_epi32 (sum[2], sum[3]);
+ t[2] = _mm_unpackhi_epi32 (sum[0], sum[1]);
+ t[3] = _mm_unpackhi_epi32 (sum[2], sum[3]);
+
+ sum[0] =
+ _mm_add_epi32 (_mm_unpacklo_epi64 (t[0], t[1]), _mm_unpackhi_epi64 (t[0],
+ t[1]));
+ sum[2] =
+ _mm_add_epi32 (_mm_unpacklo_epi64 (t[2], t[3]), _mm_unpackhi_epi64 (t[2],
+ t[3]));
+ sum[0] = _mm_add_epi32 (sum[0], sum[2]);
+
+ sum[0] = _mm_srai_epi32 (sum[0], PRECISION_S16);
+ sum[0] = _mm_madd_epi16 (sum[0], f);
+
+ sum[0] =
+ _mm_add_epi32 (sum[0], _mm_shuffle_epi32 (sum[0], _MM_SHUFFLE (2, 3, 2,
+ 3)));
+ sum[0] =
+ _mm_add_epi32 (sum[0], _mm_shuffle_epi32 (sum[0], _MM_SHUFFLE (1, 1, 1,
+ 1)));
+
+ sum[0] = _mm_add_epi32 (sum[0], _mm_set1_epi32 (1 << (PRECISION_S16 - 1)));
+ sum[0] = _mm_srai_epi32 (sum[0], PRECISION_S16);
+ sum[0] = _mm_packs_epi32 (sum[0], sum[0]);
+ *o = _mm_extract_epi16 (sum[0], 0);
+}
+
+static inline void
+inner_product_gdouble_full_1_sse2 (gdouble * o, const gdouble * a,
+ const gdouble * b, gint len, const gdouble * icoeff, gint bstride)
+{
+ gint i = 0;
+ __m128d sum = _mm_setzero_pd ();
+
+ for (; i < len; i += 8) {
+ sum =
+ _mm_add_pd (sum, _mm_mul_pd (_mm_loadu_pd (a + i + 0),
+ _mm_load_pd (b + i + 0)));
+ sum =
+ _mm_add_pd (sum, _mm_mul_pd (_mm_loadu_pd (a + i + 2),
+ _mm_load_pd (b + i + 2)));
+ sum =
+ _mm_add_pd (sum, _mm_mul_pd (_mm_loadu_pd (a + i + 4),
+ _mm_load_pd (b + i + 4)));
+ sum =
+ _mm_add_pd (sum, _mm_mul_pd (_mm_loadu_pd (a + i + 6),
+ _mm_load_pd (b + i + 6)));
+ }
+ sum = _mm_add_sd (sum, _mm_unpackhi_pd (sum, sum));
+ _mm_store_sd (o, sum);
+}
+
+static inline void
+inner_product_gdouble_linear_1_sse2 (gdouble * o, const gdouble * a,
+ const gdouble * b, gint len, const gdouble * icoeff, gint bstride)
+{
+ gint i = 0;
+ __m128d sum[2], t;
+ const gdouble *c[2] = { (gdouble *) ((gint8 *) b + 0 * bstride),
+ (gdouble *) ((gint8 *) b + 1 * bstride)
+ };
+
+ sum[0] = sum[1] = _mm_setzero_pd ();
+
+ for (; i < len; i += 4) {
+ t = _mm_loadu_pd (a + i + 0);
+ sum[0] = _mm_add_pd (sum[0], _mm_mul_pd (t, _mm_load_pd (c[0] + i + 0)));
+ sum[1] = _mm_add_pd (sum[1], _mm_mul_pd (t, _mm_load_pd (c[1] + i + 0)));
+ t = _mm_loadu_pd (a + i + 2);
+ sum[0] = _mm_add_pd (sum[0], _mm_mul_pd (t, _mm_load_pd (c[0] + i + 2)));
+ sum[1] = _mm_add_pd (sum[1], _mm_mul_pd (t, _mm_load_pd (c[1] + i + 2)));
+ }
+ sum[0] = _mm_mul_pd (_mm_sub_pd (sum[0], sum[1]), _mm_load1_pd (icoeff));
+ sum[0] = _mm_add_pd (sum[0], sum[1]);
+ sum[0] = _mm_add_sd (sum[0], _mm_unpackhi_pd (sum[0], sum[0]));
+ _mm_store_sd (o, sum[0]);
+}
+
+static inline void
+inner_product_gdouble_cubic_1_sse2 (gdouble * o, const gdouble * a,
+ const gdouble * b, gint len, const gdouble * icoeff, gint bstride)
+{
+ gint i;
+ __m128d f[2], sum[4], t;
+ const gdouble *c[4] = { (gdouble *) ((gint8 *) b + 0 * bstride),
+ (gdouble *) ((gint8 *) b + 1 * bstride),
+ (gdouble *) ((gint8 *) b + 2 * bstride),
+ (gdouble *) ((gint8 *) b + 3 * bstride)
+ };
+
+ f[0] = _mm_loadu_pd (icoeff + 0);
+ f[1] = _mm_loadu_pd (icoeff + 2);
+ sum[0] = sum[1] = sum[2] = sum[3] = _mm_setzero_pd ();
+
+ for (i = 0; i < len; i += 2) {
+ t = _mm_loadu_pd (a + i + 0);
+ sum[0] = _mm_add_pd (sum[0], _mm_mul_pd (t, _mm_load_pd (c[0] + i)));
+ sum[1] = _mm_add_pd (sum[1], _mm_mul_pd (t, _mm_load_pd (c[1] + i)));
+ sum[2] = _mm_add_pd (sum[2], _mm_mul_pd (t, _mm_load_pd (c[2] + i)));
+ sum[3] = _mm_add_pd (sum[3], _mm_mul_pd (t, _mm_load_pd (c[3] + i)));
+ }
+ sum[0] =
+ _mm_mul_pd (sum[0], _mm_shuffle_pd (f[0], f[0], _MM_SHUFFLE2 (0, 0)));
+ sum[1] =
+ _mm_mul_pd (sum[1], _mm_shuffle_pd (f[0], f[0], _MM_SHUFFLE2 (1, 1)));
+ sum[2] =
+ _mm_mul_pd (sum[2], _mm_shuffle_pd (f[1], f[1], _MM_SHUFFLE2 (0, 0)));
+ sum[3] =
+ _mm_mul_pd (sum[3], _mm_shuffle_pd (f[1], f[1], _MM_SHUFFLE2 (1, 1)));
+ sum[0] = _mm_add_pd (sum[0], sum[1]);
+ sum[2] = _mm_add_pd (sum[2], sum[3]);
+ sum[0] = _mm_add_pd (sum[0], sum[2]);
+ sum[0] = _mm_add_sd (sum[0], _mm_unpackhi_pd (sum[0], sum[0]));
+ _mm_store_sd (o, sum[0]);
+}
+
+MAKE_RESAMPLE_FUNC (gint16, full, 1, sse2);
+MAKE_RESAMPLE_FUNC (gint16, linear, 1, sse2);
+MAKE_RESAMPLE_FUNC (gint16, cubic, 1, sse2);
+
+MAKE_RESAMPLE_FUNC (gdouble, full, 1, sse2);
+MAKE_RESAMPLE_FUNC (gdouble, linear, 1, sse2);
+MAKE_RESAMPLE_FUNC (gdouble, cubic, 1, sse2);
+
+void
+interpolate_gint16_linear_sse2 (gpointer op, const gpointer ap,
+ gint len, const gpointer icp, gint astride)
+{
+ gint i = 0;
+ gint16 *o = op, *a = ap, *ic = icp;
+ __m128i ta, tb, t1, t2;
+ __m128i f = _mm_set_epi64x (0, *((gint64 *) ic));
+ const gint16 *c[2] = { (gint16 *) ((gint8 *) a + 0 * astride),
+ (gint16 *) ((gint8 *) a + 1 * astride)
+ };
+
+ f = _mm_unpacklo_epi32 (f, f);
+ f = _mm_unpacklo_epi64 (f, f);
+
+ for (; i < len; i += 8) {
+ ta = _mm_load_si128 ((__m128i *) (c[0] + i));
+ tb = _mm_load_si128 ((__m128i *) (c[1] + i));
+
+ t1 = _mm_madd_epi16 (_mm_unpacklo_epi16 (ta, tb), f);
+ t2 = _mm_madd_epi16 (_mm_unpackhi_epi16 (ta, tb), f);
+
+ t1 = _mm_add_epi32 (t1, _mm_set1_epi32 (1 << (PRECISION_S16 - 1)));
+ t2 = _mm_add_epi32 (t2, _mm_set1_epi32 (1 << (PRECISION_S16 - 1)));
+
+ t1 = _mm_srai_epi32 (t1, PRECISION_S16);
+ t2 = _mm_srai_epi32 (t2, PRECISION_S16);
+
+ t1 = _mm_packs_epi32 (t1, t2);
+ _mm_store_si128 ((__m128i *) (o + i), t1);
+ }
+}
+
+void
+interpolate_gint16_cubic_sse2 (gpointer op, const gpointer ap,
+ gint len, const gpointer icp, gint astride)
+{
+ gint i = 0;
+ gint16 *o = op, *a = ap, *ic = icp;
+ __m128i ta, tb, tl1, tl2, th1, th2;
+ __m128i f[2];
+ const gint16 *c[4] = { (gint16 *) ((gint8 *) a + 0 * astride),
+ (gint16 *) ((gint8 *) a + 1 * astride),
+ (gint16 *) ((gint8 *) a + 2 * astride),
+ (gint16 *) ((gint8 *) a + 3 * astride)
+ };
+
+ f[0] = _mm_set_epi16 (ic[1], ic[0], ic[1], ic[0], ic[1], ic[0], ic[1], ic[0]);
+ f[1] = _mm_set_epi16 (ic[3], ic[2], ic[3], ic[2], ic[3], ic[2], ic[3], ic[2]);
+
+ for (; i < len; i += 8) {
+ ta = _mm_load_si128 ((__m128i *) (c[0] + i));
+ tb = _mm_load_si128 ((__m128i *) (c[1] + i));
+
+ tl1 = _mm_madd_epi16 (_mm_unpacklo_epi16 (ta, tb), f[0]);
+ th1 = _mm_madd_epi16 (_mm_unpackhi_epi16 (ta, tb), f[0]);
+
+ ta = _mm_load_si128 ((__m128i *) (c[2] + i));
+ tb = _mm_load_si128 ((__m128i *) (c[3] + i));
+
+ tl2 = _mm_madd_epi16 (_mm_unpacklo_epi16 (ta, tb), f[1]);
+ th2 = _mm_madd_epi16 (_mm_unpackhi_epi16 (ta, tb), f[1]);
+
+ tl1 = _mm_add_epi32 (tl1, tl2);
+ th1 = _mm_add_epi32 (th1, th2);
+
+ tl1 = _mm_add_epi32 (tl1, _mm_set1_epi32 (1 << (PRECISION_S16 - 1)));
+ th1 = _mm_add_epi32 (th1, _mm_set1_epi32 (1 << (PRECISION_S16 - 1)));
+
+ tl1 = _mm_srai_epi32 (tl1, PRECISION_S16);
+ th1 = _mm_srai_epi32 (th1, PRECISION_S16);
+
+ tl1 = _mm_packs_epi32 (tl1, th1);
+ _mm_store_si128 ((__m128i *) (o + i), tl1);
+ }
+}
+
+void
+interpolate_gdouble_linear_sse2 (gpointer op, const gpointer ap,
+ gint len, const gpointer icp, gint astride)
+{
+ gint i;
+ gdouble *o = op, *a = ap, *ic = icp;
+ __m128d f[2], t1, t2;
+ const gdouble *c[2] = { (gdouble *) ((gint8 *) a + 0 * astride),
+ (gdouble *) ((gint8 *) a + 1 * astride)
+ };
+
+ f[0] = _mm_load1_pd (ic + 0);
+ f[1] = _mm_load1_pd (ic + 1);
+
+ for (i = 0; i < len; i += 4) {
+ t1 = _mm_mul_pd (_mm_load_pd (c[0] + i + 0), f[0]);
+ t2 = _mm_mul_pd (_mm_load_pd (c[1] + i + 0), f[1]);
+ _mm_store_pd (o + i + 0, _mm_add_pd (t1, t2));
+
+ t1 = _mm_mul_pd (_mm_load_pd (c[0] + i + 2), f[0]);
+ t2 = _mm_mul_pd (_mm_load_pd (c[1] + i + 2), f[1]);
+ _mm_store_pd (o + i + 2, _mm_add_pd (t1, t2));
+ }
+}
+
+void
+interpolate_gdouble_cubic_sse2 (gpointer op, const gpointer ap,
+ gint len, const gpointer icp, gint astride)
+{
+ gint i;
+ gdouble *o = op, *a = ap, *ic = icp;
+ __m128d f[4], t[4];
+ const gdouble *c[4] = { (gdouble *) ((gint8 *) a + 0 * astride),
+ (gdouble *) ((gint8 *) a + 1 * astride),
+ (gdouble *) ((gint8 *) a + 2 * astride),
+ (gdouble *) ((gint8 *) a + 3 * astride)
+ };
+
+ f[0] = _mm_load1_pd (ic + 0);
+ f[1] = _mm_load1_pd (ic + 1);
+ f[2] = _mm_load1_pd (ic + 2);
+ f[3] = _mm_load1_pd (ic + 3);
+
+ for (i = 0; i < len; i += 2) {
+ t[0] = _mm_mul_pd (_mm_load_pd (c[0] + i + 0), f[0]);
+ t[1] = _mm_mul_pd (_mm_load_pd (c[1] + i + 0), f[1]);
+ t[2] = _mm_mul_pd (_mm_load_pd (c[2] + i + 0), f[2]);
+ t[3] = _mm_mul_pd (_mm_load_pd (c[3] + i + 0), f[3]);
+ t[0] = _mm_add_pd (t[0], t[1]);
+ t[2] = _mm_add_pd (t[2], t[3]);
+ _mm_store_pd (o + i + 0, _mm_add_pd (t[0], t[2]));
+ }
+}
+
+#endif
diff --git a/gst-libs/gst/audio/audio-resampler-x86-sse2.h b/gst-libs/gst/audio/audio-resampler-x86-sse2.h
new file mode 100644
index 0000000..3bbf5cd
--- /dev/null
+++ b/gst-libs/gst/audio/audio-resampler-x86-sse2.h
@@ -0,0 +1,49 @@
+/* GStreamer
+ * Copyright (C) <2016> Wim Taymans <wim.taymans@gmail.com>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public
+ * License along with this library; if not, write to the
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
+ */
+
+#ifndef AUDIO_RESAMPLER_X86_SSE2_H
+#define AUDIO_RESAMPLER_X86_SSE2_H
+
+#include "audio-resampler-macros.h"
+
+DECL_RESAMPLE_FUNC (gint16, full, 1, sse2);
+DECL_RESAMPLE_FUNC (gint16, linear, 1, sse2);
+DECL_RESAMPLE_FUNC (gint16, cubic, 1, sse2);
+
+DECL_RESAMPLE_FUNC (gdouble, full, 1, sse2);
+DECL_RESAMPLE_FUNC (gdouble, linear, 1, sse2);
+DECL_RESAMPLE_FUNC (gdouble, cubic, 1, sse2);
+
+void
+interpolate_gint16_linear_sse2 (gpointer op, const gpointer ap,
+ gint len, const gpointer icp, gint astride);
+
+void
+interpolate_gint16_cubic_sse2 (gpointer op, const gpointer ap,
+ gint len, const gpointer icp, gint astride);
+
+void
+interpolate_gdouble_linear_sse2 (gpointer op, const gpointer ap,
+ gint len, const gpointer icp, gint astride);
+
+void
+interpolate_gdouble_cubic_sse2 (gpointer op, const gpointer ap,
+ gint len, const gpointer icp, gint astride);
+
+#endif /* AUDIO_RESAMPLER_X86_SSE2_H */
diff --git a/gst-libs/gst/audio/audio-resampler-x86-sse41.c b/gst-libs/gst/audio/audio-resampler-x86-sse41.c
new file mode 100644
index 0000000..ce1cc24
--- /dev/null
+++ b/gst-libs/gst/audio/audio-resampler-x86-sse41.c
@@ -0,0 +1,188 @@
+/* GStreamer
+ * Copyright (C) <2016> Wim Taymans <wim.taymans@gmail.com>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public
+ * License along with this library; if not, write to the
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
+ */
+
+#ifdef HAVE_CONFIG_H
+# include "config.h"
+#endif
+
+#include "audio-resampler-x86-sse41.h"
+
+#if 0
+#define __SSE4_1__
+#pragma GCC target("sse4.1")
+#endif
+
+#if defined (__x86_64__) && \
+ defined (HAVE_SMMINTRIN_H) && defined (HAVE_EMMINTRIN_H) && \
+ defined (__SSE4_1__)
+
+#include <emmintrin.h>
+#include <smmintrin.h>
+
+static inline void
+inner_product_gint32_full_1_sse41 (gint32 * o, const gint32 * a,
+ const gint32 * b, gint len, const gint32 * icoeff, gint bstride)
+{
+ gint i = 0;
+ __m128i sum, ta, tb;
+ gint64 res;
+
+ sum = _mm_setzero_si128 ();
+
+ for (; i < len; i += 8) {
+ ta = _mm_loadu_si128 ((__m128i *) (a + i));
+ tb = _mm_load_si128 ((__m128i *) (b + i));
+
+ sum =
+ _mm_add_epi64 (sum, _mm_mul_epi32 (_mm_unpacklo_epi32 (ta, ta),
+ _mm_unpacklo_epi32 (tb, tb)));
+ sum =
+ _mm_add_epi64 (sum, _mm_mul_epi32 (_mm_unpackhi_epi32 (ta, ta),
+ _mm_unpackhi_epi32 (tb, tb)));
+
+ ta = _mm_loadu_si128 ((__m128i *) (a + i + 4));
+ tb = _mm_load_si128 ((__m128i *) (b + i + 4));
+
+ sum =
+ _mm_add_epi64 (sum, _mm_mul_epi32 (_mm_unpacklo_epi32 (ta, ta),
+ _mm_unpacklo_epi32 (tb, tb)));
+ sum =
+ _mm_add_epi64 (sum, _mm_mul_epi32 (_mm_unpackhi_epi32 (ta, ta),
+ _mm_unpackhi_epi32 (tb, tb)));
+ }
+ sum = _mm_add_epi64 (sum, _mm_unpackhi_epi64 (sum, sum));
+ res = _mm_cvtsi128_si64 (sum);
+
+ res = (res + (1 << (PRECISION_S32 - 1))) >> PRECISION_S32;
+ *o = CLAMP (res, -(1L << 31), (1L << 31) - 1);
+}
+
+static inline void
+inner_product_gint32_linear_1_sse41 (gint32 * o, const gint32 * a,
+ const gint32 * b, gint len, const gint32 * icoeff, gint bstride)
+{
+ gint i = 0;
+ gint64 res;
+ __m128i sum[2], ta, tb;
+ __m128i f = _mm_loadu_si128 ((__m128i *) icoeff);
+ const gint32 *c[2] = { (gint32 *) ((gint8 *) b + 0 * bstride),
+ (gint32 *) ((gint8 *) b + 1 * bstride)
+ };
+
+ sum[0] = sum[1] = _mm_setzero_si128 ();
+
+ for (; i < len; i += 4) {
+ ta = _mm_loadu_si128 ((__m128i *) (a + i));
+
+ tb = _mm_load_si128 ((__m128i *) (c[0] + i));
+ sum[0] = _mm_add_epi64 (sum[0], _mm_mul_epi32 (_mm_unpacklo_epi32 (ta, ta),
+ _mm_unpacklo_epi32 (tb, tb)));
+ sum[0] = _mm_add_epi64 (sum[0], _mm_mul_epi32 (_mm_unpackhi_epi32 (ta, ta),
+ _mm_unpackhi_epi32 (tb, tb)));
+
+ tb = _mm_load_si128 ((__m128i *) (c[1] + i));
+ sum[1] = _mm_add_epi64 (sum[1], _mm_mul_epi32 (_mm_unpacklo_epi32 (ta, ta),
+ _mm_unpacklo_epi32 (tb, tb)));
+ sum[1] = _mm_add_epi64 (sum[1], _mm_mul_epi32 (_mm_unpackhi_epi32 (ta, ta),
+ _mm_unpackhi_epi32 (tb, tb)));
+ }
+ sum[0] = _mm_srli_epi64 (sum[0], PRECISION_S32);
+ sum[1] = _mm_srli_epi64 (sum[1], PRECISION_S32);
+ sum[0] =
+ _mm_mul_epi32 (sum[0], _mm_shuffle_epi32 (f, _MM_SHUFFLE (0, 0, 0, 0)));
+ sum[1] =
+ _mm_mul_epi32 (sum[1], _mm_shuffle_epi32 (f, _MM_SHUFFLE (1, 1, 1, 1)));
+ sum[0] = _mm_add_epi64 (sum[0], sum[1]);
+ sum[0] = _mm_add_epi64 (sum[0], _mm_unpackhi_epi64 (sum[0], sum[0]));
+ res = _mm_cvtsi128_si64 (sum[0]);
+
+ res = (res + (1 << (PRECISION_S32 - 1))) >> PRECISION_S32;
+ *o = CLAMP (res, -(1L << 31), (1L << 31) - 1);
+}
+
+static inline void
+inner_product_gint32_cubic_1_sse41 (gint32 * o, const gint32 * a,
+ const gint32 * b, gint len, const gint32 * icoeff, gint bstride)
+{
+ gint i = 0;
+ gint64 res;
+ __m128i sum[4], ta, tb;
+ __m128i f = _mm_loadu_si128 ((__m128i *) icoeff);
+ const gint32 *c[4] = { (gint32 *) ((gint8 *) b + 0 * bstride),
+ (gint32 *) ((gint8 *) b + 1 * bstride),
+ (gint32 *) ((gint8 *) b + 2 * bstride),
+ (gint32 *) ((gint8 *) b + 3 * bstride)
+ };
+
+ sum[0] = sum[1] = sum[2] = sum[3] = _mm_setzero_si128 ();
+
+ for (; i < len; i += 4) {
+ ta = _mm_loadu_si128 ((__m128i *) (a + i));
+
+ tb = _mm_load_si128 ((__m128i *) (c[0] + i));
+ sum[0] = _mm_add_epi64 (sum[0], _mm_mul_epi32 (_mm_unpacklo_epi32 (ta, ta),
+ _mm_unpacklo_epi32 (tb, tb)));
+ sum[0] = _mm_add_epi64 (sum[0], _mm_mul_epi32 (_mm_unpackhi_epi32 (ta, ta),
+ _mm_unpackhi_epi32 (tb, tb)));
+
+ tb = _mm_load_si128 ((__m128i *) (c[1] + i));
+ sum[1] = _mm_add_epi64 (sum[1], _mm_mul_epi32 (_mm_unpacklo_epi32 (ta, ta),
+ _mm_unpacklo_epi32 (tb, tb)));
+ sum[1] = _mm_add_epi64 (sum[1], _mm_mul_epi32 (_mm_unpackhi_epi32 (ta, ta),
+ _mm_unpackhi_epi32 (tb, tb)));
+
+ tb = _mm_load_si128 ((__m128i *) (c[2] + i));
+ sum[2] = _mm_add_epi64 (sum[2], _mm_mul_epi32 (_mm_unpacklo_epi32 (ta, ta),
+ _mm_unpacklo_epi32 (tb, tb)));
+ sum[2] = _mm_add_epi64 (sum[2], _mm_mul_epi32 (_mm_unpackhi_epi32 (ta, ta),
+ _mm_unpackhi_epi32 (tb, tb)));
+
+ tb = _mm_load_si128 ((__m128i *) (c[3] + i));
+ sum[3] = _mm_add_epi64 (sum[3], _mm_mul_epi32 (_mm_unpacklo_epi32 (ta, ta),
+ _mm_unpacklo_epi32 (tb, tb)));
+ sum[3] = _mm_add_epi64 (sum[3], _mm_mul_epi32 (_mm_unpackhi_epi32 (ta, ta),
+ _mm_unpackhi_epi32 (tb, tb)));
+ }
+ sum[0] = _mm_srli_epi64 (sum[0], PRECISION_S32);
+ sum[1] = _mm_srli_epi64 (sum[1], PRECISION_S32);
+ sum[2] = _mm_srli_epi64 (sum[2], PRECISION_S32);
+ sum[3] = _mm_srli_epi64 (sum[3], PRECISION_S32);
+ sum[0] =
+ _mm_mul_epi32 (sum[0], _mm_shuffle_epi32 (f, _MM_SHUFFLE (0, 0, 0, 0)));
+ sum[1] =
+ _mm_mul_epi32 (sum[1], _mm_shuffle_epi32 (f, _MM_SHUFFLE (1, 1, 1, 1)));
+ sum[2] =
+ _mm_mul_epi32 (sum[2], _mm_shuffle_epi32 (f, _MM_SHUFFLE (2, 2, 2, 2)));
+ sum[3] =
+ _mm_mul_epi32 (sum[3], _mm_shuffle_epi32 (f, _MM_SHUFFLE (3, 3, 3, 3)));
+ sum[0] = _mm_add_epi64 (sum[0], sum[1]);
+ sum[2] = _mm_add_epi64 (sum[2], sum[3]);
+ sum[0] = _mm_add_epi64 (sum[0], sum[2]);
+ sum[0] = _mm_add_epi64 (sum[0], _mm_unpackhi_epi64 (sum[0], sum[0]));
+ res = _mm_cvtsi128_si64 (sum[0]);
+
+ res = (res + (1 << (PRECISION_S32 - 1))) >> PRECISION_S32;
+ *o = CLAMP (res, -(1L << 31), (1L << 31) - 1);
+}
+
+MAKE_RESAMPLE_FUNC (gint32, full, 1, sse41);
+MAKE_RESAMPLE_FUNC (gint32, linear, 1, sse41);
+MAKE_RESAMPLE_FUNC (gint32, cubic, 1, sse41);
+
+#endif
diff --git a/gst-libs/gst/audio/audio-resampler-x86-sse41.h b/gst-libs/gst/audio/audio-resampler-x86-sse41.h
new file mode 100644
index 0000000..d8706b0
--- /dev/null
+++ b/gst-libs/gst/audio/audio-resampler-x86-sse41.h
@@ -0,0 +1,29 @@
+/* GStreamer
+ * Copyright (C) <2016> Wim Taymans <wim.taymans@gmail.com>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public
+ * License along with this library; if not, write to the
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
+ */
+
+#ifndef AUDIO_RESAMPLER_X86_SSE41_H
+#define AUDIO_RESAMPLER_X86_SSE41_H
+
+#include "audio-resampler-macros.h"
+
+DECL_RESAMPLE_FUNC (gint32, full, 1, sse41);
+DECL_RESAMPLE_FUNC (gint32, linear, 1, sse41);
+DECL_RESAMPLE_FUNC (gint32, cubic, 1, sse41);
+
+#endif /* AUDIO_RESAMPLER_X86_SSE41_H */
diff --git a/gst-libs/gst/audio/audio-resampler-x86.h b/gst-libs/gst/audio/audio-resampler-x86.h
index c1b73d0..47bc430 100644
--- a/gst-libs/gst/audio/audio-resampler-x86.h
+++ b/gst-libs/gst/audio/audio-resampler-x86.h
@@ -17,631 +17,16 @@
* Boston, MA 02110-1301, USA.
*/
-#if defined (HAVE_XMMINTRIN_H) && defined(__SSE__)
-#include <xmmintrin.h>
-
-static inline void
-inner_product_gfloat_full_1_sse (gfloat * o, const gfloat * a,
- const gfloat * b, gint len, const gfloat * icoeff, gint bstride)
-{
- gint i = 0;
- __m128 sum = _mm_setzero_ps ();
-
- for (; i < len; i += 8) {
- sum =
- _mm_add_ps (sum, _mm_mul_ps (_mm_loadu_ps (a + i + 0),
- _mm_load_ps (b + i + 0)));
- sum =
- _mm_add_ps (sum, _mm_mul_ps (_mm_loadu_ps (a + i + 4),
- _mm_load_ps (b + i + 4)));
- }
- sum = _mm_add_ps (sum, _mm_movehl_ps (sum, sum));
- sum = _mm_add_ss (sum, _mm_shuffle_ps (sum, sum, 0x55));
- _mm_store_ss (o, sum);
-}
-
-static inline void
-inner_product_gfloat_linear_1_sse (gfloat * o, const gfloat * a,
- const gfloat * b, gint len, const gfloat * icoeff, gint bstride)
-{
- gint i = 0;
- __m128 sum[2], t;
- const gfloat *c[2] = {(gfloat*)((gint8*)b + 0*bstride),
- (gfloat*)((gint8*)b + 1*bstride)};
-
- sum[0] = sum[1] = _mm_setzero_ps ();
-
- for (; i < len; i += 8) {
- t = _mm_loadu_ps (a + i + 0);
- sum[0] = _mm_add_ps (sum[0], _mm_mul_ps (t, _mm_load_ps (c[0] + i + 0)));
- sum[1] = _mm_add_ps (sum[1], _mm_mul_ps (t, _mm_load_ps (c[1] + i + 0)));
- t = _mm_loadu_ps (a + i + 4);
- sum[0] = _mm_add_ps (sum[0], _mm_mul_ps (t, _mm_load_ps (c[0] + i + 4)));
- sum[1] = _mm_add_ps (sum[1], _mm_mul_ps (t, _mm_load_ps (c[1] + i + 4)));
- }
- sum[0] = _mm_mul_ps (_mm_sub_ps (sum[0], sum[1]), _mm_load1_ps (icoeff));
- sum[0] = _mm_add_ps (sum[0], sum[1]);
- sum[0] = _mm_add_ps (sum[0], _mm_movehl_ps (sum[0], sum[0]));
- sum[0] = _mm_add_ss (sum[0], _mm_shuffle_ps (sum[0], sum[0], 0x55));
- _mm_store_ss (o, sum[0]);
-}
-
-static inline void
-inner_product_gfloat_cubic_1_sse (gfloat * o, const gfloat * a,
- const gfloat * b, gint len, const gfloat * icoeff, gint bstride)
-{
- gint i = 0;
- __m128 sum[4];
- __m128 t, f = _mm_loadu_ps(icoeff);
- const gfloat *c[4] = {(gfloat*)((gint8*)b + 0*bstride),
- (gfloat*)((gint8*)b + 1*bstride),
- (gfloat*)((gint8*)b + 2*bstride),
- (gfloat*)((gint8*)b + 3*bstride)};
-
- sum[0] = sum[1] = sum[2] = sum[3] = _mm_setzero_ps ();
-
- for (; i < len; i += 4) {
- t = _mm_loadu_ps (a + i);
- sum[0] = _mm_add_ps (sum[0], _mm_mul_ps (t, _mm_load_ps (c[0] + i)));
- sum[1] = _mm_add_ps (sum[1], _mm_mul_ps (t, _mm_load_ps (c[1] + i)));
- sum[2] = _mm_add_ps (sum[2], _mm_mul_ps (t, _mm_load_ps (c[2] + i)));
- sum[3] = _mm_add_ps (sum[3], _mm_mul_ps (t, _mm_load_ps (c[3] + i)));
- }
- sum[0] = _mm_mul_ps (sum[0], _mm_shuffle_ps (f, f, 0x00));
- sum[1] = _mm_mul_ps (sum[1], _mm_shuffle_ps (f, f, 0x55));
- sum[2] = _mm_mul_ps (sum[2], _mm_shuffle_ps (f, f, 0xaa));
- sum[3] = _mm_mul_ps (sum[3], _mm_shuffle_ps (f, f, 0xff));
- sum[0] = _mm_add_ps (sum[0], sum[1]);
- sum[2] = _mm_add_ps (sum[2], sum[3]);
- sum[0] = _mm_add_ps (sum[0], sum[2]);
- sum[0] = _mm_add_ps (sum[0], _mm_movehl_ps (sum[0], sum[0]));
- sum[0] = _mm_add_ss (sum[0], _mm_shuffle_ps (sum[0], sum[0], 0x55));
- _mm_store_ss (o, sum[0]);
-}
-
-MAKE_RESAMPLE_FUNC (gfloat, full, 1, sse);
-MAKE_RESAMPLE_FUNC (gfloat, linear, 1, sse);
-MAKE_RESAMPLE_FUNC (gfloat, cubic, 1, sse);
-
-static void
-interpolate_gfloat_linear_sse (gpointer op, const gpointer ap,
- gint len, const gpointer icp, gint astride)
-{
- gint i;
- gfloat *o = op, *a = ap, *ic = icp;
- __m128 f[2], t1, t2;
- const gfloat *c[2] = {(gfloat*)((gint8*)a + 0*astride),
- (gfloat*)((gint8*)a + 1*astride)};
-
- f[0] = _mm_load1_ps (ic+0);
- f[1] = _mm_load1_ps (ic+1);
-
- for (i = 0; i < len; i += 8) {
- t1 = _mm_mul_ps (_mm_load_ps (c[0] + i + 0), f[0]);
- t2 = _mm_mul_ps (_mm_load_ps (c[1] + i + 0), f[1]);
- _mm_store_ps (o + i + 0, _mm_add_ps (t1, t2));
-
- t1 = _mm_mul_ps (_mm_load_ps (c[0] + i + 4), f[0]);
- t2 = _mm_mul_ps (_mm_load_ps (c[1] + i + 4), f[1]);
- _mm_store_ps (o + i + 4, _mm_add_ps (t1, t2));
- }
-}
-
-static void
-interpolate_gfloat_cubic_sse (gpointer op, const gpointer ap,
- gint len, const gpointer icp, gint astride)
-{
- gint i;
- gfloat *o = op, *a = ap, *ic = icp;
- __m128 f[4], t[4];
- const gfloat *c[4] = {(gfloat*)((gint8*)a + 0*astride),
- (gfloat*)((gint8*)a + 1*astride),
- (gfloat*)((gint8*)a + 2*astride),
- (gfloat*)((gint8*)a + 3*astride)};
-
- f[0] = _mm_load1_ps (ic+0);
- f[1] = _mm_load1_ps (ic+1);
- f[2] = _mm_load1_ps (ic+2);
- f[3] = _mm_load1_ps (ic+3);
-
- for (i = 0; i < len; i += 4) {
- t[0] = _mm_mul_ps (_mm_load_ps (c[0] + i + 0), f[0]);
- t[1] = _mm_mul_ps (_mm_load_ps (c[1] + i + 0), f[1]);
- t[2] = _mm_mul_ps (_mm_load_ps (c[2] + i + 0), f[2]);
- t[3] = _mm_mul_ps (_mm_load_ps (c[3] + i + 0), f[3]);
- t[0] = _mm_add_ps (t[0], t[1]);
- t[2] = _mm_add_ps (t[2], t[3]);
- _mm_store_ps (o + i + 0, _mm_add_ps (t[0], t[2]));
- }
-}
-
-#endif
-
-#if defined (HAVE_EMMINTRIN_H) && defined(__SSE2__)
-#include <emmintrin.h>
-
-static inline void
-inner_product_gint16_full_1_sse2 (gint16 * o, const gint16 * a,
- const gint16 * b, gint len, const gint16 * icoeff, gint bstride)
-{
- gint i;
- __m128i sum, t;
-
- sum = _mm_setzero_si128 ();
-
- for (i = 0; i < len; i += 16) {
- t = _mm_loadu_si128 ((__m128i *) (a + i));
- sum = _mm_add_epi32 (sum, _mm_madd_epi16 (t, _mm_load_si128 ((__m128i *) (b + i + 0))));
-
- t = _mm_loadu_si128 ((__m128i *) (a + i + 8));
- sum = _mm_add_epi32 (sum, _mm_madd_epi16 (t, _mm_load_si128 ((__m128i *) (b + i + 8))));
- }
- sum = _mm_add_epi32 (sum, _mm_shuffle_epi32 (sum, _MM_SHUFFLE (2, 3, 2, 3)));
- sum = _mm_add_epi32 (sum, _mm_shuffle_epi32 (sum, _MM_SHUFFLE (1, 1, 1, 1)));
-
- sum = _mm_add_epi32 (sum, _mm_set1_epi32 (1 << (PRECISION_S16 - 1)));
- sum = _mm_srai_epi32 (sum, PRECISION_S16);
- sum = _mm_packs_epi32 (sum, sum);
- *o = _mm_extract_epi16 (sum, 0);
-}
-
-static inline void
-inner_product_gint16_linear_1_sse2 (gint16 * o, const gint16 * a,
- const gint16 * b, gint len, const gint16 * icoeff, gint bstride)
-{
- gint i = 0;
- __m128i sum[2], t;
- __m128i f = _mm_set_epi64x (0, *((gint64*)icoeff));
- const gint16 *c[2] = {(gint16*)((gint8*)b + 0*bstride),
- (gint16*)((gint8*)b + 1*bstride)};
-
- sum[0] = sum[1] = _mm_setzero_si128 ();
- f = _mm_unpacklo_epi16 (f, sum[0]);
-
- for (; i < len; i += 16) {
- t = _mm_loadu_si128 ((__m128i *) (a + i + 0));
- sum[0] = _mm_add_epi32 (sum[0], _mm_madd_epi16 (t, _mm_load_si128 ((__m128i *) (c[0] + i + 0))));
- sum[1] = _mm_add_epi32 (sum[1], _mm_madd_epi16 (t, _mm_load_si128 ((__m128i *) (c[1] + i + 0))));
-
- t = _mm_loadu_si128 ((__m128i *) (a + i + 8));
- sum[0] = _mm_add_epi32 (sum[0], _mm_madd_epi16 (t, _mm_load_si128 ((__m128i *) (c[0] + i + 8))));
- sum[1] = _mm_add_epi32 (sum[1], _mm_madd_epi16 (t, _mm_load_si128 ((__m128i *) (c[1] + i + 8))));
- }
- sum[0] = _mm_srai_epi32 (sum[0], PRECISION_S16);
- sum[1] = _mm_srai_epi32 (sum[1], PRECISION_S16);
-
- sum[0] = _mm_madd_epi16 (sum[0], _mm_shuffle_epi32 (f, _MM_SHUFFLE (0, 0, 0, 0)));
- sum[1] = _mm_madd_epi16 (sum[1], _mm_shuffle_epi32 (f, _MM_SHUFFLE (1, 1, 1, 1)));
- sum[0] = _mm_add_epi32 (sum[0], sum[1]);
-
- sum[0] = _mm_add_epi32 (sum[0], _mm_shuffle_epi32 (sum[0], _MM_SHUFFLE (2, 3, 2, 3)));
- sum[0] = _mm_add_epi32 (sum[0], _mm_shuffle_epi32 (sum[0], _MM_SHUFFLE (1, 1, 1, 1)));
-
- sum[0] = _mm_add_epi32 (sum[0], _mm_set1_epi32 (1 << (PRECISION_S16 - 1)));
- sum[0] = _mm_srai_epi32 (sum[0], PRECISION_S16);
- sum[0] = _mm_packs_epi32 (sum[0], sum[0]);
- *o = _mm_extract_epi16 (sum[0], 0);
-}
-
-static inline void
-inner_product_gint16_cubic_1_sse2 (gint16 * o, const gint16 * a,
- const gint16 * b, gint len, const gint16 * icoeff, gint bstride)
-{
- gint i = 0;
- __m128i sum[4], t[4];
- __m128i f = _mm_set_epi64x (0, *((long long*)icoeff));
- const gint16 *c[4] = {(gint16*)((gint8*)b + 0*bstride),
- (gint16*)((gint8*)b + 1*bstride),
- (gint16*)((gint8*)b + 2*bstride),
- (gint16*)((gint8*)b + 3*bstride)};
-
- sum[0] = sum[1] = sum[2] = sum[3] = _mm_setzero_si128 ();
- f = _mm_unpacklo_epi16 (f, sum[0]);
-
- for (; i < len; i += 8) {
- t[0] = _mm_loadu_si128 ((__m128i *) (a + i));
- sum[0] = _mm_add_epi32 (sum[0], _mm_madd_epi16 (t[0], _mm_load_si128 ((__m128i *) (c[0] + i))));
- sum[1] = _mm_add_epi32 (sum[1], _mm_madd_epi16 (t[0], _mm_load_si128 ((__m128i *) (c[1] + i))));
- sum[2] = _mm_add_epi32 (sum[2], _mm_madd_epi16 (t[0], _mm_load_si128 ((__m128i *) (c[2] + i))));
- sum[3] = _mm_add_epi32 (sum[3], _mm_madd_epi16 (t[0], _mm_load_si128 ((__m128i *) (c[3] + i))));
- }
- t[0] = _mm_unpacklo_epi32 (sum[0], sum[1]);
- t[1] = _mm_unpacklo_epi32 (sum[2], sum[3]);
- t[2] = _mm_unpackhi_epi32 (sum[0], sum[1]);
- t[3] = _mm_unpackhi_epi32 (sum[2], sum[3]);
-
- sum[0] = _mm_add_epi32 (_mm_unpacklo_epi64(t[0], t[1]), _mm_unpackhi_epi64(t[0], t[1]));
- sum[2] = _mm_add_epi32 (_mm_unpacklo_epi64(t[2], t[3]), _mm_unpackhi_epi64(t[2], t[3]));
- sum[0] = _mm_add_epi32 (sum[0], sum[2]);
-
- sum[0] = _mm_srai_epi32 (sum[0], PRECISION_S16);
- sum[0] = _mm_madd_epi16 (sum[0], f);
-
- sum[0] = _mm_add_epi32 (sum[0], _mm_shuffle_epi32 (sum[0], _MM_SHUFFLE (2, 3, 2, 3)));
- sum[0] = _mm_add_epi32 (sum[0], _mm_shuffle_epi32 (sum[0], _MM_SHUFFLE (1, 1, 1, 1)));
-
- sum[0] = _mm_add_epi32 (sum[0], _mm_set1_epi32 (1 << (PRECISION_S16 - 1)));
- sum[0] = _mm_srai_epi32 (sum[0], PRECISION_S16);
- sum[0] = _mm_packs_epi32 (sum[0], sum[0]);
- *o = _mm_extract_epi16 (sum[0], 0);
-}
-
-static inline void
-inner_product_gdouble_full_1_sse2 (gdouble * o, const gdouble * a,
- const gdouble * b, gint len, const gdouble * icoeff, gint bstride)
-{
- gint i = 0;
- __m128d sum = _mm_setzero_pd ();
-
- for (; i < len; i += 8) {
- sum =
- _mm_add_pd (sum, _mm_mul_pd (_mm_loadu_pd (a + i + 0),
- _mm_load_pd (b + i + 0)));
- sum =
- _mm_add_pd (sum, _mm_mul_pd (_mm_loadu_pd (a + i + 2),
- _mm_load_pd (b + i + 2)));
- sum =
- _mm_add_pd (sum, _mm_mul_pd (_mm_loadu_pd (a + i + 4),
- _mm_load_pd (b + i + 4)));
- sum =
- _mm_add_pd (sum, _mm_mul_pd (_mm_loadu_pd (a + i + 6),
- _mm_load_pd (b + i + 6)));
- }
- sum = _mm_add_sd (sum, _mm_unpackhi_pd (sum, sum));
- _mm_store_sd (o, sum);
-}
-
-static inline void
-inner_product_gdouble_linear_1_sse2 (gdouble * o, const gdouble * a,
- const gdouble * b, gint len, const gdouble * icoeff, gint bstride)
-{
- gint i = 0;
- __m128d sum[2], t;
- const gdouble *c[2] = {(gdouble*)((gint8*)b + 0*bstride),
- (gdouble*)((gint8*)b + 1*bstride)};
-
- sum[0] = sum[1] = _mm_setzero_pd ();
-
- for (; i < len; i += 4) {
- t = _mm_loadu_pd (a + i + 0);
- sum[0] = _mm_add_pd (sum[0], _mm_mul_pd (t, _mm_load_pd (c[0] + i + 0)));
- sum[1] = _mm_add_pd (sum[1], _mm_mul_pd (t, _mm_load_pd (c[1] + i + 0)));
- t = _mm_loadu_pd (a + i + 2);
- sum[0] = _mm_add_pd (sum[0], _mm_mul_pd (t, _mm_load_pd (c[0] + i + 2)));
- sum[1] = _mm_add_pd (sum[1], _mm_mul_pd (t, _mm_load_pd (c[1] + i + 2)));
- }
- sum[0] = _mm_mul_pd (_mm_sub_pd (sum[0], sum[1]), _mm_load1_pd (icoeff));
- sum[0] = _mm_add_pd (sum[0], sum[1]);
- sum[0] = _mm_add_sd (sum[0], _mm_unpackhi_pd (sum[0], sum[0]));
- _mm_store_sd (o, sum[0]);
-}
-
-static inline void
-inner_product_gdouble_cubic_1_sse2 (gdouble * o, const gdouble * a,
- const gdouble * b, gint len, const gdouble * icoeff, gint bstride)
-{
- gint i;
- __m128d f[2], sum[4], t;
- const gdouble *c[4] = {(gdouble*)((gint8*)b + 0*bstride),
- (gdouble*)((gint8*)b + 1*bstride),
- (gdouble*)((gint8*)b + 2*bstride),
- (gdouble*)((gint8*)b + 3*bstride)};
-
- f[0] = _mm_loadu_pd (icoeff + 0);
- f[1] = _mm_loadu_pd (icoeff + 2);
- sum[0] = sum[1] = sum[2] = sum[3] = _mm_setzero_pd ();
-
- for (i = 0; i < len; i += 2) {
- t = _mm_loadu_pd (a + i + 0);
- sum[0] = _mm_add_pd (sum[0], _mm_mul_pd (t, _mm_load_pd (c[0] + i)));
- sum[1] = _mm_add_pd (sum[1], _mm_mul_pd (t, _mm_load_pd (c[1] + i)));
- sum[2] = _mm_add_pd (sum[2], _mm_mul_pd (t, _mm_load_pd (c[2] + i)));
- sum[3] = _mm_add_pd (sum[3], _mm_mul_pd (t, _mm_load_pd (c[3] + i)));
- }
- sum[0] = _mm_mul_pd (sum[0], _mm_shuffle_pd (f[0], f[0], _MM_SHUFFLE2 (0, 0)));
- sum[1] = _mm_mul_pd (sum[1], _mm_shuffle_pd (f[0], f[0], _MM_SHUFFLE2 (1, 1)));
- sum[2] = _mm_mul_pd (sum[2], _mm_shuffle_pd (f[1], f[1], _MM_SHUFFLE2 (0, 0)));
- sum[3] = _mm_mul_pd (sum[3], _mm_shuffle_pd (f[1], f[1], _MM_SHUFFLE2 (1, 1)));
- sum[0] = _mm_add_pd (sum[0], sum[1]);
- sum[2] = _mm_add_pd (sum[2], sum[3]);
- sum[0] = _mm_add_pd (sum[0], sum[2]);
- sum[0] = _mm_add_sd (sum[0], _mm_unpackhi_pd (sum[0], sum[0]));
- _mm_store_sd (o, sum[0]);
-}
-
-MAKE_RESAMPLE_FUNC (gint16, full, 1, sse2);
-MAKE_RESAMPLE_FUNC (gint16, linear, 1, sse2);
-MAKE_RESAMPLE_FUNC (gint16, cubic, 1, sse2);
-
-MAKE_RESAMPLE_FUNC (gdouble, full, 1, sse2);
-MAKE_RESAMPLE_FUNC (gdouble, linear, 1, sse2);
-MAKE_RESAMPLE_FUNC (gdouble, cubic, 1, sse2);
-
-static inline void
-interpolate_gint16_linear_sse2 (gpointer op, const gpointer ap,
- gint len, const gpointer icp, gint astride)
-{
- gint i = 0;
- gint16 *o = op, *a = ap, *ic = icp;
- __m128i ta, tb, t1, t2;
- __m128i f = _mm_set_epi64x (0, *((gint64*)ic));
- const gint16 *c[2] = {(gint16*)((gint8*)a + 0*astride),
- (gint16*)((gint8*)a + 1*astride)};
-
- f = _mm_unpacklo_epi32 (f, f);
- f = _mm_unpacklo_epi64 (f, f);
-
- for (; i < len; i += 8) {
- ta = _mm_load_si128 ((__m128i *) (c[0] + i));
- tb = _mm_load_si128 ((__m128i *) (c[1] + i));
-
- t1 = _mm_madd_epi16 (_mm_unpacklo_epi16 (ta, tb), f);
- t2 = _mm_madd_epi16 (_mm_unpackhi_epi16 (ta, tb), f);
-
- t1 = _mm_add_epi32 (t1, _mm_set1_epi32 (1 << (PRECISION_S16 - 1)));
- t2 = _mm_add_epi32 (t2, _mm_set1_epi32 (1 << (PRECISION_S16 - 1)));
-
- t1 = _mm_srai_epi32 (t1, PRECISION_S16);
- t2 = _mm_srai_epi32 (t2, PRECISION_S16);
-
- t1 = _mm_packs_epi32 (t1, t2);
- _mm_store_si128 ((__m128i *) (o + i), t1);
- }
-}
-
-static inline void
-interpolate_gint16_cubic_sse2 (gpointer op, const gpointer ap,
- gint len, const gpointer icp, gint astride)
-{
- gint i = 0;
- gint16 *o = op, *a = ap, *ic = icp;
- __m128i ta, tb, tl1, tl2, th1, th2;
- __m128i f[2];
- const gint16 *c[4] = {(gint16*)((gint8*)a + 0*astride),
- (gint16*)((gint8*)a + 1*astride),
- (gint16*)((gint8*)a + 2*astride),
- (gint16*)((gint8*)a + 3*astride)};
-
- f[0] = _mm_set_epi16 (ic[1], ic[0], ic[1], ic[0], ic[1], ic[0], ic[1], ic[0]);
- f[1] = _mm_set_epi16 (ic[3], ic[2], ic[3], ic[2], ic[3], ic[2], ic[3], ic[2]);
-
- for (; i < len; i += 8) {
- ta = _mm_load_si128 ((__m128i *) (c[0] + i));
- tb = _mm_load_si128 ((__m128i *) (c[1] + i));
-
- tl1 = _mm_madd_epi16 (_mm_unpacklo_epi16 (ta, tb), f[0]);
- th1 = _mm_madd_epi16 (_mm_unpackhi_epi16 (ta, tb), f[0]);
-
- ta = _mm_load_si128 ((__m128i *) (c[2] + i));
- tb = _mm_load_si128 ((__m128i *) (c[3] + i));
-
- tl2 = _mm_madd_epi16 (_mm_unpacklo_epi16 (ta, tb), f[1]);
- th2 = _mm_madd_epi16 (_mm_unpackhi_epi16 (ta, tb), f[1]);
-
- tl1 = _mm_add_epi32 (tl1, tl2);
- th1 = _mm_add_epi32 (th1, th2);
-
- tl1 = _mm_add_epi32 (tl1, _mm_set1_epi32 (1 << (PRECISION_S16 - 1)));
- th1 = _mm_add_epi32 (th1, _mm_set1_epi32 (1 << (PRECISION_S16 - 1)));
-
- tl1 = _mm_srai_epi32 (tl1, PRECISION_S16);
- th1 = _mm_srai_epi32 (th1, PRECISION_S16);
-
- tl1 = _mm_packs_epi32 (tl1, th1);
- _mm_store_si128 ((__m128i *) (o + i), tl1);
- }
-}
-
-static void
-interpolate_gdouble_linear_sse2 (gpointer op, const gpointer ap,
- gint len, const gpointer icp, gint astride)
-{
- gint i;
- gdouble *o = op, *a = ap, *ic = icp;
- __m128d f[2], t1, t2;
- const gdouble *c[2] = {(gdouble*)((gint8*)a + 0*astride),
- (gdouble*)((gint8*)a + 1*astride)};
-
- f[0] = _mm_load1_pd (ic+0);
- f[1] = _mm_load1_pd (ic+1);
-
- for (i = 0; i < len; i += 4) {
- t1 = _mm_mul_pd (_mm_load_pd (c[0] + i + 0), f[0]);
- t2 = _mm_mul_pd (_mm_load_pd (c[1] + i + 0), f[1]);
- _mm_store_pd (o + i + 0, _mm_add_pd (t1, t2));
-
- t1 = _mm_mul_pd (_mm_load_pd (c[0] + i + 2), f[0]);
- t2 = _mm_mul_pd (_mm_load_pd (c[1] + i + 2), f[1]);
- _mm_store_pd (o + i + 2, _mm_add_pd (t1, t2));
- }
-}
-
-static void
-interpolate_gdouble_cubic_sse2 (gpointer op, const gpointer ap,
- gint len, const gpointer icp, gint astride)
-{
- gint i;
- gdouble *o = op, *a = ap, *ic = icp;
- __m128d f[4], t[4];
- const gdouble *c[4] = {(gdouble*)((gint8*)a + 0*astride),
- (gdouble*)((gint8*)a + 1*astride),
- (gdouble*)((gint8*)a + 2*astride),
- (gdouble*)((gint8*)a + 3*astride)};
-
- f[0] = _mm_load1_pd (ic+0);
- f[1] = _mm_load1_pd (ic+1);
- f[2] = _mm_load1_pd (ic+2);
- f[3] = _mm_load1_pd (ic+3);
-
- for (i = 0; i < len; i += 2) {
- t[0] = _mm_mul_pd (_mm_load_pd (c[0] + i + 0), f[0]);
- t[1] = _mm_mul_pd (_mm_load_pd (c[1] + i + 0), f[1]);
- t[2] = _mm_mul_pd (_mm_load_pd (c[2] + i + 0), f[2]);
- t[3] = _mm_mul_pd (_mm_load_pd (c[3] + i + 0), f[3]);
- t[0] = _mm_add_pd (t[0], t[1]);
- t[2] = _mm_add_pd (t[2], t[3]);
- _mm_store_pd (o + i + 0, _mm_add_pd (t[0], t[2]));
- }
-}
-
-#endif
-
-#if 0
-#define __SSE4_1__
-#pragma GCC target("sse4.1")
-#endif
-
-#if defined (HAVE_SMMINTRIN_H) && defined(__SSE4_1__)
-#include <smmintrin.h>
-
-static inline void
-inner_product_gint32_full_1_sse41 (gint32 * o, const gint32 * a,
- const gint32 * b, gint len, const gint32 * icoeff, gint bstride)
-{
- gint i = 0;
- __m128i sum, ta, tb;
- gint64 res;
-
- sum = _mm_setzero_si128 ();
-
- for (; i < len; i += 8) {
- ta = _mm_loadu_si128 ((__m128i *) (a + i));
- tb = _mm_load_si128 ((__m128i *) (b + i));
-
- sum =
- _mm_add_epi64 (sum, _mm_mul_epi32 (_mm_unpacklo_epi32 (ta, ta),
- _mm_unpacklo_epi32 (tb, tb)));
- sum =
- _mm_add_epi64 (sum, _mm_mul_epi32 (_mm_unpackhi_epi32 (ta, ta),
- _mm_unpackhi_epi32 (tb, tb)));
-
- ta = _mm_loadu_si128 ((__m128i *) (a + i + 4));
- tb = _mm_load_si128 ((__m128i *) (b + i + 4));
-
- sum =
- _mm_add_epi64 (sum, _mm_mul_epi32 (_mm_unpacklo_epi32 (ta, ta),
- _mm_unpacklo_epi32 (tb, tb)));
- sum =
- _mm_add_epi64 (sum, _mm_mul_epi32 (_mm_unpackhi_epi32 (ta, ta),
- _mm_unpackhi_epi32 (tb, tb)));
- }
- sum = _mm_add_epi64 (sum, _mm_unpackhi_epi64 (sum, sum));
- res = _mm_cvtsi128_si64 (sum);
-
- res = (res + (1 << (PRECISION_S32 - 1))) >> PRECISION_S32;
- *o = CLAMP (res, -(1L << 31), (1L << 31) - 1);
-}
-
-static inline void
-inner_product_gint32_linear_1_sse41 (gint32 * o, const gint32 * a,
- const gint32 * b, gint len, const gint32 * icoeff, gint bstride)
-{
- gint i = 0;
- gint64 res;
- __m128i sum[2], ta, tb;
- __m128i f = _mm_loadu_si128 ((__m128i *)icoeff);
- const gint32 *c[2] = {(gint32*)((gint8*)b + 0*bstride),
- (gint32*)((gint8*)b + 1*bstride)};
-
- sum[0] = sum[1] = _mm_setzero_si128 ();
-
- for (; i < len; i += 4) {
- ta = _mm_loadu_si128 ((__m128i *)(a + i));
-
- tb = _mm_load_si128 ((__m128i *)(c[0] + i));
- sum[0] = _mm_add_epi64 (sum[0], _mm_mul_epi32 (_mm_unpacklo_epi32 (ta, ta),
- _mm_unpacklo_epi32 (tb, tb)));
- sum[0] = _mm_add_epi64 (sum[0], _mm_mul_epi32 (_mm_unpackhi_epi32 (ta, ta),
- _mm_unpackhi_epi32 (tb, tb)));
-
- tb = _mm_load_si128 ((__m128i *)(c[1] + i));
- sum[1] = _mm_add_epi64 (sum[1], _mm_mul_epi32 (_mm_unpacklo_epi32 (ta, ta),
- _mm_unpacklo_epi32 (tb, tb)));
- sum[1] = _mm_add_epi64 (sum[1], _mm_mul_epi32 (_mm_unpackhi_epi32 (ta, ta),
- _mm_unpackhi_epi32 (tb, tb)));
- }
- sum[0] = _mm_srli_epi64 (sum[0], PRECISION_S32);
- sum[1] = _mm_srli_epi64 (sum[1], PRECISION_S32);
- sum[0] = _mm_mul_epi32 (sum[0], _mm_shuffle_epi32 (f, _MM_SHUFFLE (0, 0, 0, 0)));
- sum[1] = _mm_mul_epi32 (sum[1], _mm_shuffle_epi32 (f, _MM_SHUFFLE (1, 1, 1, 1)));
- sum[0] = _mm_add_epi64 (sum[0], sum[1]);
- sum[0] = _mm_add_epi64 (sum[0], _mm_unpackhi_epi64 (sum[0], sum[0]));
- res = _mm_cvtsi128_si64 (sum[0]);
-
- res = (res + (1 << (PRECISION_S32 - 1))) >> PRECISION_S32;
- *o = CLAMP (res, -(1L << 31), (1L << 31) - 1);
-}
-
-static inline void
-inner_product_gint32_cubic_1_sse41 (gint32 * o, const gint32 * a,
- const gint32 * b, gint len, const gint32 * icoeff, gint bstride)
-{
- gint i = 0;
- gint64 res;
- __m128i sum[4], ta, tb;
- __m128i f = _mm_loadu_si128 ((__m128i *)icoeff);
- const gint32 *c[4] = {(gint32*)((gint8*)b + 0*bstride),
- (gint32*)((gint8*)b + 1*bstride),
- (gint32*)((gint8*)b + 2*bstride),
- (gint32*)((gint8*)b + 3*bstride)};
-
- sum[0] = sum[1] = sum[2] = sum[3] = _mm_setzero_si128 ();
-
- for (; i < len; i += 4) {
- ta = _mm_loadu_si128 ((__m128i *)(a + i));
-
- tb = _mm_load_si128 ((__m128i *)(c[0] + i));
- sum[0] = _mm_add_epi64 (sum[0], _mm_mul_epi32 (_mm_unpacklo_epi32 (ta, ta),
- _mm_unpacklo_epi32 (tb, tb)));
- sum[0] = _mm_add_epi64 (sum[0], _mm_mul_epi32 (_mm_unpackhi_epi32 (ta, ta),
- _mm_unpackhi_epi32 (tb, tb)));
-
- tb = _mm_load_si128 ((__m128i *)(c[1] + i));
- sum[1] = _mm_add_epi64 (sum[1], _mm_mul_epi32 (_mm_unpacklo_epi32 (ta, ta),
- _mm_unpacklo_epi32 (tb, tb)));
- sum[1] = _mm_add_epi64 (sum[1], _mm_mul_epi32 (_mm_unpackhi_epi32 (ta, ta),
- _mm_unpackhi_epi32 (tb, tb)));
-
- tb = _mm_load_si128 ((__m128i *)(c[2] + i));
- sum[2] = _mm_add_epi64 (sum[2], _mm_mul_epi32 (_mm_unpacklo_epi32 (ta, ta),
- _mm_unpacklo_epi32 (tb, tb)));
- sum[2] = _mm_add_epi64 (sum[2], _mm_mul_epi32 (_mm_unpackhi_epi32 (ta, ta),
- _mm_unpackhi_epi32 (tb, tb)));
-
- tb = _mm_load_si128 ((__m128i *)(c[3] + i));
- sum[3] = _mm_add_epi64 (sum[3], _mm_mul_epi32 (_mm_unpacklo_epi32 (ta, ta),
- _mm_unpacklo_epi32 (tb, tb)));
- sum[3] = _mm_add_epi64 (sum[3], _mm_mul_epi32 (_mm_unpackhi_epi32 (ta, ta),
- _mm_unpackhi_epi32 (tb, tb)));
- }
- sum[0] = _mm_srli_epi64 (sum[0], PRECISION_S32);
- sum[1] = _mm_srli_epi64 (sum[1], PRECISION_S32);
- sum[2] = _mm_srli_epi64 (sum[2], PRECISION_S32);
- sum[3] = _mm_srli_epi64 (sum[3], PRECISION_S32);
- sum[0] = _mm_mul_epi32 (sum[0], _mm_shuffle_epi32 (f, _MM_SHUFFLE (0, 0, 0, 0)));
- sum[1] = _mm_mul_epi32 (sum[1], _mm_shuffle_epi32 (f, _MM_SHUFFLE (1, 1, 1, 1)));
- sum[2] = _mm_mul_epi32 (sum[2], _mm_shuffle_epi32 (f, _MM_SHUFFLE (2, 2, 2, 2)));
- sum[3] = _mm_mul_epi32 (sum[3], _mm_shuffle_epi32 (f, _MM_SHUFFLE (3, 3, 3, 3)));
- sum[0] = _mm_add_epi64 (sum[0], sum[1]);
- sum[2] = _mm_add_epi64 (sum[2], sum[3]);
- sum[0] = _mm_add_epi64 (sum[0], sum[2]);
- sum[0] = _mm_add_epi64 (sum[0], _mm_unpackhi_epi64 (sum[0], sum[0]));
- res = _mm_cvtsi128_si64 (sum[0]);
-
- res = (res + (1 << (PRECISION_S32 - 1))) >> PRECISION_S32;
- *o = CLAMP (res, -(1L << 31), (1L << 31) - 1);
-}
-
-MAKE_RESAMPLE_FUNC (gint32, full, 1, sse41);
-MAKE_RESAMPLE_FUNC (gint32, linear, 1, sse41);
-MAKE_RESAMPLE_FUNC (gint32, cubic, 1, sse41);
-#endif
+#include "audio-resampler-macros.h"
+#include "audio-resampler-x86-sse.h"
+#include "audio-resampler-x86-sse2.h"
+#include "audio-resampler-x86-sse41.h"
static void
audio_resampler_check_x86 (const gchar *option)
{
if (!strcmp (option, "sse")) {
-#if defined (HAVE_XMMINTRIN_H) && defined(__SSE__)
+#if defined (HAVE_XMMINTRIN_H) && HAVE_SSE
GST_DEBUG ("enable SSE optimisations");
resample_gfloat_full_1 = resample_gfloat_full_1_sse;
resample_gfloat_linear_1 = resample_gfloat_linear_1_sse;
@@ -653,7 +38,7 @@
GST_DEBUG ("SSE optimisations not enabled");
#endif
} else if (!strcmp (option, "sse2")) {
-#if defined (HAVE_EMMINTRIN_H) && defined(__SSE2__)
+#if defined (HAVE_EMMINTRIN_H) && HAVE_SSE2
GST_DEBUG ("enable SSE2 optimisations");
resample_gint16_full_1 = resample_gint16_full_1_sse2;
resample_gint16_linear_1 = resample_gint16_linear_1_sse2;
@@ -672,7 +57,9 @@
GST_DEBUG ("SSE2 optimisations not enabled");
#endif
} else if (!strcmp (option, "sse41")) {
-#if defined (HAVE_SMMINTRIN_H) && defined(__SSE4_1__)
+#if defined (__x86_64__) && \
+ defined (HAVE_SMMINTRIN_H) && defined (HAVE_EMMINTRIN_H) && \
+ HAVE_SSE41
GST_DEBUG ("enable SSE41 optimisations");
resample_gint32_full_1 = resample_gint32_full_1_sse41;
resample_gint32_linear_1 = resample_gint32_linear_1_sse41;
diff --git a/gst-libs/gst/audio/audio-resampler.c b/gst-libs/gst/audio/audio-resampler.c
index 4e6ef43..8cb562c 100644
--- a/gst-libs/gst/audio/audio-resampler.c
+++ b/gst-libs/gst/audio/audio-resampler.c
@@ -30,99 +30,13 @@
#endif
#include "audio-resampler.h"
-
-/* Contains a collection of all things found in other resamplers:
- * speex (filter construction, optimizations), ffmpeg (fixed phase filter, blackman filter),
- * SRC (linear interpolation, fixed precomputed tables),...
- *
- * Supports:
- * - S16, S32, F32 and F64 formats
- * - nearest, linear and cubic interpolation
- * - sinc based interpolation with kaiser or blackman-nutall windows
- * - fully configurable kaiser parameters
- * - dynamic linear or cubic interpolation of filter table, this can
- * use less memory but more CPU
- * - full filter table, generated from optionally linear or cubic
- * interpolation of filter table
- * - fixed filter table size with nearest neighbour phase, optionally
- * using a precomputed tables
- * - dynamic samplerate changes
- * - x86 and neon optimizations
- */
-typedef void (*ConvertTapsFunc) (gdouble * tmp_taps, gpointer taps,
- gdouble weight, gint n_taps);
-typedef void (*InterpolateFunc) (gpointer o, const gpointer a, gint len,
- const gpointer icoeff, gint astride);
-typedef void (*ResampleFunc) (GstAudioResampler * resampler, gpointer in[],
- gsize in_len, gpointer out[], gsize out_len, gsize * consumed);
-typedef void (*DeinterleaveFunc) (GstAudioResampler * resampler,
- gpointer * sbuf, gpointer in[], gsize in_frames);
+#include "audio-resampler-private.h"
+#include "audio-resampler-macros.h"
#define MEM_ALIGN(m,a) ((gint8 *)((guintptr)((gint8 *)(m) + ((a)-1)) & ~((a)-1)))
#define ALIGN 16
#define TAPS_OVERREAD 16
-struct _GstAudioResampler
-{
- GstAudioResamplerMethod method;
- GstAudioResamplerFlags flags;
- GstAudioFormat format;
- GstStructure *options;
- gint format_index;
- gint channels;
- gint in_rate;
- gint out_rate;
-
- gint bps;
- gint ostride;
-
- GstAudioResamplerFilterMode filter_mode;
- guint filter_threshold;
- GstAudioResamplerFilterInterpolation filter_interpolation;
-
- gdouble cutoff;
- gdouble kaiser_beta;
- /* for cubic */
- gdouble b, c;
-
- /* temp taps */
- gpointer tmp_taps;
-
- /* oversampled main filter table */
- gint oversample;
- gint n_taps;
- gpointer taps;
- gpointer taps_mem;
- gsize taps_stride;
- gint n_phases;
- gint alloc_taps;
- gint alloc_phases;
-
- /* cached taps */
- gpointer *cached_phases;
- gpointer cached_taps;
- gpointer cached_taps_mem;
- gsize cached_taps_stride;
-
- ConvertTapsFunc convert_taps;
- InterpolateFunc interpolate;
- DeinterleaveFunc deinterleave;
- ResampleFunc resample;
-
- gint blocks;
- gint inc;
- gint samp_inc;
- gint samp_frac;
- gint samp_index;
- gint samp_phase;
- gint skip;
-
- gpointer samples;
- gsize samples_len;
- gsize samples_avail;
- gpointer *sbuf;
-};
-
GST_DEBUG_CATEGORY_STATIC (audio_resampler_debug);
#define GST_CAT_DEFAULT audio_resampler_debug
@@ -303,9 +217,6 @@
return s * bessel (beta * sqrt (MAX (1 - w * w, 0)));
}
-#define PRECISION_S16 15
-#define PRECISION_S32 31
-
#define MAKE_CONVERT_TAPS_INT_FUNC(type, precision) \
static void \
convert_taps_##type##_c (gdouble *tmp_taps, gpointer taps, \
@@ -593,9 +504,7 @@
#define get_taps_gdouble_nearest get_taps_gdouble_nearest
#define GET_TAPS_FULL_FUNC(type) \
-static inline gpointer \
-get_taps_##type##_full (GstAudioResampler * resampler, \
- gint *samp_index, gint *samp_phase, type icoeff[4]) \
+DECL_GET_TAPS_FULL_FUNC(type) \
{ \
gpointer res; \
gint out_rate = resampler->out_rate; \
@@ -659,9 +568,7 @@
GET_TAPS_FULL_FUNC (gdouble);
#define GET_TAPS_INTERPOLATE_FUNC(type,inter) \
-static inline gpointer \
-get_taps_##type##_##inter (GstAudioResampler * resampler, \
- gint *samp_index, gint *samp_phase, type icoeff[4]) \
+DECL_GET_TAPS_INTERPOLATE_FUNC (type, inter) \
{ \
gpointer res; \
gint out_rate = resampler->out_rate; \
@@ -852,67 +759,25 @@
INNER_PRODUCT_FLOAT_CUBIC_FUNC (gfloat);
INNER_PRODUCT_FLOAT_CUBIC_FUNC (gdouble);
-#define MAKE_RESAMPLE_FUNC(type,inter,channels,arch) \
-static void \
-resample_ ##type## _ ##inter## _ ##channels## _ ##arch (GstAudioResampler * resampler, \
- gpointer in[], gsize in_len, gpointer out[], gsize out_len, \
- gsize * consumed) \
-{ \
- gint c, di = 0; \
- gint n_taps = resampler->n_taps; \
- gint blocks = resampler->blocks; \
- gint ostride = resampler->ostride; \
- gint taps_stride = resampler->taps_stride; \
- gint samp_index = 0; \
- gint samp_phase = 0; \
- \
- for (c = 0; c < blocks; c++) { \
- type *ip = in[c]; \
- type *op = ostride == 1 ? out[c] : (type *)out[0] + c; \
- \
- samp_index = resampler->samp_index; \
- samp_phase = resampler->samp_phase; \
- \
- for (di = 0; di < out_len; di++) { \
- type *ipp, icoeff[4], *taps; \
- \
- ipp = &ip[samp_index * channels]; \
- \
- taps = get_taps_ ##type##_##inter \
- (resampler, &samp_index, &samp_phase, icoeff); \
- inner_product_ ##type##_##inter##_##channels##_##arch \
- (op, ipp, taps, n_taps, icoeff, taps_stride); \
- op += ostride; \
- } \
- if (in_len > samp_index) \
- memmove (ip, &ip[samp_index * channels], \
- (in_len - samp_index) * sizeof(type) * channels); \
- } \
- *consumed = samp_index - resampler->samp_index; \
- \
- resampler->samp_index = 0; \
- resampler->samp_phase = samp_phase; \
-}
+MAKE_RESAMPLE_FUNC_STATIC (gint16, nearest, 1, c);
+MAKE_RESAMPLE_FUNC_STATIC (gint32, nearest, 1, c);
+MAKE_RESAMPLE_FUNC_STATIC (gfloat, nearest, 1, c);
+MAKE_RESAMPLE_FUNC_STATIC (gdouble, nearest, 1, c);
-MAKE_RESAMPLE_FUNC (gint16, nearest, 1, c);
-MAKE_RESAMPLE_FUNC (gint32, nearest, 1, c);
-MAKE_RESAMPLE_FUNC (gfloat, nearest, 1, c);
-MAKE_RESAMPLE_FUNC (gdouble, nearest, 1, c);
+MAKE_RESAMPLE_FUNC_STATIC (gint16, full, 1, c);
+MAKE_RESAMPLE_FUNC_STATIC (gint32, full, 1, c);
+MAKE_RESAMPLE_FUNC_STATIC (gfloat, full, 1, c);
+MAKE_RESAMPLE_FUNC_STATIC (gdouble, full, 1, c);
-MAKE_RESAMPLE_FUNC (gint16, full, 1, c);
-MAKE_RESAMPLE_FUNC (gint32, full, 1, c);
-MAKE_RESAMPLE_FUNC (gfloat, full, 1, c);
-MAKE_RESAMPLE_FUNC (gdouble, full, 1, c);
+MAKE_RESAMPLE_FUNC_STATIC (gint16, linear, 1, c);
+MAKE_RESAMPLE_FUNC_STATIC (gint32, linear, 1, c);
+MAKE_RESAMPLE_FUNC_STATIC (gfloat, linear, 1, c);
+MAKE_RESAMPLE_FUNC_STATIC (gdouble, linear, 1, c);
-MAKE_RESAMPLE_FUNC (gint16, linear, 1, c);
-MAKE_RESAMPLE_FUNC (gint32, linear, 1, c);
-MAKE_RESAMPLE_FUNC (gfloat, linear, 1, c);
-MAKE_RESAMPLE_FUNC (gdouble, linear, 1, c);
-
-MAKE_RESAMPLE_FUNC (gint16, cubic, 1, c);
-MAKE_RESAMPLE_FUNC (gint32, cubic, 1, c);
-MAKE_RESAMPLE_FUNC (gfloat, cubic, 1, c);
-MAKE_RESAMPLE_FUNC (gdouble, cubic, 1, c);
+MAKE_RESAMPLE_FUNC_STATIC (gint16, cubic, 1, c);
+MAKE_RESAMPLE_FUNC_STATIC (gint32, cubic, 1, c);
+MAKE_RESAMPLE_FUNC_STATIC (gfloat, cubic, 1, c);
+MAKE_RESAMPLE_FUNC_STATIC (gdouble, cubic, 1, c);
static ResampleFunc resample_funcs[] = {
resample_gint16_nearest_1_c,
@@ -1450,7 +1315,6 @@
/**
* gst_audio_resampler_new:
- * @resampler: a #GstAudioResampler
* @method: a #GstAudioResamplerMethod
* @flags: #GstAudioResamplerFlags
* @in_rate: input rate
@@ -1459,7 +1323,7 @@
*
* Make a new resampler.
*
- * Returns: %TRUE on success
+ * Returns: (skip) (transfer full): %TRUE on success
*/
GstAudioResampler *
gst_audio_resampler_new (GstAudioResamplerMethod method,
diff --git a/gst-libs/gst/fft/Makefile.in b/gst-libs/gst/fft/Makefile.in
index 0dbd455..bff59a0 100644
--- a/gst-libs/gst/fft/Makefile.in
+++ b/gst-libs/gst/fft/Makefile.in
@@ -468,6 +468,9 @@
SED = @SED@
SET_MAKE = @SET_MAKE@
SHELL = @SHELL@
+SSE2_CFLAGS = @SSE2_CFLAGS@
+SSE41_CFLAGS = @SSE41_CFLAGS@
+SSE_CFLAGS = @SSE_CFLAGS@
STRIP = @STRIP@
THEORA_CFLAGS = @THEORA_CFLAGS@
THEORA_LIBS = @THEORA_LIBS@
diff --git a/gst-libs/gst/pbutils/Makefile.in b/gst-libs/gst/pbutils/Makefile.in
index b009437..cfe33ad 100644
--- a/gst-libs/gst/pbutils/Makefile.in
+++ b/gst-libs/gst/pbutils/Makefile.in
@@ -485,6 +485,9 @@
SED = @SED@
SET_MAKE = @SET_MAKE@
SHELL = @SHELL@
+SSE2_CFLAGS = @SSE2_CFLAGS@
+SSE41_CFLAGS = @SSE41_CFLAGS@
+SSE_CFLAGS = @SSE_CFLAGS@
STRIP = @STRIP@
THEORA_CFLAGS = @THEORA_CFLAGS@
THEORA_LIBS = @THEORA_LIBS@
diff --git a/gst-libs/gst/pbutils/gstdiscoverer.c b/gst-libs/gst/pbutils/gstdiscoverer.c
index 45de5f5..d155323 100644
--- a/gst-libs/gst/pbutils/gstdiscoverer.c
+++ b/gst-libs/gst/pbutils/gstdiscoverer.c
@@ -1388,6 +1388,7 @@
*/
if (dc->priv->current_info->misc)
gst_structure_free (dc->priv->current_info->misc);
+ dc->priv->current_info->misc = gst_structure_copy (structure);
g_ptr_array_add (dc->priv->current_info->missing_elements_details,
gst_missing_plugin_message_get_installer_detail (msg));
} else if (sttype == _STREAM_TOPOLOGY_QUARK) {
diff --git a/gst-libs/gst/riff/Makefile.in b/gst-libs/gst/riff/Makefile.in
index 0a15806..dd79477 100644
--- a/gst-libs/gst/riff/Makefile.in
+++ b/gst-libs/gst/riff/Makefile.in
@@ -437,6 +437,9 @@
SED = @SED@
SET_MAKE = @SET_MAKE@
SHELL = @SHELL@
+SSE2_CFLAGS = @SSE2_CFLAGS@
+SSE41_CFLAGS = @SSE41_CFLAGS@
+SSE_CFLAGS = @SSE_CFLAGS@
STRIP = @STRIP@
THEORA_CFLAGS = @THEORA_CFLAGS@
THEORA_LIBS = @THEORA_LIBS@
diff --git a/gst-libs/gst/rtp/Makefile.in b/gst-libs/gst/rtp/Makefile.in
index cefde2e..df06537 100644
--- a/gst-libs/gst/rtp/Makefile.in
+++ b/gst-libs/gst/rtp/Makefile.in
@@ -476,6 +476,9 @@
SED = @SED@
SET_MAKE = @SET_MAKE@
SHELL = @SHELL@
+SSE2_CFLAGS = @SSE2_CFLAGS@
+SSE41_CFLAGS = @SSE41_CFLAGS@
+SSE_CFLAGS = @SSE_CFLAGS@
STRIP = @STRIP@
THEORA_CFLAGS = @THEORA_CFLAGS@
THEORA_LIBS = @THEORA_LIBS@
diff --git a/gst-libs/gst/rtp/gstrtpbuffer.h b/gst-libs/gst/rtp/gstrtpbuffer.h
index 46a6e9c..5a9049f 100644
--- a/gst-libs/gst/rtp/gstrtpbuffer.h
+++ b/gst-libs/gst/rtp/gstrtpbuffer.h
@@ -151,6 +151,25 @@
guint size);
/**
+ * GstRTPBufferFlags:
+ * @GST_RTP_BUFFER_FLAG_RETRANSMISSION: The #GstBuffer was once wrapped
+ * in a retransmitted packet as specified by RFC 4588.
+ * @GST_RTP_BUFFER_FLAG_LAST: Offset to define more flags.
+ *
+ * Additional RTP buffer flags. These flags can potentially be used on any
+ * buffers carrying RTP packets.
+ *
+ * Note that these are only valid for #GstCaps of type: application/x-rtp (x-rtcp).
+ * They can conflict with other extended buffer flags.
+ *
+ * Since: 1.10
+ */
+typedef enum {
+ GST_RTP_BUFFER_FLAG_RETRANSMISSION = (GST_BUFFER_FLAG_LAST << 0),
+ GST_RTP_BUFFER_FLAG_LAST = (GST_BUFFER_FLAG_LAST << 8)
+} GstRTPBufferFlags;
+
+/**
* GstRTPBufferMapFlags:
* @GST_RTP_BUFFER_MAP_FLAG_SKIP_PADDING: Skip mapping and validation of RTP
* padding and RTP pad count when present. Useful for buffers where
diff --git a/gst-libs/gst/rtsp/Makefile.in b/gst-libs/gst/rtsp/Makefile.in
index 7a10d3b..e3b944f 100644
--- a/gst-libs/gst/rtsp/Makefile.in
+++ b/gst-libs/gst/rtsp/Makefile.in
@@ -475,6 +475,9 @@
SED = @SED@
SET_MAKE = @SET_MAKE@
SHELL = @SHELL@
+SSE2_CFLAGS = @SSE2_CFLAGS@
+SSE41_CFLAGS = @SSE41_CFLAGS@
+SSE_CFLAGS = @SSE_CFLAGS@
STRIP = @STRIP@
THEORA_CFLAGS = @THEORA_CFLAGS@
THEORA_LIBS = @THEORA_LIBS@
diff --git a/gst-libs/gst/sdp/Makefile.in b/gst-libs/gst/sdp/Makefile.in
index 0bc0264..b6d57d6 100644
--- a/gst-libs/gst/sdp/Makefile.in
+++ b/gst-libs/gst/sdp/Makefile.in
@@ -454,6 +454,9 @@
SED = @SED@
SET_MAKE = @SET_MAKE@
SHELL = @SHELL@
+SSE2_CFLAGS = @SSE2_CFLAGS@
+SSE41_CFLAGS = @SSE41_CFLAGS@
+SSE_CFLAGS = @SSE_CFLAGS@
STRIP = @STRIP@
THEORA_CFLAGS = @THEORA_CFLAGS@
THEORA_LIBS = @THEORA_LIBS@
diff --git a/gst-libs/gst/tag/Makefile.in b/gst-libs/gst/tag/Makefile.in
index bd8fc6c..6967b2f 100644
--- a/gst-libs/gst/tag/Makefile.in
+++ b/gst-libs/gst/tag/Makefile.in
@@ -484,6 +484,9 @@
SED = @SED@
SET_MAKE = @SET_MAKE@
SHELL = @SHELL@
+SSE2_CFLAGS = @SSE2_CFLAGS@
+SSE41_CFLAGS = @SSE41_CFLAGS@
+SSE_CFLAGS = @SSE_CFLAGS@
STRIP = @STRIP@
THEORA_CFLAGS = @THEORA_CFLAGS@
THEORA_LIBS = @THEORA_LIBS@
diff --git a/gst-libs/gst/video/Makefile.in b/gst-libs/gst/video/Makefile.in
index 6d2d966..2ad91c5 100644
--- a/gst-libs/gst/video/Makefile.in
+++ b/gst-libs/gst/video/Makefile.in
@@ -530,6 +530,9 @@
SED = @SED@
SET_MAKE = @SET_MAKE@
SHELL = @SHELL@
+SSE2_CFLAGS = @SSE2_CFLAGS@
+SSE41_CFLAGS = @SSE41_CFLAGS@
+SSE_CFLAGS = @SSE_CFLAGS@
STRIP = @STRIP@
THEORA_CFLAGS = @THEORA_CFLAGS@
THEORA_LIBS = @THEORA_LIBS@
diff --git a/gst-libs/gst/video/video-frame.c b/gst-libs/gst/video/video-frame.c
index cc5073c..30a2d85 100644
--- a/gst-libs/gst/video/video-frame.c
+++ b/gst-libs/gst/video/video-frame.c
@@ -199,7 +199,7 @@
* GstVideoFrame vframe;
* ...
* // set RGB pixels to black one at a time
- * if (gst_video_frame_map (&vframe, video_info, video_buffer)) {
+ * if (gst_video_frame_map (&vframe, video_info, video_buffer, GST_MAP_WRITE)) {
* guint8 *pixels = GST_VIDEO_FRAME_PLANE_DATA (vframe, 0);
* guint stride = GST_VIDEO_FRAME_PLANE_STRIDE (vframe, 0);
* guint pixel_stride = GST_VIDEO_FRAME_COMP_PSTRIDE (vframe, 0);
@@ -211,6 +211,8 @@
* memset (pixel, 0, pixel_stride);
* }
* }
+ *
+ * gst_video_frame_unmap (&vframe);
* }
* ...
* ]|
diff --git a/gst-libs/gst/video/video-frame.h b/gst-libs/gst/video/video-frame.h
index 020d6e1..ef3e03b 100644
--- a/gst-libs/gst/video/video-frame.h
+++ b/gst-libs/gst/video/video-frame.h
@@ -155,6 +155,9 @@
*
* Additional video buffer flags. These flags can potentially be used on any
* buffers carrying video data - even encoded data.
+ *
+ * Note that these are only valid for #GstCaps of type: video/...
+ * They can conflict with other extended buffer flags.
*/
typedef enum {
GST_VIDEO_BUFFER_FLAG_INTERLACED = (GST_BUFFER_FLAG_LAST << 0),
diff --git a/gst-libs/gst/video/video-overlay-composition.c b/gst-libs/gst/video/video-overlay-composition.c
index 12e7e07..8e50012 100644
--- a/gst-libs/gst/video/video-overlay-composition.c
+++ b/gst-libs/gst/video/video-overlay-composition.c
@@ -454,11 +454,15 @@
/**
* gst_video_overlay_composition_blend:
* @comp: a #GstVideoOverlayComposition
- * @video_buf: a #GstVideoFrame containing raw video data in a supported format
+ * @video_buf: a #GstVideoFrame containing raw video data in a
+ * supported format. It should be mapped using GST_MAP_READWRITE
*
* Blends the overlay rectangles in @comp on top of the raw video data
* contained in @video_buf. The data in @video_buf must be writable and
* mapped appropriately.
+ *
+ * Since @video_buf data is read and will be modified, it ought be
+ * mapped with flag GST_MAP_READWRITE.
*/
/* FIXME: formats with more than 8 bit per component which get unpacked into
* ARGB64 or AYUV64 (such as v210, v216, UYVP, GRAY16_LE and GRAY16_BE)
diff --git a/gst-libs/gst/video/video-scaler.c b/gst-libs/gst/video/video-scaler.c
index d1b4b27..1dbae03 100644
--- a/gst-libs/gst/video/video-scaler.c
+++ b/gst-libs/gst/video/video-scaler.c
@@ -1197,21 +1197,20 @@
get_functions (GstVideoScaler * hscale, GstVideoScaler * vscale,
GstVideoFormat format,
GstVideoScalerHFunc * hfunc, GstVideoScalerVFunc * vfunc,
- gint * n_elems, guint * width)
+ gint * n_elems, guint * width, gint * bits)
{
- gint bits;
gboolean mono = FALSE;
switch (format) {
case GST_VIDEO_FORMAT_GRAY8:
- bits = 8;
+ *bits = 8;
*n_elems = 1;
mono = TRUE;
break;
case GST_VIDEO_FORMAT_YUY2:
case GST_VIDEO_FORMAT_YVYU:
case GST_VIDEO_FORMAT_UYVY:
- bits = 8;
+ *bits = 8;
*n_elems = 1;
*width = GST_ROUND_UP_4 (*width * 2);
break;
@@ -1219,7 +1218,7 @@
case GST_VIDEO_FORMAT_BGR:
case GST_VIDEO_FORMAT_v308:
case GST_VIDEO_FORMAT_IYU2:
- bits = 8;
+ *bits = 8;
*n_elems = 3;
break;
case GST_VIDEO_FORMAT_AYUV:
@@ -1231,17 +1230,17 @@
case GST_VIDEO_FORMAT_BGRA:
case GST_VIDEO_FORMAT_ARGB:
case GST_VIDEO_FORMAT_ABGR:
- bits = 8;
+ *bits = 8;
*n_elems = 4;
break;
case GST_VIDEO_FORMAT_ARGB64:
case GST_VIDEO_FORMAT_AYUV64:
- bits = 16;
+ *bits = 16;
*n_elems = 4;
break;
case GST_VIDEO_FORMAT_GRAY16_LE:
case GST_VIDEO_FORMAT_GRAY16_BE:
- bits = 16;
+ *bits = 16;
*n_elems = 1;
mono = TRUE;
break;
@@ -1250,13 +1249,13 @@
case GST_VIDEO_FORMAT_NV21:
case GST_VIDEO_FORMAT_NV24:
case GST_VIDEO_FORMAT_NV61:
- bits = 8;
+ *bits = 8;
*n_elems = 2;
break;
default:
return FALSE;
}
- if (bits == 8) {
+ if (*bits == 8) {
switch (hscale ? hscale->resampler.max_taps : 0) {
case 0:
break;
@@ -1298,7 +1297,7 @@
*vfunc = video_scale_v_ntap_u8;
break;
}
- } else if (bits == 16) {
+ } else if (*bits == 16) {
switch (hscale ? hscale->resampler.max_taps : 0) {
case 0:
break;
@@ -1345,7 +1344,7 @@
gst_video_scaler_horizontal (GstVideoScaler * scale, GstVideoFormat format,
gpointer src, gpointer dest, guint dest_offset, guint width)
{
- gint n_elems;
+ gint n_elems, bits;
GstVideoScalerHFunc func = NULL;
g_return_if_fail (scale != NULL);
@@ -1353,7 +1352,7 @@
g_return_if_fail (dest != NULL);
g_return_if_fail (dest_offset + width <= scale->resampler.out_size);
- if (!get_functions (scale, NULL, format, &func, NULL, &n_elems, &width)
+ if (!get_functions (scale, NULL, format, &func, NULL, &n_elems, &width, &bits)
|| func == NULL)
goto no_func;
@@ -1387,7 +1386,7 @@
gst_video_scaler_vertical (GstVideoScaler * scale, GstVideoFormat format,
gpointer src_lines[], gpointer dest, guint dest_offset, guint width)
{
- gint n_elems;
+ gint n_elems, bits;
GstVideoScalerVFunc func = NULL;
g_return_if_fail (scale != NULL);
@@ -1395,7 +1394,7 @@
g_return_if_fail (dest != NULL);
g_return_if_fail (dest_offset < scale->resampler.out_size);
- if (!get_functions (NULL, scale, format, NULL, &func, &n_elems, &width)
+ if (!get_functions (NULL, scale, format, NULL, &func, &n_elems, &width, &bits)
|| func == NULL)
goto no_func;
@@ -1442,7 +1441,7 @@
gpointer dest, gint dest_stride, guint x, guint y,
guint width, guint height)
{
- gint n_elems;
+ gint n_elems, bits;
GstVideoScalerHFunc hfunc = NULL;
GstVideoScalerVFunc vfunc = NULL;
gint i;
@@ -1450,7 +1449,8 @@
g_return_if_fail (src != NULL);
g_return_if_fail (dest != NULL);
- if (!get_functions (hscale, vscale, format, &hfunc, &vfunc, &n_elems, &width))
+ if (!get_functions (hscale, vscale, format, &hfunc, &vfunc, &n_elems, &width,
+ &bits))
goto no_func;
#define LINE(s,ss,i) ((guint8 *)(s) + ((i) * (ss)))
@@ -1462,7 +1462,7 @@
guint8 *s, *d;
xo = x * n_elems;
- xw = width * n_elems;
+ xw = width * n_elems * (bits / 8);
s = LINE (src, src_stride, y) + xo;
d = LINE (dest, dest_stride, y) + xo;
diff --git a/gst-plugins-base.doap b/gst-plugins-base.doap
index 905b308..16ada23 100644
--- a/gst-plugins-base.doap
+++ b/gst-plugins-base.doap
@@ -36,6 +36,16 @@
<release>
<Version>
+ <revision>1.9.90</revision>
+ <branch>master</branch>
+ <name></name>
+ <created>2016-09-30</created>
+ <file-release rdf:resource="http://gstreamer.freedesktop.org/src/gst-plugins-base/gst-plugins-base-1.9.90.tar.xz" />
+ </Version>
+ </release>
+
+ <release>
+ <Version>
<revision>1.9.2</revision>
<branch>master</branch>
<name></name>
diff --git a/gst-plugins-base.spec b/gst-plugins-base.spec
index 5c49965..7210a38 100644
--- a/gst-plugins-base.spec
+++ b/gst-plugins-base.spec
@@ -4,7 +4,7 @@
%define gst_minver 0.11.0
Name: %{gstreamer}-plugins-base
-Version: 1.9.2
+Version: 1.9.90
Release: 1.gst
Summary: GStreamer streaming media framework plug-ins
diff --git a/gst/Makefile.in b/gst/Makefile.in
index 373115f..2cf6c0d 100644
--- a/gst/Makefile.in
+++ b/gst/Makefile.in
@@ -427,6 +427,9 @@
SED = @SED@
SET_MAKE = @SET_MAKE@
SHELL = @SHELL@
+SSE2_CFLAGS = @SSE2_CFLAGS@
+SSE41_CFLAGS = @SSE41_CFLAGS@
+SSE_CFLAGS = @SSE_CFLAGS@
STRIP = @STRIP@
THEORA_CFLAGS = @THEORA_CFLAGS@
THEORA_LIBS = @THEORA_LIBS@
diff --git a/gst/adder/Makefile.in b/gst/adder/Makefile.in
index fbcb995..5cc6d13 100644
--- a/gst/adder/Makefile.in
+++ b/gst/adder/Makefile.in
@@ -475,6 +475,9 @@
SED = @SED@
SET_MAKE = @SET_MAKE@
SHELL = @SHELL@
+SSE2_CFLAGS = @SSE2_CFLAGS@
+SSE41_CFLAGS = @SSE41_CFLAGS@
+SSE_CFLAGS = @SSE_CFLAGS@
STRIP = @STRIP@
THEORA_CFLAGS = @THEORA_CFLAGS@
THEORA_LIBS = @THEORA_LIBS@
diff --git a/gst/app/Makefile.in b/gst/app/Makefile.in
index e79dae8..e9e1386 100644
--- a/gst/app/Makefile.in
+++ b/gst/app/Makefile.in
@@ -445,6 +445,9 @@
SED = @SED@
SET_MAKE = @SET_MAKE@
SHELL = @SHELL@
+SSE2_CFLAGS = @SSE2_CFLAGS@
+SSE41_CFLAGS = @SSE41_CFLAGS@
+SSE_CFLAGS = @SSE_CFLAGS@
STRIP = @STRIP@
THEORA_CFLAGS = @THEORA_CFLAGS@
THEORA_LIBS = @THEORA_LIBS@
diff --git a/gst/audioconvert/Makefile.in b/gst/audioconvert/Makefile.in
index 808b2a0..6744414 100644
--- a/gst/audioconvert/Makefile.in
+++ b/gst/audioconvert/Makefile.in
@@ -451,6 +451,9 @@
SED = @SED@
SET_MAKE = @SET_MAKE@
SHELL = @SHELL@
+SSE2_CFLAGS = @SSE2_CFLAGS@
+SSE41_CFLAGS = @SSE41_CFLAGS@
+SSE_CFLAGS = @SSE_CFLAGS@
STRIP = @STRIP@
THEORA_CFLAGS = @THEORA_CFLAGS@
THEORA_LIBS = @THEORA_LIBS@
diff --git a/gst/audiorate/Makefile.in b/gst/audiorate/Makefile.in
index 649f6c0..7f2f918 100644
--- a/gst/audiorate/Makefile.in
+++ b/gst/audiorate/Makefile.in
@@ -448,6 +448,9 @@
SED = @SED@
SET_MAKE = @SET_MAKE@
SHELL = @SHELL@
+SSE2_CFLAGS = @SSE2_CFLAGS@
+SSE41_CFLAGS = @SSE41_CFLAGS@
+SSE_CFLAGS = @SSE_CFLAGS@
STRIP = @STRIP@
THEORA_CFLAGS = @THEORA_CFLAGS@
THEORA_LIBS = @THEORA_LIBS@
diff --git a/gst/audioresample/Makefile.in b/gst/audioresample/Makefile.in
index 7f3cb2a..b2dcdc4 100644
--- a/gst/audioresample/Makefile.in
+++ b/gst/audioresample/Makefile.in
@@ -453,6 +453,9 @@
SED = @SED@
SET_MAKE = @SET_MAKE@
SHELL = @SHELL@
+SSE2_CFLAGS = @SSE2_CFLAGS@
+SSE41_CFLAGS = @SSE41_CFLAGS@
+SSE_CFLAGS = @SSE_CFLAGS@
STRIP = @STRIP@
THEORA_CFLAGS = @THEORA_CFLAGS@
THEORA_LIBS = @THEORA_LIBS@
diff --git a/gst/audiotestsrc/Makefile.in b/gst/audiotestsrc/Makefile.in
index ebd536e..802291c 100644
--- a/gst/audiotestsrc/Makefile.in
+++ b/gst/audiotestsrc/Makefile.in
@@ -450,6 +450,9 @@
SED = @SED@
SET_MAKE = @SET_MAKE@
SHELL = @SHELL@
+SSE2_CFLAGS = @SSE2_CFLAGS@
+SSE41_CFLAGS = @SSE41_CFLAGS@
+SSE_CFLAGS = @SSE_CFLAGS@
STRIP = @STRIP@
THEORA_CFLAGS = @THEORA_CFLAGS@
THEORA_LIBS = @THEORA_LIBS@
diff --git a/gst/audiotestsrc/gstaudiotestsrc.c b/gst/audiotestsrc/gstaudiotestsrc.c
index 1c3b5bc..d00c1c6 100644
--- a/gst/audiotestsrc/gstaudiotestsrc.c
+++ b/gst/audiotestsrc/gstaudiotestsrc.c
@@ -1123,21 +1123,16 @@
src->next_sample = next_sample;
- if (!src->reverse) {
- if (GST_CLOCK_TIME_IS_VALID (segment->start)) {
- segment->time = segment->start;
- }
- } else {
- if (GST_CLOCK_TIME_IS_VALID (segment->stop)) {
- segment->time = segment->stop;
- }
- }
-
- if (GST_CLOCK_TIME_IS_VALID (segment->stop)) {
+ if (segment->rate > 0 && GST_CLOCK_TIME_IS_VALID (segment->stop)) {
time = segment->stop;
src->sample_stop =
gst_util_uint64_scale_round (time, samplerate, GST_SECOND);
src->check_seek_stop = TRUE;
+ } else if (segment->rate < 0) {
+ time = segment->start;
+ src->sample_stop =
+ gst_util_uint64_scale_round (time, samplerate, GST_SECOND);
+ src->check_seek_stop = TRUE;
} else {
src->check_seek_stop = FALSE;
}
@@ -1212,7 +1207,7 @@
}
/* check for eos */
- if (src->check_seek_stop &&
+ if (src->check_seek_stop && !src->reverse &&
(src->sample_stop > src->next_sample) &&
(src->sample_stop < src->next_sample + samples)
) {
@@ -1220,6 +1215,13 @@
src->generate_samples_per_buffer = src->sample_stop - src->next_sample;
next_sample = src->sample_stop;
src->eos_reached = TRUE;
+ } else if (src->check_seek_stop && src->reverse &&
+ (src->sample_stop > src->next_sample)
+ ) {
+ /* calculate only partial buffer */
+ src->generate_samples_per_buffer = src->sample_stop - src->next_sample;
+ next_sample = src->sample_stop;
+ src->eos_reached = TRUE;
} else {
/* calculate full buffer */
src->generate_samples_per_buffer = samples;
diff --git a/gst/encoding/Makefile.in b/gst/encoding/Makefile.in
index d2a003b..9d116d1 100644
--- a/gst/encoding/Makefile.in
+++ b/gst/encoding/Makefile.in
@@ -460,6 +460,9 @@
SED = @SED@
SET_MAKE = @SET_MAKE@
SHELL = @SHELL@
+SSE2_CFLAGS = @SSE2_CFLAGS@
+SSE41_CFLAGS = @SSE41_CFLAGS@
+SSE_CFLAGS = @SSE_CFLAGS@
STRIP = @STRIP@
THEORA_CFLAGS = @THEORA_CFLAGS@
THEORA_LIBS = @THEORA_LIBS@
diff --git a/gst/gio/Makefile.in b/gst/gio/Makefile.in
index 72c719e..c7a6f5c 100644
--- a/gst/gio/Makefile.in
+++ b/gst/gio/Makefile.in
@@ -454,6 +454,9 @@
SED = @SED@
SET_MAKE = @SET_MAKE@
SHELL = @SHELL@
+SSE2_CFLAGS = @SSE2_CFLAGS@
+SSE41_CFLAGS = @SSE41_CFLAGS@
+SSE_CFLAGS = @SSE_CFLAGS@
STRIP = @STRIP@
THEORA_CFLAGS = @THEORA_CFLAGS@
THEORA_LIBS = @THEORA_LIBS@
diff --git a/gst/playback/Makefile.in b/gst/playback/Makefile.in
index 631a262..92a0657 100644
--- a/gst/playback/Makefile.in
+++ b/gst/playback/Makefile.in
@@ -468,6 +468,9 @@
SED = @SED@
SET_MAKE = @SET_MAKE@
SHELL = @SHELL@
+SSE2_CFLAGS = @SSE2_CFLAGS@
+SSE41_CFLAGS = @SSE41_CFLAGS@
+SSE_CFLAGS = @SSE_CFLAGS@
STRIP = @STRIP@
THEORA_CFLAGS = @THEORA_CFLAGS@
THEORA_LIBS = @THEORA_LIBS@
diff --git a/gst/playback/gstdecodebin2.c b/gst/playback/gstdecodebin2.c
index 89ed6a9..d6872ad 100644
--- a/gst/playback/gstdecodebin2.c
+++ b/gst/playback/gstdecodebin2.c
@@ -100,9 +100,7 @@
#include "gstplay-enum.h"
#include "gstplayback.h"
#include "gstrawcaps.h"
-
-/* Also used by gsturidecodebin.c */
-gint _decode_bin_compare_factories_func (gconstpointer p1, gconstpointer p2);
+#include "gstplaybackutils.h"
/* generic templates */
static GstStaticPadTemplate decoder_bin_sink_template =
@@ -1023,33 +1021,6 @@
g_type_class_ref (GST_TYPE_DECODE_PAD);
}
-gint
-_decode_bin_compare_factories_func (gconstpointer p1, gconstpointer p2)
-{
- GstPluginFeature *f1, *f2;
- gboolean is_parser1, is_parser2;
-
- f1 = (GstPluginFeature *) p1;
- f2 = (GstPluginFeature *) p2;
-
- is_parser1 = gst_element_factory_list_is_type (GST_ELEMENT_FACTORY_CAST (f1),
- GST_ELEMENT_FACTORY_TYPE_PARSER);
- is_parser2 = gst_element_factory_list_is_type (GST_ELEMENT_FACTORY_CAST (f2),
- GST_ELEMENT_FACTORY_TYPE_PARSER);
-
-
- /* We want all parsers first as we always want to plug parsers
- * before decoders */
- if (is_parser1 && !is_parser2)
- return -1;
- else if (!is_parser1 && is_parser2)
- return 1;
-
- /* And if it's a both a parser we first sort by rank
- * and then by factory name */
- return gst_plugin_feature_rank_compare_func (p1, p2);
-}
-
/* Must be called with factories lock! */
static void
gst_decode_bin_update_factories_list (GstDecodeBin * dbin)
@@ -1064,7 +1035,8 @@
gst_element_factory_list_get_elements
(GST_ELEMENT_FACTORY_TYPE_DECODABLE, GST_RANK_MARGINAL);
dbin->factories =
- g_list_sort (dbin->factories, _decode_bin_compare_factories_func);
+ g_list_sort (dbin->factories,
+ gst_playback_utils_compare_factories_func);
dbin->factories_cookie = cookie;
}
}
diff --git a/gst/playback/gstplaybackutils.c b/gst/playback/gstplaybackutils.c
index d003c91..ef98528 100644
--- a/gst/playback/gstplaybackutils.c
+++ b/gst/playback/gstplaybackutils.c
@@ -131,3 +131,30 @@
return n_common_cf;
}
+
+gint
+gst_playback_utils_compare_factories_func (gconstpointer p1, gconstpointer p2)
+{
+ GstPluginFeature *f1, *f2;
+ gboolean is_parser1, is_parser2;
+
+ f1 = (GstPluginFeature *) p1;
+ f2 = (GstPluginFeature *) p2;
+
+ is_parser1 = gst_element_factory_list_is_type (GST_ELEMENT_FACTORY_CAST (f1),
+ GST_ELEMENT_FACTORY_TYPE_PARSER);
+ is_parser2 = gst_element_factory_list_is_type (GST_ELEMENT_FACTORY_CAST (f2),
+ GST_ELEMENT_FACTORY_TYPE_PARSER);
+
+
+ /* We want all parsers first as we always want to plug parsers
+ * before decoders */
+ if (is_parser1 && !is_parser2)
+ return -1;
+ else if (!is_parser1 && is_parser2)
+ return 1;
+
+ /* And if it's a both a parser we first sort by rank
+ * and then by factory name */
+ return gst_plugin_feature_rank_compare_func (p1, p2);
+}
diff --git a/gst/playback/gstplaybackutils.h b/gst/playback/gstplaybackutils.h
index c9f895e..d7f6700 100644
--- a/gst/playback/gstplaybackutils.h
+++ b/gst/playback/gstplaybackutils.h
@@ -27,11 +27,15 @@
#include <gst/gst.h>
#include "gstplay-enum.h"
+G_GNUC_INTERNAL
guint
gst_playback_utils_get_n_common_capsfeatures (GstElementFactory * fact1,
GstElementFactory * fact2,
GstPlayFlags flags,
gboolean isaudioelement);
+G_GNUC_INTERNAL
+gint
+gst_playback_utils_compare_factories_func (gconstpointer p1, gconstpointer p2);
G_END_DECLS
#endif /* __GST_PLAYBACK_UTILS_H__ */
diff --git a/gst/playback/gstplaybin3.c b/gst/playback/gstplaybin3.c
index 9e38d72..6c084a4 100644
--- a/gst/playback/gstplaybin3.c
+++ b/gst/playback/gstplaybin3.c
@@ -514,7 +514,6 @@
/* Active stream collection */
GstStreamCollection *collection;
- guint collection_notify_id;
};
struct _GstPlayBin3Class
@@ -525,28 +524,8 @@
* queue a new one for gapless playback */
void (*about_to_finish) (GstPlayBin3 * playbin);
- /* notify app that number of audio/video/text streams changed */
- void (*video_changed) (GstPlayBin3 * playbin);
- void (*audio_changed) (GstPlayBin3 * playbin);
- void (*text_changed) (GstPlayBin3 * playbin);
-
- /* notify app that the tags of audio/video/text streams changed */
- void (*video_tags_changed) (GstPlayBin3 * playbin, gint stream);
- void (*audio_tags_changed) (GstPlayBin3 * playbin, gint stream);
- void (*text_tags_changed) (GstPlayBin3 * playbin, gint stream);
-
- /* get audio/video/text tags for a stream */
- GstTagList *(*get_video_tags) (GstPlayBin3 * playbin, gint stream);
- GstTagList *(*get_audio_tags) (GstPlayBin3 * playbin, gint stream);
- GstTagList *(*get_text_tags) (GstPlayBin3 * playbin, gint stream);
-
/* get the last video sample and convert it to the given caps */
GstSample *(*convert_sample) (GstPlayBin3 * playbin, GstCaps * caps);
-
- /* get audio/video/text pad for a stream */
- GstPad *(*get_video_pad) (GstPlayBin3 * playbin, gint stream);
- GstPad *(*get_audio_pad) (GstPlayBin3 * playbin, gint stream);
- GstPad *(*get_text_pad) (GstPlayBin3 * playbin, gint stream);
};
/* props */
@@ -556,11 +535,8 @@
#define DEFAULT_FLAGS GST_PLAY_FLAG_AUDIO | GST_PLAY_FLAG_VIDEO | GST_PLAY_FLAG_TEXT | \
GST_PLAY_FLAG_SOFT_VOLUME | GST_PLAY_FLAG_DEINTERLACE | \
GST_PLAY_FLAG_SOFT_COLORBALANCE
-#define DEFAULT_N_VIDEO 0
#define DEFAULT_CURRENT_VIDEO -1
-#define DEFAULT_N_AUDIO 0
#define DEFAULT_CURRENT_AUDIO -1
-#define DEFAULT_N_TEXT 0
#define DEFAULT_CURRENT_TEXT -1
#define DEFAULT_AUTO_SELECT_STREAMS TRUE
#define DEFAULT_SUBTITLE_ENCODING NULL
@@ -586,13 +562,6 @@
PROP_CURRENT_SUBURI,
PROP_SOURCE,
PROP_FLAGS,
- PROP_N_VIDEO,
- PROP_CURRENT_VIDEO,
- PROP_N_AUDIO,
- PROP_CURRENT_AUDIO,
- PROP_N_TEXT,
- PROP_CURRENT_TEXT,
- PROP_AUTO_SELECT_STREAMS,
PROP_SUBTITLE_ENCODING,
PROP_AUDIO_SINK,
PROP_VIDEO_SINK,
@@ -622,18 +591,6 @@
{
SIGNAL_ABOUT_TO_FINISH,
SIGNAL_CONVERT_SAMPLE,
- SIGNAL_VIDEO_CHANGED,
- SIGNAL_AUDIO_CHANGED,
- SIGNAL_TEXT_CHANGED,
- SIGNAL_VIDEO_TAGS_CHANGED,
- SIGNAL_AUDIO_TAGS_CHANGED,
- SIGNAL_TEXT_TAGS_CHANGED,
- SIGNAL_GET_VIDEO_TAGS,
- SIGNAL_GET_AUDIO_TAGS,
- SIGNAL_GET_TEXT_TAGS,
- SIGNAL_GET_VIDEO_PAD,
- SIGNAL_GET_AUDIO_PAD,
- SIGNAL_GET_TEXT_PAD,
SIGNAL_SOURCE_SETUP,
SIGNAL_ELEMENT_SETUP,
LAST_SIGNAL
@@ -663,20 +620,9 @@
static gboolean gst_play_bin3_send_event (GstElement * element,
GstEvent * event);
-static GstTagList *gst_play_bin3_get_video_tags (GstPlayBin3 * playbin,
- gint stream);
-static GstTagList *gst_play_bin3_get_audio_tags (GstPlayBin3 * playbin,
- gint stream);
-static GstTagList *gst_play_bin3_get_text_tags (GstPlayBin3 * playbin,
- gint stream);
-
static GstSample *gst_play_bin3_convert_sample (GstPlayBin3 * playbin,
GstCaps * caps);
-static GstPad *gst_play_bin3_get_video_pad (GstPlayBin3 * playbin, gint stream);
-static GstPad *gst_play_bin3_get_audio_pad (GstPlayBin3 * playbin, gint stream);
-static GstPad *gst_play_bin3_get_text_pad (GstPlayBin3 * playbin, gint stream);
-
static GstStateChangeReturn setup_next_source (GstPlayBin3 * playbin,
GstState target);
@@ -689,10 +635,6 @@
GstPlayBin3 * playbin);
static void do_stream_selection (GstPlayBin3 * playbin);
-static void notify_tags_cb (GstStreamCollection * collection,
- GstStream * stream, GParamSpec * pspec, GstPlayBin3 * playbin);
-static void notify_tags_for_stream (GstPlayBin3 * playbin,
- GstStreamCollection * collection, GstStream * stream);
static GstElementClass *parent_class;
@@ -833,81 +775,6 @@
GST_TYPE_PLAY_FLAGS, DEFAULT_FLAGS,
G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
- /**
- * GstPlayBin3:n-video
- *
- * Get the total number of available video streams.
- */
- g_object_class_install_property (gobject_klass, PROP_N_VIDEO,
- g_param_spec_int ("n-video", "Number Video",
- "Total number of video streams", 0, G_MAXINT, 0,
- G_PARAM_READABLE | G_PARAM_STATIC_STRINGS));
- /**
- * GstPlayBin3:current-video
- *
- * Get or set the currently playing video stream. By default the first video
- * stream with data is played.
- */
- g_object_class_install_property (gobject_klass, PROP_CURRENT_VIDEO,
- g_param_spec_int ("current-video", "Current Video",
- "Currently playing video stream (-1 = auto)",
- -1, G_MAXINT, -1, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
- /**
- * GstPlayBin3:n-audio
- *
- * Get the total number of available audio streams.
- */
- g_object_class_install_property (gobject_klass, PROP_N_AUDIO,
- g_param_spec_int ("n-audio", "Number Audio",
- "Total number of audio streams", 0, G_MAXINT, 0,
- G_PARAM_READABLE | G_PARAM_STATIC_STRINGS));
- /**
- * GstPlayBin3:current-audio
- *
- * Get or set the currently playing audio stream. By default the first audio
- * stream with data is played.
- */
- g_object_class_install_property (gobject_klass, PROP_CURRENT_AUDIO,
- g_param_spec_int ("current-audio", "Current audio",
- "Currently playing audio stream (-1 = auto)",
- -1, G_MAXINT, -1, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
- /**
- * GstPlayBin3:n-text
- *
- * Get the total number of available subtitle streams.
- */
- g_object_class_install_property (gobject_klass, PROP_N_TEXT,
- g_param_spec_int ("n-text", "Number Text",
- "Total number of text streams", 0, G_MAXINT, 0,
- G_PARAM_READABLE | G_PARAM_STATIC_STRINGS));
- /**
- * GstPlayBin3:current-text:
- *
- * Get or set the currently playing subtitle stream. By default the first
- * subtitle stream with data is played.
- */
- g_object_class_install_property (gobject_klass, PROP_CURRENT_TEXT,
- g_param_spec_int ("current-text", "Current Text",
- "Currently playing text stream (-1 = auto)",
- -1, G_MAXINT, -1, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
-
- /**
- * GstPlayBin3::auto-select-streams:
- *
- * If TRUE the playbin will respond to stream-collection messages
- * by sending a SELECT_STREAMS event to decodebin. Set to FALSE
- * if the application will manage stream selection. This property
- * will automatically be set to FALSE if playbin receives a select-streams
- * event from the application, but setting it explicitly avoids any
- * races where playbin mind send a select-streams event before the
- * application.
- */
- g_object_class_install_property (gobject_klass, PROP_AUTO_SELECT_STREAMS,
- g_param_spec_boolean ("auto-select-streams", "Automatic Select-Streams",
- "Whether playbin should respond to stream-collection messags with select-streams events",
- DEFAULT_AUTO_SELECT_STREAMS,
- G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
-
g_object_class_install_property (gobject_klass, PROP_SUBTITLE_ENCODING,
g_param_spec_string ("subtitle-encoding", "subtitle encoding",
"Encoding to assume if input subtitles are not in UTF-8 encoding. "
@@ -1124,114 +991,6 @@
G_STRUCT_OFFSET (GstPlayBin3Class, about_to_finish), NULL, NULL,
g_cclosure_marshal_generic, G_TYPE_NONE, 0, G_TYPE_NONE);
- /**
- * GstPlayBin3::video-changed
- * @playbin: a #GstPlayBin3
- *
- * This signal is emitted whenever the number or order of the video
- * streams has changed. The application will most likely want to select
- * a new video stream.
- *
- * This signal is usually emitted from the context of a GStreamer streaming
- * thread. You can use gst_message_new_application() and
- * gst_element_post_message() to notify your application's main thread.
- */
- /* FIXME 0.11: turn video-changed signal into message? */
- gst_play_bin3_signals[SIGNAL_VIDEO_CHANGED] =
- g_signal_new ("video-changed", G_TYPE_FROM_CLASS (klass),
- G_SIGNAL_RUN_LAST,
- G_STRUCT_OFFSET (GstPlayBin3Class, video_changed), NULL, NULL,
- g_cclosure_marshal_generic, G_TYPE_NONE, 0, G_TYPE_NONE);
- /**
- * GstPlayBin3::audio-changed
- * @playbin: a #GstPlayBin3
- *
- * This signal is emitted whenever the number or order of the audio
- * streams has changed. The application will most likely want to select
- * a new audio stream.
- *
- * This signal may be emitted from the context of a GStreamer streaming thread.
- * You can use gst_message_new_application() and gst_element_post_message()
- * to notify your application's main thread.
- */
- /* FIXME 0.11: turn audio-changed signal into message? */
- gst_play_bin3_signals[SIGNAL_AUDIO_CHANGED] =
- g_signal_new ("audio-changed", G_TYPE_FROM_CLASS (klass),
- G_SIGNAL_RUN_LAST,
- G_STRUCT_OFFSET (GstPlayBin3Class, audio_changed), NULL, NULL,
- g_cclosure_marshal_generic, G_TYPE_NONE, 0, G_TYPE_NONE);
- /**
- * GstPlayBin3::text-changed
- * @playbin: a #GstPlayBin3
- *
- * This signal is emitted whenever the number or order of the text
- * streams has changed. The application will most likely want to select
- * a new text stream.
- *
- * This signal may be emitted from the context of a GStreamer streaming thread.
- * You can use gst_message_new_application() and gst_element_post_message()
- * to notify your application's main thread.
- */
- /* FIXME 0.11: turn text-changed signal into message? */
- gst_play_bin3_signals[SIGNAL_TEXT_CHANGED] =
- g_signal_new ("text-changed", G_TYPE_FROM_CLASS (klass),
- G_SIGNAL_RUN_LAST,
- G_STRUCT_OFFSET (GstPlayBin3Class, text_changed), NULL, NULL,
- g_cclosure_marshal_generic, G_TYPE_NONE, 0, G_TYPE_NONE);
-
- /**
- * GstPlayBin3::video-tags-changed
- * @playbin: a #GstPlayBin3
- * @stream: stream index with changed tags
- *
- * This signal is emitted whenever the tags of a video stream have changed.
- * The application will most likely want to get the new tags.
- *
- * This signal may be emitted from the context of a GStreamer streaming thread.
- * You can use gst_message_new_application() and gst_element_post_message()
- * to notify your application's main thread.
- */
- gst_play_bin3_signals[SIGNAL_VIDEO_TAGS_CHANGED] =
- g_signal_new ("video-tags-changed", G_TYPE_FROM_CLASS (klass),
- G_SIGNAL_RUN_LAST,
- G_STRUCT_OFFSET (GstPlayBin3Class, video_tags_changed), NULL, NULL,
- g_cclosure_marshal_generic, G_TYPE_NONE, 1, G_TYPE_INT);
-
- /**
- * GstPlayBin3::audio-tags-changed
- * @playbin: a #GstPlayBin3
- * @stream: stream index with changed tags
- *
- * This signal is emitted whenever the tags of an audio stream have changed.
- * The application will most likely want to get the new tags.
- *
- * This signal may be emitted from the context of a GStreamer streaming thread.
- * You can use gst_message_new_application() and gst_element_post_message()
- * to notify your application's main thread.
- */
- gst_play_bin3_signals[SIGNAL_AUDIO_TAGS_CHANGED] =
- g_signal_new ("audio-tags-changed", G_TYPE_FROM_CLASS (klass),
- G_SIGNAL_RUN_LAST,
- G_STRUCT_OFFSET (GstPlayBin3Class, audio_tags_changed), NULL, NULL,
- g_cclosure_marshal_generic, G_TYPE_NONE, 1, G_TYPE_INT);
-
- /**
- * GstPlayBin3::text-tags-changed
- * @playbin: a #GstPlayBin3
- * @stream: stream index with changed tags
- *
- * This signal is emitted whenever the tags of a text stream have changed.
- * The application will most likely want to get the new tags.
- *
- * This signal may be emitted from the context of a GStreamer streaming thread.
- * You can use gst_message_new_application() and gst_element_post_message()
- * to notify your application's main thread.
- */
- gst_play_bin3_signals[SIGNAL_TEXT_TAGS_CHANGED] =
- g_signal_new ("text-tags-changed", G_TYPE_FROM_CLASS (klass),
- G_SIGNAL_RUN_LAST,
- G_STRUCT_OFFSET (GstPlayBin3Class, text_tags_changed), NULL, NULL,
- g_cclosure_marshal_generic, G_TYPE_NONE, 1, G_TYPE_INT);
/**
* GstPlayBin3::source-setup:
@@ -1274,54 +1033,6 @@
g_cclosure_marshal_generic, G_TYPE_NONE, 1, GST_TYPE_ELEMENT);
/**
- * GstPlayBin3::get-video-tags
- * @playbin: a #GstPlayBin3
- * @stream: a video stream number
- *
- * Action signal to retrieve the tags of a specific video stream number.
- * This information can be used to select a stream.
- *
- * Returns: a GstTagList with tags or NULL when the stream number does not
- * exist.
- */
- gst_play_bin3_signals[SIGNAL_GET_VIDEO_TAGS] =
- g_signal_new ("get-video-tags", G_TYPE_FROM_CLASS (klass),
- G_SIGNAL_RUN_LAST | G_SIGNAL_ACTION,
- G_STRUCT_OFFSET (GstPlayBin3Class, get_video_tags), NULL, NULL,
- g_cclosure_marshal_generic, GST_TYPE_TAG_LIST, 1, G_TYPE_INT);
- /**
- * GstPlayBin3::get-audio-tags
- * @playbin: a #GstPlayBin3
- * @stream: an audio stream number
- *
- * Action signal to retrieve the tags of a specific audio stream number.
- * This information can be used to select a stream.
- *
- * Returns: a GstTagList with tags or NULL when the stream number does not
- * exist.
- */
- gst_play_bin3_signals[SIGNAL_GET_AUDIO_TAGS] =
- g_signal_new ("get-audio-tags", G_TYPE_FROM_CLASS (klass),
- G_SIGNAL_RUN_LAST | G_SIGNAL_ACTION,
- G_STRUCT_OFFSET (GstPlayBin3Class, get_audio_tags), NULL, NULL,
- g_cclosure_marshal_generic, GST_TYPE_TAG_LIST, 1, G_TYPE_INT);
- /**
- * GstPlayBin3::get-text-tags
- * @playbin: a #GstPlayBin3
- * @stream: a text stream number
- *
- * Action signal to retrieve the tags of a specific text stream number.
- * This information can be used to select a stream.
- *
- * Returns: a GstTagList with tags or NULL when the stream number does not
- * exist.
- */
- gst_play_bin3_signals[SIGNAL_GET_TEXT_TAGS] =
- g_signal_new ("get-text-tags", G_TYPE_FROM_CLASS (klass),
- G_SIGNAL_RUN_LAST | G_SIGNAL_ACTION,
- G_STRUCT_OFFSET (GstPlayBin3Class, get_text_tags), NULL, NULL,
- g_cclosure_marshal_generic, GST_TYPE_TAG_LIST, 1, G_TYPE_INT);
- /**
* GstPlayBin3::convert-sample
* @playbin: a #GstPlayBin3
* @caps: the target format of the frame
@@ -1342,68 +1053,8 @@
G_STRUCT_OFFSET (GstPlayBin3Class, convert_sample), NULL, NULL,
g_cclosure_marshal_generic, GST_TYPE_SAMPLE, 1, GST_TYPE_CAPS);
- /**
- * GstPlayBin3::get-video-pad
- * @playbin: a #GstPlayBin3
- * @stream: a video stream number
- *
- * Action signal to retrieve the stream-combiner sinkpad for a specific
- * video stream.
- * This pad can be used for notifications of caps changes, stream-specific
- * queries, etc.
- *
- * Returns: a #GstPad, or NULL when the stream number does not exist.
- */
- gst_play_bin3_signals[SIGNAL_GET_VIDEO_PAD] =
- g_signal_new ("get-video-pad", G_TYPE_FROM_CLASS (klass),
- G_SIGNAL_RUN_LAST | G_SIGNAL_ACTION,
- G_STRUCT_OFFSET (GstPlayBin3Class, get_video_pad), NULL, NULL,
- g_cclosure_marshal_generic, GST_TYPE_PAD, 1, G_TYPE_INT);
- /**
- * GstPlayBin3::get-audio-pad
- * @playbin: a #GstPlayBin3
- * @stream: an audio stream number
- *
- * Action signal to retrieve the stream-combiner sinkpad for a specific
- * audio stream.
- * This pad can be used for notifications of caps changes, stream-specific
- * queries, etc.
- *
- * Returns: a #GstPad, or NULL when the stream number does not exist.
- */
- gst_play_bin3_signals[SIGNAL_GET_AUDIO_PAD] =
- g_signal_new ("get-audio-pad", G_TYPE_FROM_CLASS (klass),
- G_SIGNAL_RUN_LAST | G_SIGNAL_ACTION,
- G_STRUCT_OFFSET (GstPlayBin3Class, get_audio_pad), NULL, NULL,
- g_cclosure_marshal_generic, GST_TYPE_PAD, 1, G_TYPE_INT);
- /**
- * GstPlayBin3::get-text-pad
- * @playbin: a #GstPlayBin3
- * @stream: a text stream number
- *
- * Action signal to retrieve the stream-combiner sinkpad for a specific
- * text stream.
- * This pad can be used for notifications of caps changes, stream-specific
- * queries, etc.
- *
- * Returns: a #GstPad, or NULL when the stream number does not exist.
- */
- gst_play_bin3_signals[SIGNAL_GET_TEXT_PAD] =
- g_signal_new ("get-text-pad", G_TYPE_FROM_CLASS (klass),
- G_SIGNAL_RUN_LAST | G_SIGNAL_ACTION,
- G_STRUCT_OFFSET (GstPlayBin3Class, get_text_pad), NULL, NULL,
- g_cclosure_marshal_generic, GST_TYPE_PAD, 1, G_TYPE_INT);
-
- klass->get_video_tags = gst_play_bin3_get_video_tags;
- klass->get_audio_tags = gst_play_bin3_get_audio_tags;
- klass->get_text_tags = gst_play_bin3_get_text_tags;
-
klass->convert_sample = gst_play_bin3_convert_sample;
- klass->get_video_pad = gst_play_bin3_get_video_pad;
- klass->get_audio_pad = gst_play_bin3_get_audio_pad;
- klass->get_text_pad = gst_play_bin3_get_text_pad;
-
gst_element_class_set_static_metadata (gstelement_klass,
"Player Bin 3", "Generic/Bin/Player",
"Autoplug and play media from an uri",
@@ -1716,8 +1367,6 @@
/* assume we can create an input-selector */
playbin->have_selector = TRUE;
- playbin->do_stream_selections = DEFAULT_AUTO_SELECT_STREAMS;
-
init_combiners (playbin);
/* init groups */
@@ -1948,110 +1597,6 @@
return result;
}
-static GstPad *
-gst_play_bin3_get_pad_of_type (GstPlayBin3 * playbin, gint stream_type,
- gint stream)
-{
- GstPad *sinkpad = NULL;
-
- GST_PLAY_BIN3_LOCK (playbin);
- if (playbin->combiner[stream_type].combiner == NULL) {
- GST_DEBUG_OBJECT (playbin,
- "get-pad of type %d w/o custom-combiner. Returning playsink pad",
- stream_type);
- sinkpad = playbin->combiner[stream_type].sinkpad;
- if (sinkpad) {
- sinkpad = gst_object_ref (sinkpad);
- goto done;
- }
- }
- if (stream < playbin->channels[stream_type]->len) {
- sinkpad = g_ptr_array_index (playbin->channels[stream_type], stream);
- gst_object_ref (sinkpad);
- }
-
-done:
- GST_PLAY_BIN3_UNLOCK (playbin);
-
- return sinkpad;
-}
-
-static GstPad *
-gst_play_bin3_get_video_pad (GstPlayBin3 * playbin, gint stream)
-{
- return gst_play_bin3_get_pad_of_type (playbin, PLAYBIN_STREAM_VIDEO, stream);
-}
-
-static GstPad *
-gst_play_bin3_get_audio_pad (GstPlayBin3 * playbin, gint stream)
-{
- return gst_play_bin3_get_pad_of_type (playbin, PLAYBIN_STREAM_AUDIO, stream);
-}
-
-static GstPad *
-gst_play_bin3_get_text_pad (GstPlayBin3 * playbin, gint stream)
-{
- return gst_play_bin3_get_pad_of_type (playbin, PLAYBIN_STREAM_TEXT, stream);
-}
-
-
-static GstTagList *
-get_tags (GstPlayBin3 * playbin, GstStreamType type, gint stream_num)
-{
- GstTagList *result = NULL;
- gint nb_streams = gst_stream_collection_get_size (playbin->collection);
- gint i, cur_idx = 0;
-
- /* Count the streams of the type we want to find the one numbered 'stream' */
- for (i = 0; i < nb_streams; i++) {
- GstStream *stream =
- gst_stream_collection_get_stream (playbin->collection, i);
- GstStreamType stream_type = gst_stream_get_stream_type (stream);
- if (stream_type != type)
- continue;
- if (cur_idx == stream_num)
- return gst_stream_get_tags (stream);
- cur_idx++;
- }
-
- return result;
-}
-
-static GstTagList *
-gst_play_bin3_get_video_tags (GstPlayBin3 * playbin, gint stream)
-{
- GstTagList *result;
-
- GST_PLAY_BIN3_LOCK (playbin);
- result = get_tags (playbin, GST_STREAM_TYPE_VIDEO, stream);
- GST_PLAY_BIN3_UNLOCK (playbin);
-
- return result;
-}
-
-static GstTagList *
-gst_play_bin3_get_audio_tags (GstPlayBin3 * playbin, gint stream)
-{
- GstTagList *result;
-
- GST_PLAY_BIN3_LOCK (playbin);
- result = get_tags (playbin, GST_STREAM_TYPE_AUDIO, stream);
- GST_PLAY_BIN3_UNLOCK (playbin);
-
- return result;
-}
-
-static GstTagList *
-gst_play_bin3_get_text_tags (GstPlayBin3 * playbin, gint stream)
-{
- GstTagList *result;
-
- GST_PLAY_BIN3_LOCK (playbin);
- result = get_tags (playbin, GST_STREAM_TYPE_TEXT, stream);
- GST_PLAY_BIN3_UNLOCK (playbin);
-
- return result;
-}
static GstSample *
gst_play_bin3_convert_sample (GstPlayBin3 * playbin, GstCaps * caps)
@@ -2338,20 +1883,6 @@
GST_SOURCE_GROUP_UNLOCK (playbin->curr_group);
}
break;
- case PROP_CURRENT_VIDEO:
- gst_play_bin3_set_current_video_stream (playbin, g_value_get_int (value));
- break;
- case PROP_CURRENT_AUDIO:
- gst_play_bin3_set_current_audio_stream (playbin, g_value_get_int (value));
- break;
- case PROP_CURRENT_TEXT:
- gst_play_bin3_set_current_text_stream (playbin, g_value_get_int (value));
- break;
- case PROP_AUTO_SELECT_STREAMS:
- GST_PLAY_BIN3_LOCK (playbin);
- playbin->do_stream_selections = g_value_get_boolean (value);
- GST_PLAY_BIN3_UNLOCK (playbin);
- break;
case PROP_SUBTITLE_ENCODING:
gst_play_bin3_set_encoding (playbin, g_value_get_string (value));
break;
@@ -2540,75 +2071,6 @@
case PROP_FLAGS:
g_value_set_flags (value, gst_play_bin3_get_flags (playbin));
break;
- case PROP_N_VIDEO:
- {
- gint n_video;
-
- GST_PLAY_BIN3_LOCK (playbin);
- n_video =
- playbin->combiner[PLAYBIN_STREAM_VIDEO].
- streams ? playbin->combiner[PLAYBIN_STREAM_VIDEO].streams->len : 0;
- GST_PLAY_BIN3_UNLOCK (playbin);
- g_value_set_int (value, n_video);
- break;
- }
- case PROP_CURRENT_VIDEO:
- GST_PLAY_BIN3_LOCK (playbin);
- if (playbin->combiner[PLAYBIN_STREAM_VIDEO].current_stream != -1)
- g_value_set_int (value,
- playbin->combiner[PLAYBIN_STREAM_VIDEO].current_stream);
- else
- g_value_set_int (value, playbin->current_video);
- GST_PLAY_BIN3_UNLOCK (playbin);
- break;
- case PROP_N_AUDIO:
- {
- gint n_audio;
-
- GST_PLAY_BIN3_LOCK (playbin);
- n_audio =
- playbin->combiner[PLAYBIN_STREAM_AUDIO].
- streams ? playbin->combiner[PLAYBIN_STREAM_AUDIO].streams->len : 0;
- GST_PLAY_BIN3_UNLOCK (playbin);
-
- g_value_set_int (value, n_audio);
- break;
- }
- case PROP_CURRENT_AUDIO:
- GST_PLAY_BIN3_LOCK (playbin);
- if (playbin->combiner[PLAYBIN_STREAM_AUDIO].current_stream != -1)
- g_value_set_int (value,
- playbin->combiner[PLAYBIN_STREAM_AUDIO].current_stream);
- else
- g_value_set_int (value, playbin->current_audio);
- GST_PLAY_BIN3_UNLOCK (playbin);
- break;
- case PROP_N_TEXT:
- {
- gint n_text;
-
- GST_PLAY_BIN3_LOCK (playbin);
- n_text =
- playbin->combiner[PLAYBIN_STREAM_TEXT].
- streams ? playbin->combiner[PLAYBIN_STREAM_TEXT].streams->len : 0;
- GST_PLAY_BIN3_UNLOCK (playbin);
- g_value_set_int (value, n_text);
- break;
- }
- case PROP_CURRENT_TEXT:
- GST_PLAY_BIN3_LOCK (playbin);
- if (playbin->combiner[PLAYBIN_STREAM_TEXT].current_stream != -1)
- g_value_set_int (value,
- playbin->combiner[PLAYBIN_STREAM_TEXT].current_stream);
- else
- g_value_set_int (value, playbin->current_text);
- GST_PLAY_BIN3_UNLOCK (playbin);
- break;
- case PROP_AUTO_SELECT_STREAMS:
- GST_PLAY_BIN3_LOCK (playbin);
- g_value_set_boolean (value, playbin->do_stream_selections);
- GST_PLAY_BIN3_UNLOCK (playbin);
- break;
case PROP_SUBTITLE_ENCODING:
GST_PLAY_BIN3_LOCK (playbin);
g_value_take_string (value,
@@ -3058,16 +2520,6 @@
};
static void
-notify_all_streams (GstPlayBin3 * playbin, GstStreamCollection * collection)
-{
- gint i, nb_streams;
- nb_streams = gst_stream_collection_get_size (collection);
- for (i = 0; i < nb_streams; i++)
- notify_tags_for_stream (playbin, collection,
- gst_stream_collection_get_stream (collection, i));
-}
-
-static void
gst_play_bin3_handle_message (GstBin * bin, GstMessage * msg)
{
GstPlayBin3 *playbin = GST_PLAY_BIN3 (bin);
@@ -3136,16 +2588,8 @@
GST_PLAY_BIN3_LOCK (playbin);
GST_DEBUG_OBJECT (playbin,
"STREAM_COLLECTION: Got a collection from %" GST_PTR_FORMAT, src);
- if (playbin->collection && playbin->collection_notify_id) {
- g_signal_handler_disconnect (playbin->collection,
- playbin->collection_notify_id);
- playbin->collection_notify_id = 0;
- }
gst_object_replace ((GstObject **) & playbin->collection,
(GstObject *) collection);
- playbin->collection_notify_id =
- g_signal_connect (collection, "stream-notify::tags",
- (GCallback) notify_tags_cb, playbin);
update_combiner_info (playbin);
if (pstate)
playbin->do_stream_selections = FALSE;
@@ -3154,7 +2598,6 @@
playbin->do_stream_selections = TRUE;
GST_PLAY_BIN3_UNLOCK (playbin);
- notify_all_streams (playbin, collection);
gst_object_unref (collection);
}
} else if (GST_MESSAGE_TYPE (msg) == GST_MESSAGE_STREAMS_SELECTED) {
@@ -3168,16 +2611,8 @@
GST_PLAY_BIN3_LOCK (playbin);
GST_DEBUG_OBJECT (playbin,
"STREAMS_SELECTED: Got a collection from %" GST_PTR_FORMAT, src);
- if (playbin->collection && playbin->collection_notify_id) {
- g_signal_handler_disconnect (playbin->collection,
- playbin->collection_notify_id);
- playbin->collection_notify_id = 0;
- }
gst_object_replace ((GstObject **) & playbin->collection,
(GstObject *) collection);
- playbin->collection_notify_id =
- g_signal_connect (collection, "stream-notify::tags",
- (GCallback) notify_tags_cb, playbin);
update_combiner_info (playbin);
len = gst_message_streams_selected_get_size (msg);
for (i = 0; i < len; i++) {
@@ -3194,7 +2629,6 @@
playbin->do_stream_selections = TRUE;
GST_PLAY_BIN3_UNLOCK (playbin);
- notify_all_streams (playbin, collection);
gst_object_unref (collection);
}
}
@@ -3373,65 +2807,6 @@
return ret;
}
-static gint
-find_index_for_stream_by_type (GstStreamCollection * collection,
- GstStream * stream)
-{
- gint nb_streams = gst_stream_collection_get_size (collection);
- gint i, cur_idx = 0;
- GstStreamType target_type = gst_stream_get_stream_type (stream);
-
- /* Count the streams of the type we want to find the index of the one we want */
- for (i = 0; i < nb_streams; i++) {
- GstStream *cur_stream = gst_stream_collection_get_stream (collection, i);
- if (stream == cur_stream)
- return cur_idx;
- if (gst_stream_get_stream_type (cur_stream) == target_type)
- cur_idx++;
- }
-
- return -1;
-}
-
-static void
-notify_tags_for_stream (GstPlayBin3 * playbin, GstStreamCollection * collection,
- GstStream * stream)
-{
- GstStreamType stream_type = gst_stream_get_stream_type (stream);
- gint stream_idx = find_index_for_stream_by_type (collection, stream);
- gint signal;
-
- GST_DEBUG_OBJECT (playbin, "Tags on stream %" GST_PTR_FORMAT
- " with stream idx %d and type %d have changed",
- stream, stream_idx, stream_type);
-
- switch (stream_type) {
- case GST_STREAM_TYPE_VIDEO:
- signal = SIGNAL_VIDEO_TAGS_CHANGED;
- break;
- case GST_STREAM_TYPE_AUDIO:
- signal = SIGNAL_AUDIO_TAGS_CHANGED;
- break;
- case GST_STREAM_TYPE_TEXT:
- signal = SIGNAL_TEXT_TAGS_CHANGED;
- break;
- default:
- signal = -1;
- break;
- }
-
- if (signal >= 0)
- g_signal_emit (G_OBJECT (playbin), gst_play_bin3_signals[signal], 0,
- stream_idx);
-}
-
-static void
-notify_tags_cb (GstStreamCollection * collection, GstStream * stream,
- GParamSpec * pspec, GstPlayBin3 * playbin)
-{
- notify_tags_for_stream (playbin, collection, stream);
-}
-
/* this function is called when a new pad is added to decodebin. We check the
* type of the pad and add it to the combiner element
*/
@@ -3443,7 +2818,6 @@
GstSourceCombine *combine = NULL;
GstStreamType stream_type;
gint pb_stream_type = -1;
- gboolean changed = FALSE;
GstElement *custom_combiner = NULL;
gulong event_probe_handler;
gchar *pad_name;
@@ -3554,7 +2928,6 @@
/* store combiner pad so we can release it */
g_object_set_data (G_OBJECT (pad), "playbin.sinkpad", sinkpad);
- changed = TRUE;
GST_DEBUG_OBJECT (playbin, "linked pad %s:%s to combiner %p",
GST_DEBUG_PAD_NAME (pad), combine->combiner);
} else {
@@ -3563,7 +2936,6 @@
} else {
/* no combiner, don't configure anything, we'll link the new pad directly to
* the sink. */
- changed = FALSE;
sinkpad = NULL;
/* store the combiner for the pad */
@@ -3576,31 +2948,6 @@
g_object_set_data (G_OBJECT (pad), "playbin.event_probe_id",
ULONG_TO_POINTER (event_probe_handler));
- if (changed) {
- int signal;
-
- switch (combine->type) {
- case GST_PLAY_SINK_TYPE_VIDEO:
- case GST_PLAY_SINK_TYPE_VIDEO_RAW:
- signal = SIGNAL_VIDEO_CHANGED;
- break;
- case GST_PLAY_SINK_TYPE_AUDIO:
- case GST_PLAY_SINK_TYPE_AUDIO_RAW:
- signal = SIGNAL_AUDIO_CHANGED;
- break;
- case GST_PLAY_SINK_TYPE_TEXT:
- signal = SIGNAL_TEXT_CHANGED;
- break;
- default:
- signal = -1;
- }
-
- if (signal >= 0) {
- g_signal_emit (G_OBJECT (playbin), gst_play_bin3_signals[signal], 0,
- NULL);
- }
- }
-
playbin->active_stream_types |= stream_type;
/* If we're expecting either audio or video,
@@ -3649,7 +2996,6 @@
GstPad *peer;
GstElement *combiner;
GstSourceCombine *combine;
- int signal = -1;
gulong event_probe_handler;
GST_DEBUG_OBJECT (playbin,
@@ -3687,23 +3033,6 @@
g_ptr_array_remove (combine->channels, peer);
GST_DEBUG_OBJECT (playbin, "pad %p removed from array", peer);
- /* get the correct type-changed signal */
- switch (combine->type) {
- case GST_PLAY_SINK_TYPE_VIDEO:
- case GST_PLAY_SINK_TYPE_VIDEO_RAW:
- signal = SIGNAL_VIDEO_CHANGED;
- break;
- case GST_PLAY_SINK_TYPE_AUDIO:
- case GST_PLAY_SINK_TYPE_AUDIO_RAW:
- signal = SIGNAL_AUDIO_CHANGED;
- break;
- case GST_PLAY_SINK_TYPE_TEXT:
- signal = SIGNAL_TEXT_CHANGED;
- break;
- default:
- signal = -1;
- }
-
if (!combine->channels->len && combine->combiner) {
GST_DEBUG_OBJECT (playbin, "all combiner sinkpads removed");
GST_DEBUG_OBJECT (playbin, "removing combiner %p", combine->combiner);
@@ -3723,9 +3052,6 @@
exit:
GST_PLAY_BIN3_UNLOCK (playbin);
- if (signal >= 0)
- g_signal_emit (G_OBJECT (playbin), gst_play_bin3_signals[signal], 0, NULL);
-
return;
/* ERRORS */
diff --git a/gst/playback/gstplaysink.c b/gst/playback/gstplaysink.c
index 0bca05c..eaac018 100644
--- a/gst/playback/gstplaysink.c
+++ b/gst/playback/gstplaysink.c
@@ -677,6 +677,8 @@
g_rec_mutex_init (&playsink->lock);
GST_OBJECT_FLAG_SET (playsink, GST_ELEMENT_FLAG_SINK);
+ gst_bin_set_suppressed_flags (GST_BIN (playsink),
+ GST_ELEMENT_FLAG_SOURCE | GST_ELEMENT_FLAG_SINK);
channel =
GST_COLOR_BALANCE_CHANNEL (g_object_new (GST_TYPE_COLOR_BALANCE_CHANNEL,
@@ -1227,8 +1229,6 @@
gst_bin_add (GST_BIN_CAST (chain->playsink), chain->bin);
else {
gst_bin_remove (GST_BIN_CAST (chain->playsink), chain->bin);
- /* we don't want to lose our sink status */
- GST_OBJECT_FLAG_SET (chain->playsink, GST_ELEMENT_FLAG_SINK);
}
chain->added = add;
diff --git a/gst/playback/gststreamsynchronizer.c b/gst/playback/gststreamsynchronizer.c
index b26ee70..ac77266 100644
--- a/gst/playback/gststreamsynchronizer.c
+++ b/gst/playback/gststreamsynchronizer.c
@@ -373,18 +373,31 @@
ostream->wait = FALSE;
if (ostream->segment.format == GST_FORMAT_TIME) {
- stop_running_time =
- gst_segment_to_running_time (&ostream->segment,
- GST_FORMAT_TIME, ostream->segment.stop);
+ if (ostream->segment.rate > 0)
+ stop_running_time =
+ gst_segment_to_running_time (&ostream->segment,
+ GST_FORMAT_TIME, ostream->segment.stop);
+ else
+ stop_running_time =
+ gst_segment_to_running_time (&ostream->segment,
+ GST_FORMAT_TIME, ostream->segment.start);
+
position_running_time =
gst_segment_to_running_time (&ostream->segment,
GST_FORMAT_TIME, ostream->segment.position);
position_running_time =
MAX (position_running_time, stop_running_time);
- position_running_time -=
- gst_segment_to_running_time (&ostream->segment,
- GST_FORMAT_TIME, ostream->segment.start);
+
+ if (ostream->segment.rate > 0)
+ position_running_time -=
+ gst_segment_to_running_time (&ostream->segment,
+ GST_FORMAT_TIME, ostream->segment.start);
+ else
+ position_running_time -=
+ gst_segment_to_running_time (&ostream->segment,
+ GST_FORMAT_TIME, ostream->segment.stop);
+
position_running_time = MAX (0, position_running_time);
position = MAX (position, position_running_time);
@@ -497,9 +510,14 @@
continue;
if (ostream->segment.format == GST_FORMAT_TIME) {
- start_running_time =
- gst_segment_to_running_time (&ostream->segment,
- GST_FORMAT_TIME, ostream->segment.start);
+ if (ostream->segment.rate > 0)
+ start_running_time =
+ gst_segment_to_running_time (&ostream->segment,
+ GST_FORMAT_TIME, ostream->segment.start);
+ else
+ start_running_time =
+ gst_segment_to_running_time (&ostream->segment,
+ GST_FORMAT_TIME, ostream->segment.stop);
new_group_start_time = MAX (new_group_start_time, start_running_time);
}
diff --git a/gst/playback/gsturidecodebin.c b/gst/playback/gsturidecodebin.c
index 0d06776..d5c0307 100644
--- a/gst/playback/gsturidecodebin.c
+++ b/gst/playback/gsturidecodebin.c
@@ -41,9 +41,7 @@
#include "gstplay-enum.h"
#include "gstrawcaps.h"
#include "gstplayback.h"
-
-/* From gstdecodebin2.c */
-gint _decode_bin_compare_factories_func (gconstpointer p1, gconstpointer p2);
+#include "gstplaybackutils.h"
#define GST_TYPE_URI_DECODE_BIN \
(gst_uri_decode_bin_get_type())
@@ -321,7 +319,7 @@
gst_element_factory_list_get_elements
(GST_ELEMENT_FACTORY_TYPE_DECODABLE, GST_RANK_MARGINAL);
dec->factories =
- g_list_sort (dec->factories, _decode_bin_compare_factories_func);
+ g_list_sort (dec->factories, gst_playback_utils_compare_factories_func);
dec->factories_cookie = cookie;
}
}
@@ -742,6 +740,8 @@
dec->ring_buffer_max_size = DEFAULT_RING_BUFFER_MAX_SIZE;
GST_OBJECT_FLAG_SET (dec, GST_ELEMENT_FLAG_SOURCE);
+ gst_bin_set_suppressed_flags (GST_BIN (dec),
+ GST_ELEMENT_FLAG_SOURCE | GST_ELEMENT_FLAG_SINK);
}
static void
@@ -1682,9 +1682,6 @@
bin->pending_decodebins = NULL;
}
-
- /* Don't loose the SOURCE flag */
- GST_OBJECT_FLAG_SET (bin, GST_ELEMENT_FLAG_SOURCE);
}
static void
@@ -2062,8 +2059,6 @@
GST_ELEMENT_ERROR (decoder, CORE, NEGOTIATION,
(NULL), ("Can't link source to typefind element"));
gst_bin_remove (GST_BIN_CAST (decoder), typefind);
- /* Don't loose the SOURCE flag */
- GST_OBJECT_FLAG_SET (decoder, GST_ELEMENT_FLAG_SOURCE);
do_async_done (decoder);
return FALSE;
}
@@ -2112,8 +2107,6 @@
g_hash_table_destroy (bin->streams);
bin->streams = NULL;
}
- /* Don't loose the SOURCE flag */
- GST_OBJECT_FLAG_SET (bin, GST_ELEMENT_FLAG_SOURCE);
}
/* is called when a dynamic source element created a new pad. */
diff --git a/gst/playback/gsturisourcebin.c b/gst/playback/gsturisourcebin.c
index b97d425..7720a4c 100644
--- a/gst/playback/gsturisourcebin.c
+++ b/gst/playback/gsturisourcebin.c
@@ -50,9 +50,7 @@
#include "gstplay-enum.h"
#include "gstrawcaps.h"
#include "gstplayback.h"
-
-/* From gstdecodebin2.c */
-gint _decode_bin_compare_factories_func (gconstpointer p1, gconstpointer p2);
+#include "gstplaybackutils.h"
#define GST_TYPE_URI_DECODE_BIN \
(gst_uri_source_bin_get_type())
@@ -355,7 +353,7 @@
gst_element_factory_list_get_elements
(GST_ELEMENT_FACTORY_TYPE_DECODABLE, GST_RANK_MARGINAL);
dec->factories =
- g_list_sort (dec->factories, _decode_bin_compare_factories_func);
+ g_list_sort (dec->factories, gst_playback_utils_compare_factories_func);
dec->factories_cookie = cookie;
}
}
@@ -743,6 +741,8 @@
urisrc->last_buffering_pct = -1;
GST_OBJECT_FLAG_SET (urisrc, GST_ELEMENT_FLAG_SOURCE);
+ gst_bin_set_suppressed_flags (GST_BIN (urisrc),
+ GST_ELEMENT_FLAG_SOURCE | GST_ELEMENT_FLAG_SINK);
}
static void
@@ -1990,8 +1990,6 @@
GST_ELEMENT_ERROR (urisrc, CORE, NEGOTIATION,
(NULL), ("Can't link source to typefind element"));
gst_bin_remove (GST_BIN_CAST (urisrc), typefind);
- /* Don't lose the SOURCE flag */
- GST_OBJECT_FLAG_SET (urisrc, GST_ELEMENT_FLAG_SOURCE);
do_async_done (urisrc);
return FALSE;
}
@@ -2053,8 +2051,6 @@
gst_bin_remove (GST_BIN_CAST (urisrc), urisrc->demuxer);
urisrc->demuxer = NULL;
}
- /* Don't lose the SOURCE flag */
- GST_OBJECT_FLAG_SET (urisrc, GST_ELEMENT_FLAG_SOURCE);
}
/* is called when a dynamic source element created a new pad. */
diff --git a/gst/subparse/Makefile.in b/gst/subparse/Makefile.in
index 93a0824..130d5d7 100644
--- a/gst/subparse/Makefile.in
+++ b/gst/subparse/Makefile.in
@@ -453,6 +453,9 @@
SED = @SED@
SET_MAKE = @SET_MAKE@
SHELL = @SHELL@
+SSE2_CFLAGS = @SSE2_CFLAGS@
+SSE41_CFLAGS = @SSE41_CFLAGS@
+SSE_CFLAGS = @SSE_CFLAGS@
STRIP = @STRIP@
THEORA_CFLAGS = @THEORA_CFLAGS@
THEORA_LIBS = @THEORA_LIBS@
diff --git a/gst/tcp/Makefile.in b/gst/tcp/Makefile.in
index c289fad..c470f1f 100644
--- a/gst/tcp/Makefile.in
+++ b/gst/tcp/Makefile.in
@@ -461,6 +461,9 @@
SED = @SED@
SET_MAKE = @SET_MAKE@
SHELL = @SHELL@
+SSE2_CFLAGS = @SSE2_CFLAGS@
+SSE41_CFLAGS = @SSE41_CFLAGS@
+SSE_CFLAGS = @SSE_CFLAGS@
STRIP = @STRIP@
THEORA_CFLAGS = @THEORA_CFLAGS@
THEORA_LIBS = @THEORA_LIBS@
diff --git a/gst/typefind/Makefile.in b/gst/typefind/Makefile.in
index 6df94da..3a8b0cb 100644
--- a/gst/typefind/Makefile.in
+++ b/gst/typefind/Makefile.in
@@ -449,6 +449,9 @@
SED = @SED@
SET_MAKE = @SET_MAKE@
SHELL = @SHELL@
+SSE2_CFLAGS = @SSE2_CFLAGS@
+SSE41_CFLAGS = @SSE41_CFLAGS@
+SSE_CFLAGS = @SSE_CFLAGS@
STRIP = @STRIP@
THEORA_CFLAGS = @THEORA_CFLAGS@
THEORA_LIBS = @THEORA_LIBS@
diff --git a/gst/videoconvert/Makefile.in b/gst/videoconvert/Makefile.in
index f29c08c..8ec0701 100644
--- a/gst/videoconvert/Makefile.in
+++ b/gst/videoconvert/Makefile.in
@@ -453,6 +453,9 @@
SED = @SED@
SET_MAKE = @SET_MAKE@
SHELL = @SHELL@
+SSE2_CFLAGS = @SSE2_CFLAGS@
+SSE41_CFLAGS = @SSE41_CFLAGS@
+SSE_CFLAGS = @SSE_CFLAGS@
STRIP = @STRIP@
THEORA_CFLAGS = @THEORA_CFLAGS@
THEORA_LIBS = @THEORA_LIBS@
diff --git a/gst/videorate/Makefile.in b/gst/videorate/Makefile.in
index d794201..ca27914 100644
--- a/gst/videorate/Makefile.in
+++ b/gst/videorate/Makefile.in
@@ -448,6 +448,9 @@
SED = @SED@
SET_MAKE = @SET_MAKE@
SHELL = @SHELL@
+SSE2_CFLAGS = @SSE2_CFLAGS@
+SSE41_CFLAGS = @SSE41_CFLAGS@
+SSE_CFLAGS = @SSE_CFLAGS@
STRIP = @STRIP@
THEORA_CFLAGS = @THEORA_CFLAGS@
THEORA_LIBS = @THEORA_LIBS@
diff --git a/gst/videoscale/Makefile.in b/gst/videoscale/Makefile.in
index 5c1bd11..6887500 100644
--- a/gst/videoscale/Makefile.in
+++ b/gst/videoscale/Makefile.in
@@ -449,6 +449,9 @@
SED = @SED@
SET_MAKE = @SET_MAKE@
SHELL = @SHELL@
+SSE2_CFLAGS = @SSE2_CFLAGS@
+SSE41_CFLAGS = @SSE41_CFLAGS@
+SSE_CFLAGS = @SSE_CFLAGS@
STRIP = @STRIP@
THEORA_CFLAGS = @THEORA_CFLAGS@
THEORA_LIBS = @THEORA_LIBS@
diff --git a/gst/videotestsrc/Makefile.in b/gst/videotestsrc/Makefile.in
index 5b043ce..14403bf 100644
--- a/gst/videotestsrc/Makefile.in
+++ b/gst/videotestsrc/Makefile.in
@@ -490,6 +490,9 @@
SED = @SED@
SET_MAKE = @SET_MAKE@
SHELL = @SHELL@
+SSE2_CFLAGS = @SSE2_CFLAGS@
+SSE41_CFLAGS = @SSE41_CFLAGS@
+SSE_CFLAGS = @SSE_CFLAGS@
STRIP = @STRIP@
THEORA_CFLAGS = @THEORA_CFLAGS@
THEORA_LIBS = @THEORA_LIBS@
diff --git a/gst/volume/Makefile.in b/gst/volume/Makefile.in
index 5c6fe65..ce39f4d 100644
--- a/gst/volume/Makefile.in
+++ b/gst/volume/Makefile.in
@@ -475,6 +475,9 @@
SED = @SED@
SET_MAKE = @SET_MAKE@
SHELL = @SHELL@
+SSE2_CFLAGS = @SSE2_CFLAGS@
+SSE41_CFLAGS = @SSE41_CFLAGS@
+SSE_CFLAGS = @SSE_CFLAGS@
STRIP = @STRIP@
THEORA_CFLAGS = @THEORA_CFLAGS@
THEORA_LIBS = @THEORA_LIBS@
diff --git a/m4/Makefile.in b/m4/Makefile.in
index e742927..456736e 100644
--- a/m4/Makefile.in
+++ b/m4/Makefile.in
@@ -362,6 +362,9 @@
SED = @SED@
SET_MAKE = @SET_MAKE@
SHELL = @SHELL@
+SSE2_CFLAGS = @SSE2_CFLAGS@
+SSE41_CFLAGS = @SSE41_CFLAGS@
+SSE_CFLAGS = @SSE_CFLAGS@
STRIP = @STRIP@
THEORA_CFLAGS = @THEORA_CFLAGS@
THEORA_LIBS = @THEORA_LIBS@
diff --git a/pkgconfig/Makefile.in b/pkgconfig/Makefile.in
index bf262fc..a67536e 100644
--- a/pkgconfig/Makefile.in
+++ b/pkgconfig/Makefile.in
@@ -428,6 +428,9 @@
SED = @SED@
SET_MAKE = @SET_MAKE@
SHELL = @SHELL@
+SSE2_CFLAGS = @SSE2_CFLAGS@
+SSE41_CFLAGS = @SSE41_CFLAGS@
+SSE_CFLAGS = @SSE_CFLAGS@
STRIP = @STRIP@
THEORA_CFLAGS = @THEORA_CFLAGS@
THEORA_LIBS = @THEORA_LIBS@
diff --git a/po/af.gmo b/po/af.gmo
index 9b933ad..bec559f 100644
--- a/po/af.gmo
+++ b/po/af.gmo
Binary files differ
diff --git a/po/af.po b/po/af.po
index 801b0ba..25a2aaa 100644
--- a/po/af.po
+++ b/po/af.po
@@ -7,7 +7,7 @@
msgstr ""
"Project-Id-Version: gst-plugins 0.7.6\n"
"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2016-09-01 11:23+0300\n"
+"POT-Creation-Date: 2016-09-30 12:11+0300\n"
"PO-Revision-Date: 2004-03-18 14:16+0200\n"
"Last-Translator: Petri Jooste <rkwjpj@puk.ac.za>\n"
"Language-Team: Afrikaans <i18n@af.org.za>\n"
diff --git a/po/az.gmo b/po/az.gmo
index e1f8f9d..d170cc4 100644
--- a/po/az.gmo
+++ b/po/az.gmo
Binary files differ
diff --git a/po/az.po b/po/az.po
index e1add8c..0fbc991 100644
--- a/po/az.po
+++ b/po/az.po
@@ -7,7 +7,7 @@
msgstr ""
"Project-Id-Version: gst-plugins-0.8.0\n"
"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2016-09-01 11:23+0300\n"
+"POT-Creation-Date: 2016-09-30 12:11+0300\n"
"PO-Revision-Date: 2004-03-19 18:29+0200\n"
"Last-Translator: Metin Amiroff <metin@karegen.com>\n"
"Language-Team: Azerbaijani <translation-team-az@lists.sourceforge.net>\n"
diff --git a/po/bg.gmo b/po/bg.gmo
index 660d9ce..fa5f76c 100644
--- a/po/bg.gmo
+++ b/po/bg.gmo
Binary files differ
diff --git a/po/bg.po b/po/bg.po
index 2add761..afeba45 100644
--- a/po/bg.po
+++ b/po/bg.po
@@ -10,7 +10,7 @@
msgstr ""
"Project-Id-Version: gst-plugins-base 1.7.2\n"
"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2016-09-01 11:23+0300\n"
+"POT-Creation-Date: 2016-09-30 12:11+0300\n"
"PO-Revision-Date: 2016-02-21 21:03+0200\n"
"Last-Translator: Alexander Shopov <ash@kambanaria.org>\n"
"Language-Team: Bulgarian <dict@ludost.net>\n"
diff --git a/po/ca.gmo b/po/ca.gmo
index e06c664..9fbc299 100644
--- a/po/ca.gmo
+++ b/po/ca.gmo
Binary files differ
diff --git a/po/ca.po b/po/ca.po
index 008bfab..2aeb57a 100644
--- a/po/ca.po
+++ b/po/ca.po
@@ -9,7 +9,7 @@
msgstr ""
"Project-Id-Version: gst-plugins-base 0.10.32.2\n"
"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2016-09-01 11:23+0300\n"
+"POT-Creation-Date: 2016-09-30 12:11+0300\n"
"PO-Revision-Date: 2012-01-01 14:19+0100\n"
"Last-Translator: Gil Forcada <gforcada@gnome.org>\n"
"Language-Team: Catalan <ca@dodds.net>\n"
diff --git a/po/cs.gmo b/po/cs.gmo
index af8e3d3..917e03a 100644
--- a/po/cs.gmo
+++ b/po/cs.gmo
Binary files differ
diff --git a/po/cs.po b/po/cs.po
index 9f210c6..2d9ff72 100644
--- a/po/cs.po
+++ b/po/cs.po
@@ -10,7 +10,7 @@
msgstr ""
"Project-Id-Version: gst-plugins-base-1.7.90\n"
"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2016-09-01 11:23+0300\n"
+"POT-Creation-Date: 2016-09-30 12:11+0300\n"
"PO-Revision-Date: 2016-03-03 15:35+0100\n"
"Last-Translator: Marek Černocký <marek@manet.cz>\n"
"Language-Team: Czech <translation-team-cs@lists.sourceforge.net>\n"
diff --git a/po/da.gmo b/po/da.gmo
index 3fe1651..0c034fc 100644
--- a/po/da.gmo
+++ b/po/da.gmo
Binary files differ
diff --git a/po/da.po b/po/da.po
index 2792a83..85f4451 100644
--- a/po/da.po
+++ b/po/da.po
@@ -33,7 +33,7 @@
msgstr ""
"Project-Id-Version: gst-plugins-base 1.7.90\n"
"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2016-09-01 11:23+0300\n"
+"POT-Creation-Date: 2016-09-30 12:11+0300\n"
"PO-Revision-Date: 2016-03-27 16:38+0100\n"
"Last-Translator: Joe Hansen <joedalton2@yahoo.dk>\n"
"Language-Team: Danish <dansk@dansk-gruppen.dk>\n"
diff --git a/po/de.gmo b/po/de.gmo
index cba0d88..f2ba9c4 100644
--- a/po/de.gmo
+++ b/po/de.gmo
Binary files differ
diff --git a/po/de.po b/po/de.po
index be8138c..c992920 100644
--- a/po/de.po
+++ b/po/de.po
@@ -1,24 +1,25 @@
-# German messages for gst-plugins-base 1.4.0
+# German messages for gst-plugins-base 1.7.90
# Copyright © 2006 Karl Eichwalder
# This file is distributed under the same license as the gst-plugins-base package.
# Karl Eichwalder <ke@suse.de>, 2006.
# Mario Blättermann <mariobl@gnome.org>, 2010.
-# Christian Kirbach <christian.kirbach@gmail.com>, 2009, 2010, 2011, 2012, 2013.
+# Christian Kirbach <christian.kirbach@gmail.com>, 2009, 2010, 2011, 2012, 2013, 2016.
#
msgid ""
msgstr ""
-"Project-Id-Version: gst-plugins-base 1.7.2\n"
+"Project-Id-Version: gst-plugins-base 1.7.90\n"
"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2016-09-01 11:23+0300\n"
-"PO-Revision-Date: 2016-02-22 23:44+0100\n"
+"POT-Creation-Date: 2016-09-30 12:11+0300\n"
+"PO-Revision-Date: 2016-09-28 21:08+0200\n"
"Last-Translator: Christian Kirbach <christian.kirbach@gmail.com>\n"
"Language-Team: German <translation-team-de@lists.sourceforge.net>\n"
"Language: de\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
+"X-Bugs: Report translation errors to the Language-Team address.\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
-"X-Generator: Poedit 1.8.7\n"
+"X-Generator: Poedit 1.8.9\n"
msgid "Could not open device for playback in mono mode."
msgstr "Gerät konnte nicht zur Wiedergabe in Mono geöffnet werden."
@@ -585,13 +586,13 @@
msgstr "Beenden"
msgid "> or n"
-msgstr ""
+msgstr "> oder n"
msgid "play next"
msgstr "Nächsten wiedergeben"
msgid "< or b"
-msgstr ""
+msgstr "< oder b"
msgid "play previous"
msgstr "Vorherigen wiedergeben"
diff --git a/po/el.gmo b/po/el.gmo
index 384f096..8173292 100644
--- a/po/el.gmo
+++ b/po/el.gmo
Binary files differ
diff --git a/po/el.po b/po/el.po
index 76aa0c7..b34ec13 100644
--- a/po/el.po
+++ b/po/el.po
@@ -9,7 +9,7 @@
msgstr ""
"Project-Id-Version: gst-plugins-base 0.10.32.2\n"
"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2016-09-01 11:23+0300\n"
+"POT-Creation-Date: 2016-09-30 12:11+0300\n"
"PO-Revision-Date: 2012-05-05 19:13+0100\n"
"Last-Translator: Savvas Radevic <vicedar@gmail.com>\n"
"Language-Team: Greek <team@lists.gnome.gr>\n"
diff --git a/po/en_GB.gmo b/po/en_GB.gmo
index ca44cd5..8475bd7 100644
--- a/po/en_GB.gmo
+++ b/po/en_GB.gmo
Binary files differ
diff --git a/po/en_GB.po b/po/en_GB.po
index ce161d4..fa6c580 100644
--- a/po/en_GB.po
+++ b/po/en_GB.po
@@ -6,7 +6,7 @@
msgstr ""
"Project-Id-Version: gst-plugins 0.8.1\n"
"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2016-09-01 11:23+0300\n"
+"POT-Creation-Date: 2016-09-30 12:11+0300\n"
"PO-Revision-Date: 2004-04-26 10:41-0400\n"
"Last-Translator: Gareth Owen <gowen72@yahoo.com>\n"
"Language-Team: English (British) <en_gb@li.org>\n"
diff --git a/po/eo.gmo b/po/eo.gmo
index e4fb932..314e141 100644
--- a/po/eo.gmo
+++ b/po/eo.gmo
Binary files differ
diff --git a/po/eo.po b/po/eo.po
index ea7781f..7fc6425 100644
--- a/po/eo.po
+++ b/po/eo.po
@@ -7,7 +7,7 @@
msgstr ""
"Project-Id-Version: gst-plugins-base 0.10.32.2\n"
"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2016-09-01 11:23+0300\n"
+"POT-Creation-Date: 2016-09-30 12:11+0300\n"
"PO-Revision-Date: 2011-06-04 21:11+0100\n"
"Last-Translator: Kristjan SCHMIDT <kristjan.schmidt@googlemail.com>\n"
"Language-Team: Esperanto <translation-team-eo@lists.sourceforge.net>\n"
diff --git a/po/es.gmo b/po/es.gmo
index 5924591..418aa25 100644
--- a/po/es.gmo
+++ b/po/es.gmo
Binary files differ
diff --git a/po/es.po b/po/es.po
index d9c6a66..3f21cb7 100644
--- a/po/es.po
+++ b/po/es.po
@@ -7,7 +7,7 @@
msgstr ""
"Project-Id-Version: gst-plugins-base 0.10.32.2\n"
"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2016-09-01 11:23+0300\n"
+"POT-Creation-Date: 2016-09-30 12:11+0300\n"
"PO-Revision-Date: 2011-10-02 15:46+0200\n"
"Last-Translator: Jorge González González <aloriel@gmail.com>\n"
"Language-Team: Spanish <es@li.org>\n"
diff --git a/po/eu.gmo b/po/eu.gmo
index 946e7f2..a3c1d91 100644
--- a/po/eu.gmo
+++ b/po/eu.gmo
Binary files differ
diff --git a/po/eu.po b/po/eu.po
index 1f1bce7..c58786d 100644
--- a/po/eu.po
+++ b/po/eu.po
@@ -8,7 +8,7 @@
msgstr ""
"Project-Id-Version: gst-plugins-base-0.10.26.2\n"
"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2016-09-01 11:23+0300\n"
+"POT-Creation-Date: 2016-09-30 12:11+0300\n"
"PO-Revision-Date: 2010-03-25 12:32+0100\n"
"Last-Translator: Mikel Olasagasti Uranga <hey_neken@mundurat.net>\n"
"Language-Team: Basque <translation-team-eu@lists.sourceforge.net>\n"
diff --git a/po/fi.gmo b/po/fi.gmo
index e3ef7c0..feab351 100644
--- a/po/fi.gmo
+++ b/po/fi.gmo
Binary files differ
diff --git a/po/fi.po b/po/fi.po
index b1a889e..99db27c 100644
--- a/po/fi.po
+++ b/po/fi.po
@@ -12,7 +12,7 @@
msgstr ""
"Project-Id-Version: gst-plugins-base 0.10.30.3\n"
"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2016-09-01 11:23+0300\n"
+"POT-Creation-Date: 2016-09-30 12:11+0300\n"
"PO-Revision-Date: 2010-12-31 23:21+0200\n"
"Last-Translator: Tommi Vainikainen <Tommi.Vainikainen@iki.fi>\n"
"Language-Team: Finnish <translation-team-fi@lists.sourceforge.net>\n"
diff --git a/po/fr.gmo b/po/fr.gmo
index 050fff3..eabc8f2 100644
--- a/po/fr.gmo
+++ b/po/fr.gmo
Binary files differ
diff --git a/po/fr.po b/po/fr.po
index 8f480ab..ffd37dd 100644
--- a/po/fr.po
+++ b/po/fr.po
@@ -10,7 +10,7 @@
msgstr ""
"Project-Id-Version: gst-plugins-base 1.7.90\n"
"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2016-09-01 11:23+0300\n"
+"POT-Creation-Date: 2016-09-30 12:11+0300\n"
"PO-Revision-Date: 2016-03-04 13:08+0100\n"
"Last-Translator: Stéphane Aulery <lkppo@free.fr>\n"
"Language-Team: French <traduc@traduc.org>\n"
diff --git a/po/gl.gmo b/po/gl.gmo
index d163f88..5a5b274 100644
--- a/po/gl.gmo
+++ b/po/gl.gmo
Binary files differ
diff --git a/po/gl.po b/po/gl.po
index ef4f29b..a757242 100644
--- a/po/gl.po
+++ b/po/gl.po
@@ -8,7 +8,7 @@
msgstr ""
"Project-Id-Version: gst-plugins-base 1.0.3\n"
"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2016-09-01 11:23+0300\n"
+"POT-Creation-Date: 2016-09-30 12:11+0300\n"
"PO-Revision-Date: 2012-12-15 03:40+0200\n"
"Last-Translator: Fran Dieguez <frandieguez@ubuntu.com>\n"
"Language-Team: Galician <proxecto@trasno.net>\n"
diff --git a/po/gst-plugins-base-1.0.pot b/po/gst-plugins-base-1.0.pot
index b4c46df..daf9488 100644
--- a/po/gst-plugins-base-1.0.pot
+++ b/po/gst-plugins-base-1.0.pot
@@ -5,9 +5,9 @@
#, fuzzy
msgid ""
msgstr ""
-"Project-Id-Version: gst-plugins-base 1.9.2\n"
+"Project-Id-Version: gst-plugins-base 1.9.90\n"
"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2016-09-01 11:23+0300\n"
+"POT-Creation-Date: 2016-09-30 12:11+0300\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
@@ -98,11 +98,11 @@
msgid "Missing element '%s' - check your GStreamer installation."
msgstr ""
-#: gst/playback/gstdecodebin2.c:1893 gst/playback/gstparsebin.c:1572
+#: gst/playback/gstdecodebin2.c:1865 gst/playback/gstparsebin.c:1572
msgid "Could not determine type of stream"
msgstr ""
-#: gst/playback/gstdecodebin2.c:2869 gst/playback/gstparsebin.c:2405
+#: gst/playback/gstdecodebin2.c:2841 gst/playback/gstparsebin.c:2405
msgid "This appears to be a text file"
msgstr ""
@@ -110,11 +110,11 @@
msgid "Could not create \"uridecodebin\" element."
msgstr ""
-#: gst/playback/gstplaybin3.c:5317
+#: gst/playback/gstplaybin3.c:4643
msgid "Could not create \"decodebin3\" element."
msgstr ""
-#: gst/playback/gstplaybin3.c:5563
+#: gst/playback/gstplaybin3.c:4889
msgid "Could not create \"urisourcebin\" element."
msgstr ""
@@ -199,7 +199,7 @@
msgid "No URI handler implemented for \"%s\"."
msgstr ""
-#: gst/playback/gsturidecodebin.c:2299 gst/playback/gsturisourcebin.c:2204
+#: gst/playback/gsturidecodebin.c:2292 gst/playback/gsturisourcebin.c:2200
msgid "Source element is invalid."
msgstr ""
@@ -677,7 +677,7 @@
msgid "Initial key in which the sound starts"
msgstr ""
-#: tools/gst-device-monitor.c:156 tools/gst-play.c:1163
+#: tools/gst-device-monitor.c:156 tools/gst-play.c:1166
msgid "Print version information and exit"
msgstr ""
@@ -701,7 +701,7 @@
msgstr ""
#: tools/gst-play.c:365 tools/gst-play.c:411 tools/gst-play.c:763
-#: tools/gst-play.c:1067
+#: tools/gst-play.c:1070
msgid "Reached end of play list."
msgstr ""
@@ -729,143 +729,143 @@
msgid "Could not change playback rate to %.2f"
msgstr ""
-#: tools/gst-play.c:1007
+#: tools/gst-play.c:1010
msgid "space"
msgstr ""
-#: tools/gst-play.c:1007
+#: tools/gst-play.c:1010
msgid "pause/unpause"
msgstr ""
-#: tools/gst-play.c:1008
+#: tools/gst-play.c:1011
msgid "q or ESC"
msgstr ""
-#: tools/gst-play.c:1008
+#: tools/gst-play.c:1011
msgid "quit"
msgstr ""
-#: tools/gst-play.c:1009
+#: tools/gst-play.c:1012
msgid "> or n"
msgstr ""
-#: tools/gst-play.c:1009
+#: tools/gst-play.c:1012
msgid "play next"
msgstr ""
-#: tools/gst-play.c:1010
+#: tools/gst-play.c:1013
msgid "< or b"
msgstr ""
-#: tools/gst-play.c:1010
+#: tools/gst-play.c:1013
msgid "play previous"
msgstr ""
-#: tools/gst-play.c:1011
+#: tools/gst-play.c:1014
msgid "seek forward"
msgstr ""
-#: tools/gst-play.c:1012
+#: tools/gst-play.c:1015
msgid "seek backward"
msgstr ""
-#: tools/gst-play.c:1013
+#: tools/gst-play.c:1016
msgid "volume up"
msgstr ""
-#: tools/gst-play.c:1014
+#: tools/gst-play.c:1017
msgid "volume down"
msgstr ""
-#: tools/gst-play.c:1015
+#: tools/gst-play.c:1018
msgid "increase playback rate"
msgstr ""
-#: tools/gst-play.c:1016
+#: tools/gst-play.c:1019
msgid "decrease playback rate"
msgstr ""
-#: tools/gst-play.c:1017
+#: tools/gst-play.c:1020
msgid "change playback direction"
msgstr ""
-#: tools/gst-play.c:1018
+#: tools/gst-play.c:1021
msgid "enable/disable trick modes"
msgstr ""
-#: tools/gst-play.c:1019
+#: tools/gst-play.c:1022
msgid "change audio track"
msgstr ""
-#: tools/gst-play.c:1020
+#: tools/gst-play.c:1023
msgid "change video track"
msgstr ""
-#: tools/gst-play.c:1021
+#: tools/gst-play.c:1024
msgid "change subtitle track"
msgstr ""
-#: tools/gst-play.c:1022
+#: tools/gst-play.c:1025
msgid "seek to beginning"
msgstr ""
-#: tools/gst-play.c:1023
+#: tools/gst-play.c:1026
msgid "show keyboard shortcuts"
msgstr ""
-#: tools/gst-play.c:1026
+#: tools/gst-play.c:1029
msgid "Interactive mode - keyboard controls:"
msgstr ""
-#: tools/gst-play.c:1158
+#: tools/gst-play.c:1161
msgid "Output status information and property notifications"
msgstr ""
-#: tools/gst-play.c:1160
+#: tools/gst-play.c:1163
msgid "Control playback behaviour setting playbin 'flags' property"
msgstr ""
-#: tools/gst-play.c:1165
+#: tools/gst-play.c:1168
msgid "Video sink to use (default is autovideosink)"
msgstr ""
-#: tools/gst-play.c:1167
+#: tools/gst-play.c:1170
msgid "Audio sink to use (default is autoaudiosink)"
msgstr ""
-#: tools/gst-play.c:1169
+#: tools/gst-play.c:1172
msgid "Enable gapless playback"
msgstr ""
-#: tools/gst-play.c:1171
+#: tools/gst-play.c:1174
msgid "Shuffle playlist"
msgstr ""
-#: tools/gst-play.c:1174
+#: tools/gst-play.c:1177
msgid "Disable interactive control via the keyboard"
msgstr ""
-#: tools/gst-play.c:1176
+#: tools/gst-play.c:1179
msgid "Volume"
msgstr ""
-#: tools/gst-play.c:1178
+#: tools/gst-play.c:1181
msgid "Playlist file containing input media files"
msgstr ""
-#: tools/gst-play.c:1180
+#: tools/gst-play.c:1183
msgid "Do not print any output (apart from errors)"
msgstr ""
-#: tools/gst-play.c:1251
+#: tools/gst-play.c:1254
#, c-format
msgid "Usage: %s FILE1|URI1 [FILE2|URI2] [FILE3|URI3] ..."
msgstr ""
-#: tools/gst-play.c:1255
+#: tools/gst-play.c:1258
msgid "You must provide at least one filename or URI to play."
msgstr ""
-#: tools/gst-play.c:1295
+#: tools/gst-play.c:1298
msgid "Press 'k' to see a list of keyboard shortcuts.\n"
msgstr ""
diff --git a/po/hr.gmo b/po/hr.gmo
index a75f20a..b056894 100644
--- a/po/hr.gmo
+++ b/po/hr.gmo
Binary files differ
diff --git a/po/hr.po b/po/hr.po
index 293a260..f2e39ae 100644
--- a/po/hr.po
+++ b/po/hr.po
@@ -7,7 +7,7 @@
msgstr ""
"Project-Id-Version: gst-plugins-base 1.7.90\n"
"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2016-09-01 11:23+0300\n"
+"POT-Creation-Date: 2016-09-30 12:11+0300\n"
"PO-Revision-Date: 2016-05-27 12:47-0700\n"
"Last-Translator: Božidar Putanec <bozidarp@yahoo.com>\n"
"Language-Team: Croatian <lokalizacija@linux.hr>\n"
diff --git a/po/hu.gmo b/po/hu.gmo
index df76ca8..27db305 100644
--- a/po/hu.gmo
+++ b/po/hu.gmo
Binary files differ
diff --git a/po/hu.po b/po/hu.po
index ad56618..bcfb214 100644
--- a/po/hu.po
+++ b/po/hu.po
@@ -9,7 +9,7 @@
msgstr ""
"Project-Id-Version: gst-plugins-base 1.7.90\n"
"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2016-09-01 11:23+0300\n"
+"POT-Creation-Date: 2016-09-30 12:11+0300\n"
"PO-Revision-Date: 2016-03-14 19:14+0100\n"
"Last-Translator: Gabor Kelemen <kelemeng@gnome.hu>\n"
"Language-Team: Hungarian <translation-team-hu@lists.sourceforge.net>\n"
diff --git a/po/id.gmo b/po/id.gmo
index 853de70..dbe5e2c 100644
--- a/po/id.gmo
+++ b/po/id.gmo
Binary files differ
diff --git a/po/id.po b/po/id.po
index 433331a..97dd1ce 100644
--- a/po/id.po
+++ b/po/id.po
@@ -7,7 +7,7 @@
msgstr ""
"Project-Id-Version: gst-plugins-base 1.4.0\n"
"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2016-09-01 11:23+0300\n"
+"POT-Creation-Date: 2016-09-30 12:11+0300\n"
"PO-Revision-Date: 2014-07-30 09:19+0700\n"
"Last-Translator: Andhika Padmawan <andhika.padmawan@gmail.com>\n"
"Language-Team: Indonesian <translation-team-id@lists.sourceforge.net>\n"
diff --git a/po/it.gmo b/po/it.gmo
index d273a5f..f03b5e9 100644
--- a/po/it.gmo
+++ b/po/it.gmo
Binary files differ
diff --git a/po/it.po b/po/it.po
index 0ac18fb..b4016b3 100644
--- a/po/it.po
+++ b/po/it.po
@@ -7,7 +7,7 @@
msgstr ""
"Project-Id-Version: gst-plugins-base 0.10.28.2\n"
"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2016-09-01 11:23+0300\n"
+"POT-Creation-Date: 2016-09-30 12:11+0300\n"
"PO-Revision-Date: 2010-04-28 14:27+0200\n"
"Last-Translator: Luca Ferretti <elle.uca@infinito.it>\n"
"Language-Team: Italian <tp@lists.linux.it>\n"
diff --git a/po/ja.gmo b/po/ja.gmo
index 69c5e70..1e4499c 100644
--- a/po/ja.gmo
+++ b/po/ja.gmo
Binary files differ
diff --git a/po/ja.po b/po/ja.po
index 0103bc0..9bc7afc 100644
--- a/po/ja.po
+++ b/po/ja.po
@@ -6,7 +6,7 @@
msgstr ""
"Project-Id-Version: gst-plugins-base 0.10.30.3\n"
"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2016-09-01 11:23+0300\n"
+"POT-Creation-Date: 2016-09-30 12:11+0300\n"
"PO-Revision-Date: 2010-10-25 10:27+0900\n"
"Last-Translator: Makoto Kato <makoto.kt@gmail.com>\n"
"Language-Team: Japanese <translation-team-ja@lists.sourceforge.net>\n"
diff --git a/po/lt.gmo b/po/lt.gmo
index 0889be2..1e2e745 100644
--- a/po/lt.gmo
+++ b/po/lt.gmo
Binary files differ
diff --git a/po/lt.po b/po/lt.po
index 7992751..b823e7f 100644
--- a/po/lt.po
+++ b/po/lt.po
@@ -7,7 +7,7 @@
msgstr ""
"Project-Id-Version: gst-plugins-base-0.10.15.2\n"
"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2016-09-01 11:23+0300\n"
+"POT-Creation-Date: 2016-09-30 12:11+0300\n"
"PO-Revision-Date: 2008-03-07 23:43+0200\n"
"Last-Translator: Gintautas Miliauskas <gintas@akl.lt>\n"
"Language-Team: Lithuanian <komp_lt@konferencijos.lt>\n"
diff --git a/po/lv.gmo b/po/lv.gmo
index 1c5788a..59e8353 100644
--- a/po/lv.gmo
+++ b/po/lv.gmo
Binary files differ
diff --git a/po/lv.po b/po/lv.po
index 1438c10..e925ed6 100644
--- a/po/lv.po
+++ b/po/lv.po
@@ -9,7 +9,7 @@
msgstr ""
"Project-Id-Version: gst-plugins-base 1.2.1\n"
"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2016-09-01 11:23+0300\n"
+"POT-Creation-Date: 2016-09-30 12:11+0300\n"
"PO-Revision-Date: 2014-04-20 16:15+0300\n"
"Last-Translator: Rihards Prieditis <rprieditis@gmail.com>\n"
"Language-Team: Latvian <translation-team-lv@lists.sourceforge.net>\n"
diff --git a/po/nb.gmo b/po/nb.gmo
index ade0eb5..0fffd24 100644
--- a/po/nb.gmo
+++ b/po/nb.gmo
Binary files differ
diff --git a/po/nb.po b/po/nb.po
index 9660138..032f151 100644
--- a/po/nb.po
+++ b/po/nb.po
@@ -8,7 +8,7 @@
msgstr ""
"Project-Id-Version: gst-plugins-base 1.7.90\n"
"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2016-09-01 11:23+0300\n"
+"POT-Creation-Date: 2016-09-30 12:11+0300\n"
"PO-Revision-Date: 2016-08-05 23:45+0200\n"
"Last-Translator: Johnny A. Solbu <johnny@solbu.net>\n"
"Language-Team: Norwegian Bokmaal <i18n-nb@lister.ping.uio.no>\n"
diff --git a/po/nl.gmo b/po/nl.gmo
index 518ba36..04e52c2 100644
--- a/po/nl.gmo
+++ b/po/nl.gmo
Binary files differ
diff --git a/po/nl.po b/po/nl.po
index b5c8ad1..b7f4ed2 100644
--- a/po/nl.po
+++ b/po/nl.po
@@ -6,7 +6,7 @@
msgstr ""
"Project-Id-Version: gst-plugins-base 1.7.2\n"
"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2016-09-01 11:23+0300\n"
+"POT-Creation-Date: 2016-09-30 12:11+0300\n"
"PO-Revision-Date: 2016-02-20 16:39+0100\n"
"Last-Translator: Freek de Kruijf <f.de.kruijf@gmail.com>\n"
"Language-Team: Dutch <vertaling@vrijschrift.org>\n"
diff --git a/po/or.gmo b/po/or.gmo
index 3d55873..a45aa9a 100644
--- a/po/or.gmo
+++ b/po/or.gmo
Binary files differ
diff --git a/po/or.po b/po/or.po
index f9bad45..5a5510f 100644
--- a/po/or.po
+++ b/po/or.po
@@ -8,7 +8,7 @@
msgstr ""
"Project-Id-Version: gst-plugins-0.8.3\n"
"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2016-09-01 11:23+0300\n"
+"POT-Creation-Date: 2016-09-30 12:11+0300\n"
"PO-Revision-Date: 2004-09-27 13:32+0530\n"
"Last-Translator: Gora Mohanty <gora_mohanty@yahoo.co.in>\n"
"Language-Team: Oriya <gora_mohanty@yahoo.co.in>\n"
diff --git a/po/pl.gmo b/po/pl.gmo
index 99db862..5d58c98 100644
--- a/po/pl.gmo
+++ b/po/pl.gmo
Binary files differ
diff --git a/po/pl.po b/po/pl.po
index e0115c5..5e8e273 100644
--- a/po/pl.po
+++ b/po/pl.po
@@ -6,7 +6,7 @@
msgstr ""
"Project-Id-Version: gst-plugins-base 1.7.90\n"
"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2016-09-01 11:23+0300\n"
+"POT-Creation-Date: 2016-09-30 12:11+0300\n"
"PO-Revision-Date: 2016-03-02 22:08+0100\n"
"Last-Translator: Jakub Bogusz <qboosh@pld-linux.org>\n"
"Language-Team: Polish <translation-team-pl@lists.sourceforge.net>\n"
diff --git a/po/pt_BR.gmo b/po/pt_BR.gmo
index 871909c..f1f4304 100644
--- a/po/pt_BR.gmo
+++ b/po/pt_BR.gmo
Binary files differ
diff --git a/po/pt_BR.po b/po/pt_BR.po
index 9b7e9b4..321b9c5 100644
--- a/po/pt_BR.po
+++ b/po/pt_BR.po
@@ -11,7 +11,7 @@
msgstr ""
"Project-Id-Version: gst-plugins-base-1.7.90\n"
"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2016-09-01 11:23+0300\n"
+"POT-Creation-Date: 2016-09-30 12:11+0300\n"
"PO-Revision-Date: 2016-05-06 16:47-0300\n"
"Last-Translator: Fabrício Godoy <skarllot@gmail.com>\n"
"Language-Team: Brazilian Portuguese <ldpbr-translation@lists.sourceforge."
diff --git a/po/ro.gmo b/po/ro.gmo
index 70d198a..ec54480 100644
--- a/po/ro.gmo
+++ b/po/ro.gmo
Binary files differ
diff --git a/po/ro.po b/po/ro.po
index 03f84a9..d911230 100644
--- a/po/ro.po
+++ b/po/ro.po
@@ -5,7 +5,7 @@
msgstr ""
"Project-Id-Version: gst-plugins-base 0.10.29.2\n"
"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2016-09-01 11:23+0300\n"
+"POT-Creation-Date: 2016-09-30 12:11+0300\n"
"PO-Revision-Date: 2010-08-16 01:21+0300\n"
"Last-Translator: Lucian Adrian Grijincu <lucian.grijincu@gmail.com>\n"
"Language-Team: Romanian <translation-team-ro@lists.sourceforge.net>\n"
diff --git a/po/ru.gmo b/po/ru.gmo
index 2832df2..8250574 100644
--- a/po/ru.gmo
+++ b/po/ru.gmo
Binary files differ
diff --git a/po/ru.po b/po/ru.po
index b842706..cf3884c 100644
--- a/po/ru.po
+++ b/po/ru.po
@@ -8,7 +8,7 @@
msgstr ""
"Project-Id-Version: gst-plugins-base 1.7.90\n"
"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2016-09-01 11:23+0300\n"
+"POT-Creation-Date: 2016-09-30 12:11+0300\n"
"PO-Revision-Date: 2016-03-05 08:42+0300\n"
"Last-Translator: Yuri Kozlov <yuray@komyakino.ru>\n"
"Language-Team: Russian <gnu@d07.ru>\n"
diff --git a/po/sk.gmo b/po/sk.gmo
index 547ebf7..75f9350 100644
--- a/po/sk.gmo
+++ b/po/sk.gmo
Binary files differ
diff --git a/po/sk.po b/po/sk.po
index 8f1d9ad..5317a69 100644
--- a/po/sk.po
+++ b/po/sk.po
@@ -6,7 +6,7 @@
msgstr ""
"Project-Id-Version: gst-plugins-base 1.7.90\n"
"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2016-09-01 11:23+0300\n"
+"POT-Creation-Date: 2016-09-30 12:11+0300\n"
"PO-Revision-Date: 2016-05-20 12:24+0100\n"
"Last-Translator: Peter Tuhársky <tuharsky@misbb.sk>\n"
"Language-Team: Slovak <sk-i18n@lists.linux.sk>\n"
diff --git a/po/sl.gmo b/po/sl.gmo
index 634e8c3..96a200c 100644
--- a/po/sl.gmo
+++ b/po/sl.gmo
Binary files differ
diff --git a/po/sl.po b/po/sl.po
index 618eb5b..ba445b0 100644
--- a/po/sl.po
+++ b/po/sl.po
@@ -10,7 +10,7 @@
msgstr ""
"Project-Id-Version: gst-plugins-base-1.0.3\n"
"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2016-09-01 11:23+0300\n"
+"POT-Creation-Date: 2016-09-30 12:11+0300\n"
"PO-Revision-Date: 2013-01-05 10:10+0100\n"
"Last-Translator: Klemen Košir <klemen913@gmail.com>\n"
"Language-Team: Slovenian <translation-team-sl@lists.sourceforge.net>\n"
diff --git a/po/sq.gmo b/po/sq.gmo
index 1fb46ec..047d8b4 100644
--- a/po/sq.gmo
+++ b/po/sq.gmo
Binary files differ
diff --git a/po/sq.po b/po/sq.po
index b8ed73f..cd183e0 100644
--- a/po/sq.po
+++ b/po/sq.po
@@ -6,7 +6,7 @@
msgstr ""
"Project-Id-Version: gst-plugins 0.8.3\n"
"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2016-09-01 11:23+0300\n"
+"POT-Creation-Date: 2016-09-30 12:11+0300\n"
"PO-Revision-Date: 2004-08-07 20:29+0200\n"
"Last-Translator: Laurent Dhima <laurenti@alblinux.net>\n"
"Language-Team: Albanian <begraj@hotmail.com>\n"
diff --git a/po/sr.gmo b/po/sr.gmo
index 2395a76..c79a890 100644
--- a/po/sr.gmo
+++ b/po/sr.gmo
Binary files differ
diff --git a/po/sr.po b/po/sr.po
index c36b346..8dc61b4 100644
--- a/po/sr.po
+++ b/po/sr.po
@@ -7,7 +7,7 @@
msgstr ""
"Project-Id-Version: gst-plugins-base-1.7.90\n"
"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2016-09-01 11:23+0300\n"
+"POT-Creation-Date: 2016-09-30 12:11+0300\n"
"PO-Revision-Date: 2016-03-05 09:48+0200\n"
"Last-Translator: Мирослав Николић <miroslavnikolic@rocketmail.com>\n"
"Language-Team: Serbian <(nothing)>\n"
diff --git a/po/sv.gmo b/po/sv.gmo
index 6ea4537..4db36b8 100644
--- a/po/sv.gmo
+++ b/po/sv.gmo
Binary files differ
diff --git a/po/sv.po b/po/sv.po
index bdee53c..b3e7716 100644
--- a/po/sv.po
+++ b/po/sv.po
@@ -9,7 +9,7 @@
msgstr ""
"Project-Id-Version: gst-plugins-base 1.7.90\n"
"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2016-09-01 11:23+0300\n"
+"POT-Creation-Date: 2016-09-30 12:11+0300\n"
"PO-Revision-Date: 2016-03-02 22:20+0100\n"
"Last-Translator: Sebastian Rasmussen <sebras@gmail.com>\n"
"Language-Team: Swedish <tp-sv@listor.tp-sv.se>\n"
diff --git a/po/tr.gmo b/po/tr.gmo
index d6df2e4..faf642f 100644
--- a/po/tr.gmo
+++ b/po/tr.gmo
Binary files differ
diff --git a/po/tr.po b/po/tr.po
index 5c7cf38..0b22684 100644
--- a/po/tr.po
+++ b/po/tr.po
@@ -7,7 +7,7 @@
msgstr ""
"Project-Id-Version: gst-plugins-base 1.4.1\n"
"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2016-09-01 11:23+0300\n"
+"POT-Creation-Date: 2016-09-30 12:11+0300\n"
"PO-Revision-Date: 2015-01-10 21:07+0100\n"
"Last-Translator: Volkan Gezer <volkangezer@gmail.com>\n"
"Language-Team: Turkish <gnu-tr-u12a@lists.sourceforge.net>\n"
diff --git a/po/uk.gmo b/po/uk.gmo
index 1c4811f..7c7c387 100644
--- a/po/uk.gmo
+++ b/po/uk.gmo
Binary files differ
diff --git a/po/uk.po b/po/uk.po
index 57656f0..1381539 100644
--- a/po/uk.po
+++ b/po/uk.po
@@ -8,7 +8,7 @@
msgstr ""
"Project-Id-Version: gst-plugins-base 1.7.90\n"
"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2016-09-01 11:23+0300\n"
+"POT-Creation-Date: 2016-09-30 12:11+0300\n"
"PO-Revision-Date: 2016-03-02 22:05+0200\n"
"Last-Translator: Yuri Chornoivan <yurchor@ukr.net>\n"
"Language-Team: Ukrainian <translation-team-uk@lists.sourceforge.net>\n"
diff --git a/po/vi.gmo b/po/vi.gmo
index 60b6887..65b6a38 100644
--- a/po/vi.gmo
+++ b/po/vi.gmo
Binary files differ
diff --git a/po/vi.po b/po/vi.po
index 982afa6..eb5a0d1 100644
--- a/po/vi.po
+++ b/po/vi.po
@@ -9,7 +9,7 @@
msgstr ""
"Project-Id-Version: gst-plugins-base 1.7.90\n"
"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2016-09-01 11:23+0300\n"
+"POT-Creation-Date: 2016-09-30 12:11+0300\n"
"PO-Revision-Date: 2016-03-03 07:49+0700\n"
"Last-Translator: Trần Ngọc Quân <vnwildman@gmail.com>\n"
"Language-Team: Vietnamese <translation-team-vi@lists.sourceforge.net>\n"
diff --git a/po/zh_CN.gmo b/po/zh_CN.gmo
index 140d1b5..054d9d4 100644
--- a/po/zh_CN.gmo
+++ b/po/zh_CN.gmo
Binary files differ
diff --git a/po/zh_CN.po b/po/zh_CN.po
index 2d82144..8ea9070 100644
--- a/po/zh_CN.po
+++ b/po/zh_CN.po
@@ -7,7 +7,7 @@
msgstr ""
"Project-Id-Version: gst-plugins-base 1.7.90\n"
"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2016-09-01 11:23+0300\n"
+"POT-Creation-Date: 2016-09-30 12:11+0300\n"
"PO-Revision-Date: 2016-03-03 12:15+0800\n"
"Last-Translator: Tianze Wang <zwpwjwtz@126.com>\n"
"Language-Team: Chinese (simplified) <i18n-zh@googlegroups.com>\n"
diff --git a/sys/Makefile.in b/sys/Makefile.in
index c6fe4e6..73962f0 100644
--- a/sys/Makefile.in
+++ b/sys/Makefile.in
@@ -427,6 +427,9 @@
SED = @SED@
SET_MAKE = @SET_MAKE@
SHELL = @SHELL@
+SSE2_CFLAGS = @SSE2_CFLAGS@
+SSE41_CFLAGS = @SSE41_CFLAGS@
+SSE_CFLAGS = @SSE_CFLAGS@
STRIP = @STRIP@
THEORA_CFLAGS = @THEORA_CFLAGS@
THEORA_LIBS = @THEORA_LIBS@
diff --git a/sys/ximage/Makefile.in b/sys/ximage/Makefile.in
index a46e765..373a975 100644
--- a/sys/ximage/Makefile.in
+++ b/sys/ximage/Makefile.in
@@ -448,6 +448,9 @@
SED = @SED@
SET_MAKE = @SET_MAKE@
SHELL = @SHELL@
+SSE2_CFLAGS = @SSE2_CFLAGS@
+SSE41_CFLAGS = @SSE41_CFLAGS@
+SSE_CFLAGS = @SSE_CFLAGS@
STRIP = @STRIP@
THEORA_CFLAGS = @THEORA_CFLAGS@
THEORA_LIBS = @THEORA_LIBS@
diff --git a/sys/xvimage/Makefile.in b/sys/xvimage/Makefile.in
index ba10389..6517d39 100644
--- a/sys/xvimage/Makefile.in
+++ b/sys/xvimage/Makefile.in
@@ -450,6 +450,9 @@
SED = @SED@
SET_MAKE = @SET_MAKE@
SHELL = @SHELL@
+SSE2_CFLAGS = @SSE2_CFLAGS@
+SSE41_CFLAGS = @SSE41_CFLAGS@
+SSE_CFLAGS = @SSE_CFLAGS@
STRIP = @STRIP@
THEORA_CFLAGS = @THEORA_CFLAGS@
THEORA_LIBS = @THEORA_LIBS@
diff --git a/tests/Makefile.in b/tests/Makefile.in
index 192354b..3b50ba9 100644
--- a/tests/Makefile.in
+++ b/tests/Makefile.in
@@ -421,6 +421,9 @@
SED = @SED@
SET_MAKE = @SET_MAKE@
SHELL = @SHELL@
+SSE2_CFLAGS = @SSE2_CFLAGS@
+SSE41_CFLAGS = @SSE41_CFLAGS@
+SSE_CFLAGS = @SSE_CFLAGS@
STRIP = @STRIP@
THEORA_CFLAGS = @THEORA_CFLAGS@
THEORA_LIBS = @THEORA_LIBS@
diff --git a/tests/check/Makefile.am b/tests/check/Makefile.am
index 9b9dc11..a70b3cf 100644
--- a/tests/check/Makefile.am
+++ b/tests/check/Makefile.am
@@ -122,7 +122,9 @@
endif
if USE_PLUGIN_VIDEOSCALE
-check_videoscale = elements/videoscale
+check_videoscale = elements/videoscale elements/videoscale-1 \
+ elements/videoscale-2 elements/videoscale-3 elements/videoscale-4 \
+ elements/videoscale-5 elements/videoscale-6
else
check_videoscale =
endif
@@ -589,6 +591,25 @@
$(top_builddir)/gst-libs/gst/video/libgstvideo-@GST_API_VERSION@.la \
$(GST_BASE_LIBS) $(LDADD)
+elements_videoscale_1_SOURCES = elements/videoscale.c
+elements_videoscale_1_CFLAGS = $(elements_videoscale_CFLAGS) -DVSCALE_TEST_GROUP=1
+elements_videoscale_1_LDADD = $(elements_videoscale_LDADD)
+elements_videoscale_2_SOURCES = elements/videoscale.c
+elements_videoscale_2_CFLAGS = $(elements_videoscale_CFLAGS) -DVSCALE_TEST_GROUP=2
+elements_videoscale_2_LDADD = $(elements_videoscale_LDADD)
+elements_videoscale_3_SOURCES = elements/videoscale.c
+elements_videoscale_3_CFLAGS = $(elements_videoscale_CFLAGS) -DVSCALE_TEST_GROUP=3
+elements_videoscale_3_LDADD = $(elements_videoscale_LDADD)
+elements_videoscale_4_SOURCES = elements/videoscale.c
+elements_videoscale_4_CFLAGS = $(elements_videoscale_CFLAGS) -DVSCALE_TEST_GROUP=4
+elements_videoscale_4_LDADD = $(elements_videoscale_LDADD)
+elements_videoscale_5_SOURCES = elements/videoscale.c
+elements_videoscale_5_CFLAGS = $(elements_videoscale_CFLAGS) -DVSCALE_TEST_GROUP=5
+elements_videoscale_5_LDADD = $(elements_videoscale_LDADD)
+elements_videoscale_6_SOURCES = elements/videoscale.c
+elements_videoscale_6_CFLAGS = $(elements_videoscale_CFLAGS) -DVSCALE_TEST_GROUP=6
+elements_videoscale_6_LDADD = $(elements_videoscale_LDADD)
+
gst_typefindfunctions_CFLAGS = $(GST_BASE_CFLAGS) $(AM_CFLAGS)
gst_typefindfunctions_LDADD = $(GST_BASE_LIBS) $(LDADD)
diff --git a/tests/check/Makefile.in b/tests/check/Makefile.in
index ee4c002..e9cfddd 100644
--- a/tests/check/Makefile.in
+++ b/tests/check/Makefile.in
@@ -193,7 +193,13 @@
@USE_PLUGIN_VIDEORATE_TRUE@am__EXEEXT_18 = \
@USE_PLUGIN_VIDEORATE_TRUE@ elements/videorate$(EXEEXT)
@USE_PLUGIN_VIDEOSCALE_TRUE@am__EXEEXT_19 = \
-@USE_PLUGIN_VIDEOSCALE_TRUE@ elements/videoscale$(EXEEXT)
+@USE_PLUGIN_VIDEOSCALE_TRUE@ elements/videoscale$(EXEEXT) \
+@USE_PLUGIN_VIDEOSCALE_TRUE@ elements/videoscale-1$(EXEEXT) \
+@USE_PLUGIN_VIDEOSCALE_TRUE@ elements/videoscale-2$(EXEEXT) \
+@USE_PLUGIN_VIDEOSCALE_TRUE@ elements/videoscale-3$(EXEEXT) \
+@USE_PLUGIN_VIDEOSCALE_TRUE@ elements/videoscale-4$(EXEEXT) \
+@USE_PLUGIN_VIDEOSCALE_TRUE@ elements/videoscale-5$(EXEEXT) \
+@USE_PLUGIN_VIDEOSCALE_TRUE@ elements/videoscale-6$(EXEEXT)
@USE_PLUGIN_VIDEOTESTSRC_TRUE@am__EXEEXT_20 = \
@USE_PLUGIN_VIDEOTESTSRC_TRUE@ elements/videotestsrc$(EXEEXT)
@USE_PLUGIN_VOLUME_TRUE@am__EXEEXT_21 = elements/volume$(EXEEXT)
@@ -387,6 +393,56 @@
$(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CCLD) \
$(elements_videoscale_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \
$(LDFLAGS) -o $@
+am_elements_videoscale_1_OBJECTS = \
+ elements/elements_videoscale_1-videoscale.$(OBJEXT)
+elements_videoscale_1_OBJECTS = $(am_elements_videoscale_1_OBJECTS)
+am__DEPENDENCIES_3 = $(top_builddir)/gst-libs/gst/video/libgstvideo-@GST_API_VERSION@.la \
+ $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_2)
+elements_videoscale_1_DEPENDENCIES = $(am__DEPENDENCIES_3)
+elements_videoscale_1_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \
+ $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CCLD) \
+ $(elements_videoscale_1_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \
+ $(LDFLAGS) -o $@
+am_elements_videoscale_2_OBJECTS = \
+ elements/elements_videoscale_2-videoscale.$(OBJEXT)
+elements_videoscale_2_OBJECTS = $(am_elements_videoscale_2_OBJECTS)
+elements_videoscale_2_DEPENDENCIES = $(am__DEPENDENCIES_3)
+elements_videoscale_2_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \
+ $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CCLD) \
+ $(elements_videoscale_2_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \
+ $(LDFLAGS) -o $@
+am_elements_videoscale_3_OBJECTS = \
+ elements/elements_videoscale_3-videoscale.$(OBJEXT)
+elements_videoscale_3_OBJECTS = $(am_elements_videoscale_3_OBJECTS)
+elements_videoscale_3_DEPENDENCIES = $(am__DEPENDENCIES_3)
+elements_videoscale_3_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \
+ $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CCLD) \
+ $(elements_videoscale_3_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \
+ $(LDFLAGS) -o $@
+am_elements_videoscale_4_OBJECTS = \
+ elements/elements_videoscale_4-videoscale.$(OBJEXT)
+elements_videoscale_4_OBJECTS = $(am_elements_videoscale_4_OBJECTS)
+elements_videoscale_4_DEPENDENCIES = $(am__DEPENDENCIES_3)
+elements_videoscale_4_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \
+ $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CCLD) \
+ $(elements_videoscale_4_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \
+ $(LDFLAGS) -o $@
+am_elements_videoscale_5_OBJECTS = \
+ elements/elements_videoscale_5-videoscale.$(OBJEXT)
+elements_videoscale_5_OBJECTS = $(am_elements_videoscale_5_OBJECTS)
+elements_videoscale_5_DEPENDENCIES = $(am__DEPENDENCIES_3)
+elements_videoscale_5_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \
+ $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CCLD) \
+ $(elements_videoscale_5_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \
+ $(LDFLAGS) -o $@
+am_elements_videoscale_6_OBJECTS = \
+ elements/elements_videoscale_6-videoscale.$(OBJEXT)
+elements_videoscale_6_OBJECTS = $(am_elements_videoscale_6_OBJECTS)
+elements_videoscale_6_DEPENDENCIES = $(am__DEPENDENCIES_3)
+elements_videoscale_6_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \
+ $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CCLD) \
+ $(elements_videoscale_6_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \
+ $(LDFLAGS) -o $@
elements_videotestsrc_SOURCES = elements/videotestsrc.c
elements_videotestsrc_OBJECTS = elements/videotestsrc.$(OBJEXT)
elements_videotestsrc_LDADD = $(LDADD)
@@ -826,7 +882,12 @@
elements/playsink.c elements/streamsynchronizer.c \
elements/subparse.c elements/textoverlay.c \
elements/videoconvert.c elements/videorate.c \
- elements/videoscale.c elements/videotestsrc.c \
+ elements/videoscale.c $(elements_videoscale_1_SOURCES) \
+ $(elements_videoscale_2_SOURCES) \
+ $(elements_videoscale_3_SOURCES) \
+ $(elements_videoscale_4_SOURCES) \
+ $(elements_videoscale_5_SOURCES) \
+ $(elements_videoscale_6_SOURCES) elements/videotestsrc.c \
elements/volume.c elements/vorbisdec.c elements/vorbistag.c \
generic/clock-selection.c generic/states.c \
gst/typefindfunctions.c libs/allocators.c libs/audio.c \
@@ -855,7 +916,12 @@
elements/playsink.c elements/streamsynchronizer.c \
elements/subparse.c elements/textoverlay.c \
elements/videoconvert.c elements/videorate.c \
- elements/videoscale.c elements/videotestsrc.c \
+ elements/videoscale.c $(elements_videoscale_1_SOURCES) \
+ $(elements_videoscale_2_SOURCES) \
+ $(elements_videoscale_3_SOURCES) \
+ $(elements_videoscale_4_SOURCES) \
+ $(elements_videoscale_5_SOURCES) \
+ $(elements_videoscale_6_SOURCES) elements/videotestsrc.c \
elements/volume.c elements/vorbisdec.c elements/vorbistag.c \
generic/clock-selection.c generic/states.c \
gst/typefindfunctions.c libs/allocators.c libs/audio.c \
@@ -1314,6 +1380,9 @@
SED = @SED@
SET_MAKE = @SET_MAKE@
SHELL = @SHELL@
+SSE2_CFLAGS = @SSE2_CFLAGS@
+SSE41_CFLAGS = @SSE41_CFLAGS@
+SSE_CFLAGS = @SSE_CFLAGS@
STRIP = @STRIP@
THEORA_CFLAGS = @THEORA_CFLAGS@
THEORA_LIBS = @THEORA_LIBS@
@@ -1458,7 +1527,10 @@
@USE_PLUGIN_VIDEORATE_FALSE@check_videorate =
@USE_PLUGIN_VIDEORATE_TRUE@check_videorate = elements/videorate
@USE_PLUGIN_VIDEOSCALE_FALSE@check_videoscale =
-@USE_PLUGIN_VIDEOSCALE_TRUE@check_videoscale = elements/videoscale
+@USE_PLUGIN_VIDEOSCALE_TRUE@check_videoscale = elements/videoscale elements/videoscale-1 \
+@USE_PLUGIN_VIDEOSCALE_TRUE@ elements/videoscale-2 elements/videoscale-3 elements/videoscale-4 \
+@USE_PLUGIN_VIDEOSCALE_TRUE@ elements/videoscale-5 elements/videoscale-6
+
@USE_PLUGIN_VIDEOTESTSRC_FALSE@check_videotestsrc =
@USE_PLUGIN_VIDEOTESTSRC_TRUE@check_videotestsrc = elements/videotestsrc
@USE_PLUGIN_VOLUME_FALSE@check_volume =
@@ -1823,6 +1895,24 @@
$(top_builddir)/gst-libs/gst/video/libgstvideo-@GST_API_VERSION@.la \
$(GST_BASE_LIBS) $(LDADD)
+elements_videoscale_1_SOURCES = elements/videoscale.c
+elements_videoscale_1_CFLAGS = $(elements_videoscale_CFLAGS) -DVSCALE_TEST_GROUP=1
+elements_videoscale_1_LDADD = $(elements_videoscale_LDADD)
+elements_videoscale_2_SOURCES = elements/videoscale.c
+elements_videoscale_2_CFLAGS = $(elements_videoscale_CFLAGS) -DVSCALE_TEST_GROUP=2
+elements_videoscale_2_LDADD = $(elements_videoscale_LDADD)
+elements_videoscale_3_SOURCES = elements/videoscale.c
+elements_videoscale_3_CFLAGS = $(elements_videoscale_CFLAGS) -DVSCALE_TEST_GROUP=3
+elements_videoscale_3_LDADD = $(elements_videoscale_LDADD)
+elements_videoscale_4_SOURCES = elements/videoscale.c
+elements_videoscale_4_CFLAGS = $(elements_videoscale_CFLAGS) -DVSCALE_TEST_GROUP=4
+elements_videoscale_4_LDADD = $(elements_videoscale_LDADD)
+elements_videoscale_5_SOURCES = elements/videoscale.c
+elements_videoscale_5_CFLAGS = $(elements_videoscale_CFLAGS) -DVSCALE_TEST_GROUP=5
+elements_videoscale_5_LDADD = $(elements_videoscale_LDADD)
+elements_videoscale_6_SOURCES = elements/videoscale.c
+elements_videoscale_6_CFLAGS = $(elements_videoscale_CFLAGS) -DVSCALE_TEST_GROUP=6
+elements_videoscale_6_LDADD = $(elements_videoscale_LDADD)
gst_typefindfunctions_CFLAGS = $(GST_BASE_CFLAGS) $(AM_CFLAGS)
gst_typefindfunctions_LDADD = $(GST_BASE_LIBS) $(LDADD)
libs_video_CFLAGS = \
@@ -2102,6 +2192,42 @@
elements/videoscale$(EXEEXT): $(elements_videoscale_OBJECTS) $(elements_videoscale_DEPENDENCIES) $(EXTRA_elements_videoscale_DEPENDENCIES) elements/$(am__dirstamp)
@rm -f elements/videoscale$(EXEEXT)
$(AM_V_CCLD)$(elements_videoscale_LINK) $(elements_videoscale_OBJECTS) $(elements_videoscale_LDADD) $(LIBS)
+elements/elements_videoscale_1-videoscale.$(OBJEXT): \
+ elements/$(am__dirstamp) elements/$(DEPDIR)/$(am__dirstamp)
+
+elements/videoscale-1$(EXEEXT): $(elements_videoscale_1_OBJECTS) $(elements_videoscale_1_DEPENDENCIES) $(EXTRA_elements_videoscale_1_DEPENDENCIES) elements/$(am__dirstamp)
+ @rm -f elements/videoscale-1$(EXEEXT)
+ $(AM_V_CCLD)$(elements_videoscale_1_LINK) $(elements_videoscale_1_OBJECTS) $(elements_videoscale_1_LDADD) $(LIBS)
+elements/elements_videoscale_2-videoscale.$(OBJEXT): \
+ elements/$(am__dirstamp) elements/$(DEPDIR)/$(am__dirstamp)
+
+elements/videoscale-2$(EXEEXT): $(elements_videoscale_2_OBJECTS) $(elements_videoscale_2_DEPENDENCIES) $(EXTRA_elements_videoscale_2_DEPENDENCIES) elements/$(am__dirstamp)
+ @rm -f elements/videoscale-2$(EXEEXT)
+ $(AM_V_CCLD)$(elements_videoscale_2_LINK) $(elements_videoscale_2_OBJECTS) $(elements_videoscale_2_LDADD) $(LIBS)
+elements/elements_videoscale_3-videoscale.$(OBJEXT): \
+ elements/$(am__dirstamp) elements/$(DEPDIR)/$(am__dirstamp)
+
+elements/videoscale-3$(EXEEXT): $(elements_videoscale_3_OBJECTS) $(elements_videoscale_3_DEPENDENCIES) $(EXTRA_elements_videoscale_3_DEPENDENCIES) elements/$(am__dirstamp)
+ @rm -f elements/videoscale-3$(EXEEXT)
+ $(AM_V_CCLD)$(elements_videoscale_3_LINK) $(elements_videoscale_3_OBJECTS) $(elements_videoscale_3_LDADD) $(LIBS)
+elements/elements_videoscale_4-videoscale.$(OBJEXT): \
+ elements/$(am__dirstamp) elements/$(DEPDIR)/$(am__dirstamp)
+
+elements/videoscale-4$(EXEEXT): $(elements_videoscale_4_OBJECTS) $(elements_videoscale_4_DEPENDENCIES) $(EXTRA_elements_videoscale_4_DEPENDENCIES) elements/$(am__dirstamp)
+ @rm -f elements/videoscale-4$(EXEEXT)
+ $(AM_V_CCLD)$(elements_videoscale_4_LINK) $(elements_videoscale_4_OBJECTS) $(elements_videoscale_4_LDADD) $(LIBS)
+elements/elements_videoscale_5-videoscale.$(OBJEXT): \
+ elements/$(am__dirstamp) elements/$(DEPDIR)/$(am__dirstamp)
+
+elements/videoscale-5$(EXEEXT): $(elements_videoscale_5_OBJECTS) $(elements_videoscale_5_DEPENDENCIES) $(EXTRA_elements_videoscale_5_DEPENDENCIES) elements/$(am__dirstamp)
+ @rm -f elements/videoscale-5$(EXEEXT)
+ $(AM_V_CCLD)$(elements_videoscale_5_LINK) $(elements_videoscale_5_OBJECTS) $(elements_videoscale_5_LDADD) $(LIBS)
+elements/elements_videoscale_6-videoscale.$(OBJEXT): \
+ elements/$(am__dirstamp) elements/$(DEPDIR)/$(am__dirstamp)
+
+elements/videoscale-6$(EXEEXT): $(elements_videoscale_6_OBJECTS) $(elements_videoscale_6_DEPENDENCIES) $(EXTRA_elements_videoscale_6_DEPENDENCIES) elements/$(am__dirstamp)
+ @rm -f elements/videoscale-6$(EXEEXT)
+ $(AM_V_CCLD)$(elements_videoscale_6_LINK) $(elements_videoscale_6_OBJECTS) $(elements_videoscale_6_LDADD) $(LIBS)
elements/videotestsrc.$(OBJEXT): elements/$(am__dirstamp) \
elements/$(DEPDIR)/$(am__dirstamp)
@@ -2450,6 +2576,12 @@
@AMDEP_TRUE@@am__include@ @am__quote@elements/$(DEPDIR)/elements_textoverlay-textoverlay.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@elements/$(DEPDIR)/elements_videoconvert-videoconvert.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@elements/$(DEPDIR)/elements_videoscale-videoscale.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@elements/$(DEPDIR)/elements_videoscale_1-videoscale.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@elements/$(DEPDIR)/elements_videoscale_2-videoscale.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@elements/$(DEPDIR)/elements_videoscale_3-videoscale.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@elements/$(DEPDIR)/elements_videoscale_4-videoscale.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@elements/$(DEPDIR)/elements_videoscale_5-videoscale.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@elements/$(DEPDIR)/elements_videoscale_6-videoscale.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@elements/$(DEPDIR)/elements_volume-volume.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@elements/$(DEPDIR)/elements_vorbisdec-vorbisdec.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@elements/$(DEPDIR)/elements_vorbistag-vorbistag.Po@am__quote@
@@ -2752,6 +2884,90 @@
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(elements_videoscale_CFLAGS) $(CFLAGS) -c -o elements/elements_videoscale-videoscale.obj `if test -f 'elements/videoscale.c'; then $(CYGPATH_W) 'elements/videoscale.c'; else $(CYGPATH_W) '$(srcdir)/elements/videoscale.c'; fi`
+elements/elements_videoscale_1-videoscale.o: elements/videoscale.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(elements_videoscale_1_CFLAGS) $(CFLAGS) -MT elements/elements_videoscale_1-videoscale.o -MD -MP -MF elements/$(DEPDIR)/elements_videoscale_1-videoscale.Tpo -c -o elements/elements_videoscale_1-videoscale.o `test -f 'elements/videoscale.c' || echo '$(srcdir)/'`elements/videoscale.c
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) elements/$(DEPDIR)/elements_videoscale_1-videoscale.Tpo elements/$(DEPDIR)/elements_videoscale_1-videoscale.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='elements/videoscale.c' object='elements/elements_videoscale_1-videoscale.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(elements_videoscale_1_CFLAGS) $(CFLAGS) -c -o elements/elements_videoscale_1-videoscale.o `test -f 'elements/videoscale.c' || echo '$(srcdir)/'`elements/videoscale.c
+
+elements/elements_videoscale_1-videoscale.obj: elements/videoscale.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(elements_videoscale_1_CFLAGS) $(CFLAGS) -MT elements/elements_videoscale_1-videoscale.obj -MD -MP -MF elements/$(DEPDIR)/elements_videoscale_1-videoscale.Tpo -c -o elements/elements_videoscale_1-videoscale.obj `if test -f 'elements/videoscale.c'; then $(CYGPATH_W) 'elements/videoscale.c'; else $(CYGPATH_W) '$(srcdir)/elements/videoscale.c'; fi`
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) elements/$(DEPDIR)/elements_videoscale_1-videoscale.Tpo elements/$(DEPDIR)/elements_videoscale_1-videoscale.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='elements/videoscale.c' object='elements/elements_videoscale_1-videoscale.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(elements_videoscale_1_CFLAGS) $(CFLAGS) -c -o elements/elements_videoscale_1-videoscale.obj `if test -f 'elements/videoscale.c'; then $(CYGPATH_W) 'elements/videoscale.c'; else $(CYGPATH_W) '$(srcdir)/elements/videoscale.c'; fi`
+
+elements/elements_videoscale_2-videoscale.o: elements/videoscale.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(elements_videoscale_2_CFLAGS) $(CFLAGS) -MT elements/elements_videoscale_2-videoscale.o -MD -MP -MF elements/$(DEPDIR)/elements_videoscale_2-videoscale.Tpo -c -o elements/elements_videoscale_2-videoscale.o `test -f 'elements/videoscale.c' || echo '$(srcdir)/'`elements/videoscale.c
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) elements/$(DEPDIR)/elements_videoscale_2-videoscale.Tpo elements/$(DEPDIR)/elements_videoscale_2-videoscale.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='elements/videoscale.c' object='elements/elements_videoscale_2-videoscale.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(elements_videoscale_2_CFLAGS) $(CFLAGS) -c -o elements/elements_videoscale_2-videoscale.o `test -f 'elements/videoscale.c' || echo '$(srcdir)/'`elements/videoscale.c
+
+elements/elements_videoscale_2-videoscale.obj: elements/videoscale.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(elements_videoscale_2_CFLAGS) $(CFLAGS) -MT elements/elements_videoscale_2-videoscale.obj -MD -MP -MF elements/$(DEPDIR)/elements_videoscale_2-videoscale.Tpo -c -o elements/elements_videoscale_2-videoscale.obj `if test -f 'elements/videoscale.c'; then $(CYGPATH_W) 'elements/videoscale.c'; else $(CYGPATH_W) '$(srcdir)/elements/videoscale.c'; fi`
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) elements/$(DEPDIR)/elements_videoscale_2-videoscale.Tpo elements/$(DEPDIR)/elements_videoscale_2-videoscale.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='elements/videoscale.c' object='elements/elements_videoscale_2-videoscale.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(elements_videoscale_2_CFLAGS) $(CFLAGS) -c -o elements/elements_videoscale_2-videoscale.obj `if test -f 'elements/videoscale.c'; then $(CYGPATH_W) 'elements/videoscale.c'; else $(CYGPATH_W) '$(srcdir)/elements/videoscale.c'; fi`
+
+elements/elements_videoscale_3-videoscale.o: elements/videoscale.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(elements_videoscale_3_CFLAGS) $(CFLAGS) -MT elements/elements_videoscale_3-videoscale.o -MD -MP -MF elements/$(DEPDIR)/elements_videoscale_3-videoscale.Tpo -c -o elements/elements_videoscale_3-videoscale.o `test -f 'elements/videoscale.c' || echo '$(srcdir)/'`elements/videoscale.c
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) elements/$(DEPDIR)/elements_videoscale_3-videoscale.Tpo elements/$(DEPDIR)/elements_videoscale_3-videoscale.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='elements/videoscale.c' object='elements/elements_videoscale_3-videoscale.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(elements_videoscale_3_CFLAGS) $(CFLAGS) -c -o elements/elements_videoscale_3-videoscale.o `test -f 'elements/videoscale.c' || echo '$(srcdir)/'`elements/videoscale.c
+
+elements/elements_videoscale_3-videoscale.obj: elements/videoscale.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(elements_videoscale_3_CFLAGS) $(CFLAGS) -MT elements/elements_videoscale_3-videoscale.obj -MD -MP -MF elements/$(DEPDIR)/elements_videoscale_3-videoscale.Tpo -c -o elements/elements_videoscale_3-videoscale.obj `if test -f 'elements/videoscale.c'; then $(CYGPATH_W) 'elements/videoscale.c'; else $(CYGPATH_W) '$(srcdir)/elements/videoscale.c'; fi`
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) elements/$(DEPDIR)/elements_videoscale_3-videoscale.Tpo elements/$(DEPDIR)/elements_videoscale_3-videoscale.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='elements/videoscale.c' object='elements/elements_videoscale_3-videoscale.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(elements_videoscale_3_CFLAGS) $(CFLAGS) -c -o elements/elements_videoscale_3-videoscale.obj `if test -f 'elements/videoscale.c'; then $(CYGPATH_W) 'elements/videoscale.c'; else $(CYGPATH_W) '$(srcdir)/elements/videoscale.c'; fi`
+
+elements/elements_videoscale_4-videoscale.o: elements/videoscale.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(elements_videoscale_4_CFLAGS) $(CFLAGS) -MT elements/elements_videoscale_4-videoscale.o -MD -MP -MF elements/$(DEPDIR)/elements_videoscale_4-videoscale.Tpo -c -o elements/elements_videoscale_4-videoscale.o `test -f 'elements/videoscale.c' || echo '$(srcdir)/'`elements/videoscale.c
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) elements/$(DEPDIR)/elements_videoscale_4-videoscale.Tpo elements/$(DEPDIR)/elements_videoscale_4-videoscale.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='elements/videoscale.c' object='elements/elements_videoscale_4-videoscale.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(elements_videoscale_4_CFLAGS) $(CFLAGS) -c -o elements/elements_videoscale_4-videoscale.o `test -f 'elements/videoscale.c' || echo '$(srcdir)/'`elements/videoscale.c
+
+elements/elements_videoscale_4-videoscale.obj: elements/videoscale.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(elements_videoscale_4_CFLAGS) $(CFLAGS) -MT elements/elements_videoscale_4-videoscale.obj -MD -MP -MF elements/$(DEPDIR)/elements_videoscale_4-videoscale.Tpo -c -o elements/elements_videoscale_4-videoscale.obj `if test -f 'elements/videoscale.c'; then $(CYGPATH_W) 'elements/videoscale.c'; else $(CYGPATH_W) '$(srcdir)/elements/videoscale.c'; fi`
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) elements/$(DEPDIR)/elements_videoscale_4-videoscale.Tpo elements/$(DEPDIR)/elements_videoscale_4-videoscale.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='elements/videoscale.c' object='elements/elements_videoscale_4-videoscale.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(elements_videoscale_4_CFLAGS) $(CFLAGS) -c -o elements/elements_videoscale_4-videoscale.obj `if test -f 'elements/videoscale.c'; then $(CYGPATH_W) 'elements/videoscale.c'; else $(CYGPATH_W) '$(srcdir)/elements/videoscale.c'; fi`
+
+elements/elements_videoscale_5-videoscale.o: elements/videoscale.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(elements_videoscale_5_CFLAGS) $(CFLAGS) -MT elements/elements_videoscale_5-videoscale.o -MD -MP -MF elements/$(DEPDIR)/elements_videoscale_5-videoscale.Tpo -c -o elements/elements_videoscale_5-videoscale.o `test -f 'elements/videoscale.c' || echo '$(srcdir)/'`elements/videoscale.c
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) elements/$(DEPDIR)/elements_videoscale_5-videoscale.Tpo elements/$(DEPDIR)/elements_videoscale_5-videoscale.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='elements/videoscale.c' object='elements/elements_videoscale_5-videoscale.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(elements_videoscale_5_CFLAGS) $(CFLAGS) -c -o elements/elements_videoscale_5-videoscale.o `test -f 'elements/videoscale.c' || echo '$(srcdir)/'`elements/videoscale.c
+
+elements/elements_videoscale_5-videoscale.obj: elements/videoscale.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(elements_videoscale_5_CFLAGS) $(CFLAGS) -MT elements/elements_videoscale_5-videoscale.obj -MD -MP -MF elements/$(DEPDIR)/elements_videoscale_5-videoscale.Tpo -c -o elements/elements_videoscale_5-videoscale.obj `if test -f 'elements/videoscale.c'; then $(CYGPATH_W) 'elements/videoscale.c'; else $(CYGPATH_W) '$(srcdir)/elements/videoscale.c'; fi`
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) elements/$(DEPDIR)/elements_videoscale_5-videoscale.Tpo elements/$(DEPDIR)/elements_videoscale_5-videoscale.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='elements/videoscale.c' object='elements/elements_videoscale_5-videoscale.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(elements_videoscale_5_CFLAGS) $(CFLAGS) -c -o elements/elements_videoscale_5-videoscale.obj `if test -f 'elements/videoscale.c'; then $(CYGPATH_W) 'elements/videoscale.c'; else $(CYGPATH_W) '$(srcdir)/elements/videoscale.c'; fi`
+
+elements/elements_videoscale_6-videoscale.o: elements/videoscale.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(elements_videoscale_6_CFLAGS) $(CFLAGS) -MT elements/elements_videoscale_6-videoscale.o -MD -MP -MF elements/$(DEPDIR)/elements_videoscale_6-videoscale.Tpo -c -o elements/elements_videoscale_6-videoscale.o `test -f 'elements/videoscale.c' || echo '$(srcdir)/'`elements/videoscale.c
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) elements/$(DEPDIR)/elements_videoscale_6-videoscale.Tpo elements/$(DEPDIR)/elements_videoscale_6-videoscale.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='elements/videoscale.c' object='elements/elements_videoscale_6-videoscale.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(elements_videoscale_6_CFLAGS) $(CFLAGS) -c -o elements/elements_videoscale_6-videoscale.o `test -f 'elements/videoscale.c' || echo '$(srcdir)/'`elements/videoscale.c
+
+elements/elements_videoscale_6-videoscale.obj: elements/videoscale.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(elements_videoscale_6_CFLAGS) $(CFLAGS) -MT elements/elements_videoscale_6-videoscale.obj -MD -MP -MF elements/$(DEPDIR)/elements_videoscale_6-videoscale.Tpo -c -o elements/elements_videoscale_6-videoscale.obj `if test -f 'elements/videoscale.c'; then $(CYGPATH_W) 'elements/videoscale.c'; else $(CYGPATH_W) '$(srcdir)/elements/videoscale.c'; fi`
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) elements/$(DEPDIR)/elements_videoscale_6-videoscale.Tpo elements/$(DEPDIR)/elements_videoscale_6-videoscale.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='elements/videoscale.c' object='elements/elements_videoscale_6-videoscale.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(elements_videoscale_6_CFLAGS) $(CFLAGS) -c -o elements/elements_videoscale_6-videoscale.obj `if test -f 'elements/videoscale.c'; then $(CYGPATH_W) 'elements/videoscale.c'; else $(CYGPATH_W) '$(srcdir)/elements/videoscale.c'; fi`
+
elements/elements_volume-volume.o: elements/volume.c
@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(elements_volume_CFLAGS) $(CFLAGS) -MT elements/elements_volume-volume.o -MD -MP -MF elements/$(DEPDIR)/elements_volume-volume.Tpo -c -o elements/elements_volume-volume.o `test -f 'elements/volume.c' || echo '$(srcdir)/'`elements/volume.c
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) elements/$(DEPDIR)/elements_volume-volume.Tpo elements/$(DEPDIR)/elements_volume-volume.Po
@@ -3954,6 +4170,48 @@
--log-file $$b.log --trs-file $$b.trs \
$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
"$$tst" $(AM_TESTS_FD_REDIRECT)
+elements/videoscale-1.log: elements/videoscale-1$(EXEEXT)
+ @p='elements/videoscale-1$(EXEEXT)'; \
+ b='elements/videoscale-1'; \
+ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+ --log-file $$b.log --trs-file $$b.trs \
+ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+ "$$tst" $(AM_TESTS_FD_REDIRECT)
+elements/videoscale-2.log: elements/videoscale-2$(EXEEXT)
+ @p='elements/videoscale-2$(EXEEXT)'; \
+ b='elements/videoscale-2'; \
+ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+ --log-file $$b.log --trs-file $$b.trs \
+ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+ "$$tst" $(AM_TESTS_FD_REDIRECT)
+elements/videoscale-3.log: elements/videoscale-3$(EXEEXT)
+ @p='elements/videoscale-3$(EXEEXT)'; \
+ b='elements/videoscale-3'; \
+ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+ --log-file $$b.log --trs-file $$b.trs \
+ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+ "$$tst" $(AM_TESTS_FD_REDIRECT)
+elements/videoscale-4.log: elements/videoscale-4$(EXEEXT)
+ @p='elements/videoscale-4$(EXEEXT)'; \
+ b='elements/videoscale-4'; \
+ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+ --log-file $$b.log --trs-file $$b.trs \
+ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+ "$$tst" $(AM_TESTS_FD_REDIRECT)
+elements/videoscale-5.log: elements/videoscale-5$(EXEEXT)
+ @p='elements/videoscale-5$(EXEEXT)'; \
+ b='elements/videoscale-5'; \
+ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+ --log-file $$b.log --trs-file $$b.trs \
+ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+ "$$tst" $(AM_TESTS_FD_REDIRECT)
+elements/videoscale-6.log: elements/videoscale-6$(EXEEXT)
+ @p='elements/videoscale-6$(EXEEXT)'; \
+ b='elements/videoscale-6'; \
+ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+ --log-file $$b.log --trs-file $$b.trs \
+ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+ "$$tst" $(AM_TESTS_FD_REDIRECT)
elements/videotestsrc.log: elements/videotestsrc$(EXEEXT)
@p='elements/videotestsrc$(EXEEXT)'; \
b='elements/videotestsrc'; \
diff --git a/tests/check/elements/adder.c b/tests/check/elements/adder.c
index 3308a8e..3a9e3b6 100644
--- a/tests/check/elements/adder.c
+++ b/tests/check/elements/adder.c
@@ -1198,6 +1198,7 @@
GST_END_TEST;
+#if 0
GST_START_TEST (test_flush_start_flush_stop)
{
GstPadTemplate *sink_template;
@@ -1255,7 +1256,7 @@
}
GST_END_TEST;
-
+#endif
static Suite *
adder_suite (void)
@@ -1276,7 +1277,12 @@
tcase_add_test (tc_chain, test_duration_is_max);
tcase_add_test (tc_chain, test_duration_unknown_overrides);
tcase_add_test (tc_chain, test_loop);
+ /* This test is racy and occasionally fails in interesting ways
+ * https://bugzilla.gnome.org/show_bug.cgi?id=708891
+ * It's unlikely that it will ever be fixed for adder, works with audiomixer */
+#if 0
tcase_add_test (tc_chain, test_flush_start_flush_stop);
+#endif
/* Use a longer timeout */
#ifdef HAVE_VALGRIND
diff --git a/tests/check/elements/videoscale.c b/tests/check/elements/videoscale.c
index 877df4f..c158061 100644
--- a/tests/check/elements/videoscale.c
+++ b/tests/check/elements/videoscale.c
@@ -29,6 +29,8 @@
/* kids, don't do this at home, skipping checks is *BAD* */
#define LINK_CHECK_FLAGS GST_PAD_LINK_CHECK_NOTHING
+#ifndef VSCALE_TEST_GROUP
+
static guint
get_num_formats (void)
{
@@ -157,6 +159,8 @@
GST_END_TEST;
+#endif /* !defined(VSCALE_TEST_GROUP) */
+
static GstCaps **
videoscale_get_allowed_caps_for_method (int method)
{
@@ -307,6 +311,8 @@
gst_object_unref (bus);
}
+#ifndef VSCALE_TEST_GROUP
+
static void
on_sink_handoff_passthrough (GstElement * element, GstBuffer * buffer,
GstPad * pad, gpointer user_data)
@@ -409,6 +415,7 @@
}
GST_END_TEST;
+#endif /* !defined(VSCALE_TEST_GROUP) */
#define CREATE_TEST(name,method,src_width,src_height,dest_width,dest_height) \
GST_START_TEST (name) \
@@ -434,6 +441,7 @@
\
GST_END_TEST;
+#if defined(VSCALE_TEST_GROUP) && VSCALE_TEST_GROUP == 1
CREATE_TEST (test_downscale_640x480_320x240_method_0, 0, 640, 480, 320, 240);
CREATE_TEST (test_downscale_640x480_320x240_method_1, 1, 640, 480, 320, 240);
CREATE_TEST (test_downscale_640x480_320x240_method_2, 2, 640, 480, 320, 240);
@@ -442,6 +450,7 @@
CREATE_TEST (test_upscale_320x240_640x480_method_1, 1, 320, 240, 640, 480);
CREATE_TEST (test_upscale_320x240_640x480_method_2, 2, 320, 240, 640, 480);
CREATE_TEST (test_upscale_320x240_640x480_method_3, 3, 320, 240, 640, 480);
+#elif defined(VSCALE_TEST_GROUP) && VSCALE_TEST_GROUP == 2
CREATE_TEST (test_downscale_640x480_1x1_method_0, 0, 640, 480, 1, 1);
CREATE_TEST (test_downscale_640x480_1x1_method_1, 1, 640, 480, 1, 1);
CREATE_TEST (test_downscale_640x480_1x1_method_2, 2, 640, 480, 1, 1);
@@ -450,6 +459,7 @@
CREATE_TEST (test_upscale_1x1_640x480_method_1, 1, 1, 1, 640, 480);
CREATE_TEST (test_upscale_1x1_640x480_method_2, 2, 1, 1, 640, 480);
CREATE_TEST (test_upscale_1x1_640x480_method_3, 3, 1, 1, 640, 480);
+#elif defined(VSCALE_TEST_GROUP) && VSCALE_TEST_GROUP == 3
CREATE_TEST (test_downscale_641x481_111x30_method_0, 0, 641, 481, 111, 30);
CREATE_TEST (test_downscale_641x481_111x30_method_1, 1, 641, 481, 111, 30);
CREATE_TEST (test_downscale_641x481_111x30_method_2, 2, 641, 481, 111, 30);
@@ -458,6 +468,7 @@
CREATE_TEST (test_upscale_111x30_641x481_method_1, 1, 111, 30, 641, 481);
CREATE_TEST (test_upscale_111x30_641x481_method_2, 2, 111, 30, 641, 481);
CREATE_TEST (test_upscale_111x30_641x481_method_3, 2, 111, 30, 641, 481);
+#elif defined(VSCALE_TEST_GROUP) && VSCALE_TEST_GROUP == 4
CREATE_TEST (test_downscale_641x481_30x111_method_0, 0, 641, 481, 30, 111);
CREATE_TEST (test_downscale_641x481_30x111_method_1, 1, 641, 481, 30, 111);
CREATE_TEST (test_downscale_641x481_30x111_method_2, 2, 641, 481, 30, 111);
@@ -466,6 +477,7 @@
CREATE_TEST (test_upscale_30x111_641x481_method_1, 1, 30, 111, 641, 481);
CREATE_TEST (test_upscale_30x111_641x481_method_2, 2, 30, 111, 641, 481);
CREATE_TEST (test_upscale_30x111_641x481_method_3, 3, 30, 111, 641, 481);
+#elif defined(VSCALE_TEST_GROUP) && VSCALE_TEST_GROUP == 5
CREATE_TEST (test_downscale_640x480_320x1_method_0, 0, 640, 480, 320, 1);
CREATE_TEST (test_downscale_640x480_320x1_method_1, 1, 640, 480, 320, 1);
CREATE_TEST (test_downscale_640x480_320x1_method_2, 2, 640, 480, 320, 1);
@@ -474,6 +486,7 @@
CREATE_TEST (test_upscale_320x1_640x480_method_1, 1, 320, 1, 640, 480);
CREATE_TEST (test_upscale_320x1_640x480_method_2, 2, 320, 1, 640, 480);
CREATE_TEST (test_upscale_320x1_640x480_method_3, 3, 320, 1, 640, 480);
+#elif defined(VSCALE_TEST_GROUP) && VSCALE_TEST_GROUP == 6
CREATE_TEST (test_downscale_640x480_1x240_method_0, 0, 640, 480, 1, 240);
CREATE_TEST (test_downscale_640x480_1x240_method_1, 1, 640, 480, 1, 240);
CREATE_TEST (test_downscale_640x480_1x240_method_2, 2, 640, 480, 1, 240);
@@ -482,6 +495,9 @@
CREATE_TEST (test_upscale_1x240_640x480_method_1, 1, 1, 240, 640, 480);
CREATE_TEST (test_upscale_1x240_640x480_method_2, 2, 1, 240, 640, 480);
CREATE_TEST (test_upscale_1x240_640x480_method_3, 3, 1, 240, 640, 480);
+#endif
+
+#ifndef VSCALE_TEST_GROUP
typedef struct
{
@@ -973,6 +989,8 @@
GST_END_TEST;
+#endif /* !defined(VSCALE_TEST_GROUP) */
+
static Suite *
videoscale_suite (void)
{
@@ -981,11 +999,18 @@
suite_add_tcase (s, tc_chain);
tcase_set_timeout (tc_chain, 180);
+#ifndef VSCALE_TEST_GROUP
tcase_add_test (tc_chain, test_template_formats);
tcase_add_test (tc_chain, test_passthrough_method_0);
tcase_add_test (tc_chain, test_passthrough_method_1);
tcase_add_test (tc_chain, test_passthrough_method_2);
tcase_add_test (tc_chain, test_passthrough_method_3);
+ tcase_add_test (tc_chain, test_negotiation);
+#if 0
+ tcase_add_test (tc_chain, test_reverse_negotiation);
+#endif
+ tcase_add_test (tc_chain, test_basetransform_negotiation);
+#elif VSCALE_TEST_GROUP == 1
tcase_add_test (tc_chain, test_downscale_640x480_320x240_method_0);
tcase_add_test (tc_chain, test_downscale_640x480_320x240_method_1);
tcase_add_test (tc_chain, test_downscale_640x480_320x240_method_2);
@@ -994,6 +1019,7 @@
tcase_add_test (tc_chain, test_upscale_320x240_640x480_method_1);
tcase_add_test (tc_chain, test_upscale_320x240_640x480_method_2);
tcase_add_test (tc_chain, test_upscale_320x240_640x480_method_3);
+#elif VSCALE_TEST_GROUP == 2
tcase_add_test (tc_chain, test_downscale_640x480_1x1_method_0);
tcase_add_test (tc_chain, test_downscale_640x480_1x1_method_1);
tcase_add_test (tc_chain, test_downscale_640x480_1x1_method_2);
@@ -1002,6 +1028,7 @@
tcase_add_test (tc_chain, test_upscale_1x1_640x480_method_1);
tcase_add_test (tc_chain, test_upscale_1x1_640x480_method_2);
tcase_add_test (tc_chain, test_upscale_1x1_640x480_method_3);
+#elif VSCALE_TEST_GROUP == 3
tcase_add_test (tc_chain, test_downscale_641x481_111x30_method_0);
tcase_add_test (tc_chain, test_downscale_641x481_111x30_method_1);
tcase_add_test (tc_chain, test_downscale_641x481_111x30_method_2);
@@ -1010,6 +1037,7 @@
tcase_add_test (tc_chain, test_upscale_111x30_641x481_method_1);
tcase_add_test (tc_chain, test_upscale_111x30_641x481_method_2);
tcase_add_test (tc_chain, test_upscale_111x30_641x481_method_3);
+#elif VSCALE_TEST_GROUP == 4
tcase_add_test (tc_chain, test_downscale_641x481_30x111_method_0);
tcase_add_test (tc_chain, test_downscale_641x481_30x111_method_1);
tcase_add_test (tc_chain, test_downscale_641x481_30x111_method_2);
@@ -1018,6 +1046,7 @@
tcase_add_test (tc_chain, test_upscale_30x111_641x481_method_1);
tcase_add_test (tc_chain, test_upscale_30x111_641x481_method_2);
tcase_add_test (tc_chain, test_upscale_30x111_641x481_method_3);
+#elif VSCALE_TEST_GROUP == 5
tcase_add_test (tc_chain, test_downscale_640x480_320x1_method_0);
tcase_add_test (tc_chain, test_downscale_640x480_320x1_method_1);
tcase_add_test (tc_chain, test_downscale_640x480_320x1_method_2);
@@ -1026,6 +1055,7 @@
tcase_add_test (tc_chain, test_upscale_320x1_640x480_method_1);
tcase_add_test (tc_chain, test_upscale_320x1_640x480_method_2);
tcase_skip_broken_test (tc_chain, test_upscale_320x1_640x480_method_3);
+#elif VSCALE_TEST_GROUP == 6
tcase_add_test (tc_chain, test_downscale_640x480_1x240_method_0);
tcase_add_test (tc_chain, test_downscale_640x480_1x240_method_1);
tcase_add_test (tc_chain, test_downscale_640x480_1x240_method_2);
@@ -1034,11 +1064,7 @@
tcase_add_test (tc_chain, test_upscale_1x240_640x480_method_1);
tcase_add_test (tc_chain, test_upscale_1x240_640x480_method_2);
tcase_add_test (tc_chain, test_upscale_1x240_640x480_method_3);
- tcase_add_test (tc_chain, test_negotiation);
-#if 0
- tcase_add_test (tc_chain, test_reverse_negotiation);
#endif
- tcase_add_test (tc_chain, test_basetransform_negotiation);
return s;
}
diff --git a/tests/check/libs/video.c b/tests/check/libs/video.c
index 1b0c7c4..d37c0b5 100644
--- a/tests/check/libs/video.c
+++ b/tests/check/libs/video.c
@@ -873,7 +873,7 @@
_16_235, SMPTE240M, SMPTE240M, SMPTE240M),
MAKE_COLORIMETRY_TEST ("sRGB", "sRGB", "sRGB",
_0_255, RGB, SRGB, BT709),
- MAKE_COLORIMETRY_TEST ("bt2020" , "bt2020", "bt2020",
+ MAKE_COLORIMETRY_TEST ("bt2020", "bt2020", "bt2020",
_16_235, BT2020, BT2020_12, BT2020),
MAKE_COLORIMETRY_TEST ("1:4:0:0", "1:4:0:0", NULL,
_0_255, BT601, UNKNOWN, UNKNOWN),
diff --git a/tests/check/libs/videotimecode.c b/tests/check/libs/videotimecode.c
index c403db8..23d6b50 100644
--- a/tests/check/libs/videotimecode.c
+++ b/tests/check/libs/videotimecode.c
@@ -332,7 +332,7 @@
fail_unless (g_date_time_get_day_of_month (dt2) == 29);
fail_unless (g_date_time_get_hour (dt2) == 11);
fail_unless (g_date_time_get_minute (dt2) == 36);
- fail_unless (g_date_time_get_seconds (dt2) == 53.04);
+ fail_unless_equals_float (g_date_time_get_seconds (dt2), 53.04);
gst_video_time_code_free (tc1);
g_date_time_unref (dt2);
diff --git a/tests/examples/Makefile.in b/tests/examples/Makefile.in
index 9ef3c49..58be066 100644
--- a/tests/examples/Makefile.in
+++ b/tests/examples/Makefile.in
@@ -427,6 +427,9 @@
SED = @SED@
SET_MAKE = @SET_MAKE@
SHELL = @SHELL@
+SSE2_CFLAGS = @SSE2_CFLAGS@
+SSE41_CFLAGS = @SSE41_CFLAGS@
+SSE_CFLAGS = @SSE_CFLAGS@
STRIP = @STRIP@
THEORA_CFLAGS = @THEORA_CFLAGS@
THEORA_LIBS = @THEORA_LIBS@
diff --git a/tests/examples/app/Makefile.in b/tests/examples/app/Makefile.in
index 0ea0468..1b2413a 100644
--- a/tests/examples/app/Makefile.in
+++ b/tests/examples/app/Makefile.in
@@ -470,6 +470,9 @@
SED = @SED@
SET_MAKE = @SET_MAKE@
SHELL = @SHELL@
+SSE2_CFLAGS = @SSE2_CFLAGS@
+SSE41_CFLAGS = @SSE41_CFLAGS@
+SSE_CFLAGS = @SSE_CFLAGS@
STRIP = @STRIP@
THEORA_CFLAGS = @THEORA_CFLAGS@
THEORA_LIBS = @THEORA_LIBS@
diff --git a/tests/examples/audio/Makefile.in b/tests/examples/audio/Makefile.in
index 3e9831b..8f24af6 100644
--- a/tests/examples/audio/Makefile.in
+++ b/tests/examples/audio/Makefile.in
@@ -427,6 +427,9 @@
SED = @SED@
SET_MAKE = @SET_MAKE@
SHELL = @SHELL@
+SSE2_CFLAGS = @SSE2_CFLAGS@
+SSE41_CFLAGS = @SSE41_CFLAGS@
+SSE_CFLAGS = @SSE_CFLAGS@
STRIP = @STRIP@
THEORA_CFLAGS = @THEORA_CFLAGS@
THEORA_LIBS = @THEORA_LIBS@
diff --git a/tests/examples/decodebin_next/Makefile.in b/tests/examples/decodebin_next/Makefile.in
index d3abe37..bae3fc7 100644
--- a/tests/examples/decodebin_next/Makefile.in
+++ b/tests/examples/decodebin_next/Makefile.in
@@ -418,6 +418,9 @@
SED = @SED@
SET_MAKE = @SET_MAKE@
SHELL = @SHELL@
+SSE2_CFLAGS = @SSE2_CFLAGS@
+SSE41_CFLAGS = @SSE41_CFLAGS@
+SSE_CFLAGS = @SSE_CFLAGS@
STRIP = @STRIP@
THEORA_CFLAGS = @THEORA_CFLAGS@
THEORA_LIBS = @THEORA_LIBS@
diff --git a/tests/examples/dynamic/Makefile.in b/tests/examples/dynamic/Makefile.in
index d19a7ca..2d0dd61 100644
--- a/tests/examples/dynamic/Makefile.in
+++ b/tests/examples/dynamic/Makefile.in
@@ -443,6 +443,9 @@
SED = @SED@
SET_MAKE = @SET_MAKE@
SHELL = @SHELL@
+SSE2_CFLAGS = @SSE2_CFLAGS@
+SSE41_CFLAGS = @SSE41_CFLAGS@
+SSE_CFLAGS = @SSE_CFLAGS@
STRIP = @STRIP@
THEORA_CFLAGS = @THEORA_CFLAGS@
THEORA_LIBS = @THEORA_LIBS@
diff --git a/tests/examples/encoding/Makefile.in b/tests/examples/encoding/Makefile.in
index 43b3c1e..d4f8a81 100644
--- a/tests/examples/encoding/Makefile.in
+++ b/tests/examples/encoding/Makefile.in
@@ -419,6 +419,9 @@
SED = @SED@
SET_MAKE = @SET_MAKE@
SHELL = @SHELL@
+SSE2_CFLAGS = @SSE2_CFLAGS@
+SSE41_CFLAGS = @SSE41_CFLAGS@
+SSE_CFLAGS = @SSE_CFLAGS@
STRIP = @STRIP@
THEORA_CFLAGS = @THEORA_CFLAGS@
THEORA_LIBS = @THEORA_LIBS@
diff --git a/tests/examples/fft/Makefile.in b/tests/examples/fft/Makefile.in
index 58da283..5eb8966 100644
--- a/tests/examples/fft/Makefile.in
+++ b/tests/examples/fft/Makefile.in
@@ -417,6 +417,9 @@
SED = @SED@
SET_MAKE = @SET_MAKE@
SHELL = @SHELL@
+SSE2_CFLAGS = @SSE2_CFLAGS@
+SSE41_CFLAGS = @SSE41_CFLAGS@
+SSE_CFLAGS = @SSE_CFLAGS@
STRIP = @STRIP@
THEORA_CFLAGS = @THEORA_CFLAGS@
THEORA_LIBS = @THEORA_LIBS@
diff --git a/tests/examples/gio/Makefile.in b/tests/examples/gio/Makefile.in
index c93aee8..8e3fe23 100644
--- a/tests/examples/gio/Makefile.in
+++ b/tests/examples/gio/Makefile.in
@@ -420,6 +420,9 @@
SED = @SED@
SET_MAKE = @SET_MAKE@
SHELL = @SHELL@
+SSE2_CFLAGS = @SSE2_CFLAGS@
+SSE41_CFLAGS = @SSE41_CFLAGS@
+SSE_CFLAGS = @SSE_CFLAGS@
STRIP = @STRIP@
THEORA_CFLAGS = @THEORA_CFLAGS@
THEORA_LIBS = @THEORA_LIBS@
diff --git a/tests/examples/overlay/Makefile.in b/tests/examples/overlay/Makefile.in
index be645f1..973cfff 100644
--- a/tests/examples/overlay/Makefile.in
+++ b/tests/examples/overlay/Makefile.in
@@ -480,6 +480,9 @@
SED = @SED@
SET_MAKE = @SET_MAKE@
SHELL = @SHELL@
+SSE2_CFLAGS = @SSE2_CFLAGS@
+SSE41_CFLAGS = @SSE41_CFLAGS@
+SSE_CFLAGS = @SSE_CFLAGS@
STRIP = @STRIP@
THEORA_CFLAGS = @THEORA_CFLAGS@
THEORA_LIBS = @THEORA_LIBS@
diff --git a/tests/examples/playback/Makefile.in b/tests/examples/playback/Makefile.in
index 7af8c41..de0818e 100644
--- a/tests/examples/playback/Makefile.in
+++ b/tests/examples/playback/Makefile.in
@@ -416,6 +416,9 @@
SED = @SED@
SET_MAKE = @SET_MAKE@
SHELL = @SHELL@
+SSE2_CFLAGS = @SSE2_CFLAGS@
+SSE41_CFLAGS = @SSE41_CFLAGS@
+SSE_CFLAGS = @SSE_CFLAGS@
STRIP = @STRIP@
THEORA_CFLAGS = @THEORA_CFLAGS@
THEORA_LIBS = @THEORA_LIBS@
diff --git a/tests/examples/playrec/Makefile.in b/tests/examples/playrec/Makefile.in
index c061c62..469e6ee 100644
--- a/tests/examples/playrec/Makefile.in
+++ b/tests/examples/playrec/Makefile.in
@@ -416,6 +416,9 @@
SED = @SED@
SET_MAKE = @SET_MAKE@
SHELL = @SHELL@
+SSE2_CFLAGS = @SSE2_CFLAGS@
+SSE41_CFLAGS = @SSE41_CFLAGS@
+SSE_CFLAGS = @SSE_CFLAGS@
STRIP = @STRIP@
THEORA_CFLAGS = @THEORA_CFLAGS@
THEORA_LIBS = @THEORA_LIBS@
diff --git a/tests/examples/seek/Makefile.in b/tests/examples/seek/Makefile.in
index 91c583d..3eea09d 100644
--- a/tests/examples/seek/Makefile.in
+++ b/tests/examples/seek/Makefile.in
@@ -438,6 +438,9 @@
SED = @SED@
SET_MAKE = @SET_MAKE@
SHELL = @SHELL@
+SSE2_CFLAGS = @SSE2_CFLAGS@
+SSE41_CFLAGS = @SSE41_CFLAGS@
+SSE_CFLAGS = @SSE_CFLAGS@
STRIP = @STRIP@
THEORA_CFLAGS = @THEORA_CFLAGS@
THEORA_LIBS = @THEORA_LIBS@
diff --git a/tests/examples/seek/stepping.c b/tests/examples/seek/stepping.c
index 44bc033..31656af 100644
--- a/tests/examples/seek/stepping.c
+++ b/tests/examples/seek/stepping.c
@@ -36,7 +36,7 @@
length = sin (period);
- period += M_PI / 40;
+ period += G_PI / 40;
length += 1.1;
length *= 100 * GST_MSECOND;
diff --git a/tests/examples/seek/stepping2.c b/tests/examples/seek/stepping2.c
index 70d297d..34922a9 100644
--- a/tests/examples/seek/stepping2.c
+++ b/tests/examples/seek/stepping2.c
@@ -36,7 +36,7 @@
rate = sin (period);
- period += M_PI / 150;
+ period += G_PI / 150;
rate += 1.2;
diff --git a/tests/examples/snapshot/Makefile.in b/tests/examples/snapshot/Makefile.in
index 94a377a..4ca6c3e 100644
--- a/tests/examples/snapshot/Makefile.in
+++ b/tests/examples/snapshot/Makefile.in
@@ -414,6 +414,9 @@
SED = @SED@
SET_MAKE = @SET_MAKE@
SHELL = @SHELL@
+SSE2_CFLAGS = @SSE2_CFLAGS@
+SSE41_CFLAGS = @SSE41_CFLAGS@
+SSE_CFLAGS = @SSE_CFLAGS@
STRIP = @STRIP@
THEORA_CFLAGS = @THEORA_CFLAGS@
THEORA_LIBS = @THEORA_LIBS@
diff --git a/tests/files/Makefile.in b/tests/files/Makefile.in
index b16c431..57a9a74 100644
--- a/tests/files/Makefile.in
+++ b/tests/files/Makefile.in
@@ -362,6 +362,9 @@
SED = @SED@
SET_MAKE = @SET_MAKE@
SHELL = @SHELL@
+SSE2_CFLAGS = @SSE2_CFLAGS@
+SSE41_CFLAGS = @SSE41_CFLAGS@
+SSE_CFLAGS = @SSE_CFLAGS@
STRIP = @STRIP@
THEORA_CFLAGS = @THEORA_CFLAGS@
THEORA_LIBS = @THEORA_LIBS@
diff --git a/tests/icles/Makefile.in b/tests/icles/Makefile.in
index 1b6a852..007e8fd 100644
--- a/tests/icles/Makefile.in
+++ b/tests/icles/Makefile.in
@@ -620,6 +620,9 @@
SED = @SED@
SET_MAKE = @SET_MAKE@
SHELL = @SHELL@
+SSE2_CFLAGS = @SSE2_CFLAGS@
+SSE41_CFLAGS = @SSE41_CFLAGS@
+SSE_CFLAGS = @SSE_CFLAGS@
STRIP = @STRIP@
THEORA_CFLAGS = @THEORA_CFLAGS@
THEORA_LIBS = @THEORA_LIBS@
diff --git a/tests/icles/playback/Makefile.in b/tests/icles/playback/Makefile.in
index b8a26a2..56c36ad 100644
--- a/tests/icles/playback/Makefile.in
+++ b/tests/icles/playback/Makefile.in
@@ -462,6 +462,9 @@
SED = @SED@
SET_MAKE = @SET_MAKE@
SHELL = @SHELL@
+SSE2_CFLAGS = @SSE2_CFLAGS@
+SSE41_CFLAGS = @SSE41_CFLAGS@
+SSE_CFLAGS = @SSE_CFLAGS@
STRIP = @STRIP@
THEORA_CFLAGS = @THEORA_CFLAGS@
THEORA_LIBS = @THEORA_LIBS@
diff --git a/tools/Makefile.in b/tools/Makefile.in
index ac089e2..c166edb 100644
--- a/tools/Makefile.in
+++ b/tools/Makefile.in
@@ -483,6 +483,9 @@
SED = @SED@
SET_MAKE = @SET_MAKE@
SHELL = @SHELL@
+SSE2_CFLAGS = @SSE2_CFLAGS@
+SSE41_CFLAGS = @SSE41_CFLAGS@
+SSE_CFLAGS = @SSE_CFLAGS@
STRIP = @STRIP@
THEORA_CFLAGS = @THEORA_CFLAGS@
THEORA_LIBS = @THEORA_LIBS@
diff --git a/tools/gst-play.c b/tools/gst-play.c
index 3aa1b77..5708737 100644
--- a/tools/gst-play.c
+++ b/tools/gst-play.c
@@ -963,7 +963,7 @@
else
cur = (cur + 1) % (n + 1);
- if (cur >= n) {
+ if (cur >= n && track_type != GST_PLAY_TRACK_TYPE_VIDEO) {
cur = -1;
g_print ("Disabling %s. \n", name);
if (cur_flags & flag) {
@@ -971,7 +971,10 @@
g_object_set (play->playbin, "flags", cur_flags, NULL);
}
} else {
- if (!(cur_flags & flag)) {
+ /* For video we only want to switch between streams, not disable it altogether */
+ if (cur >= n)
+ cur = 0;
+ if (!(cur_flags & flag) && track_type != GST_PLAY_TRACK_TYPE_VIDEO) {
cur_flags |= flag;
g_object_set (play->playbin, "flags", cur_flags, NULL);
}
diff --git a/win32/common/_stdint.h b/win32/common/_stdint.h
index df4837a..8d38855 100644
--- a/win32/common/_stdint.h
+++ b/win32/common/_stdint.h
@@ -1,8 +1,8 @@
#ifndef _GST_PLUGINS_BASE__STDINT_H
#define _GST_PLUGINS_BASE__STDINT_H 1
#ifndef _GENERATED_STDINT_H
-#define _GENERATED_STDINT_H "gst-plugins-base 1.9.2"
-/* generated using gnu compiler gcc-6 (Debian 6.2.0-2) 6.2.0 20160830 */
+#define _GENERATED_STDINT_H "gst-plugins-base 1.9.90"
+/* generated using gnu compiler gcc-6 (Debian 6.2.0-5) 6.2.0 20160927 */
#define _STDINT_HAVE_STDINT_H 1
#include <stdint.h>
#endif
diff --git a/win32/common/config.h b/win32/common/config.h
index de3c764..790115d 100644
--- a/win32/common/config.h
+++ b/win32/common/config.h
@@ -90,7 +90,7 @@
#define GST_PACKAGE_ORIGIN "Unknown package origin"
/* GStreamer package release date/time for plugins as YYYY-MM-DD */
-#define GST_PACKAGE_RELEASE_DATETIME "2016-09-01"
+#define GST_PACKAGE_RELEASE_DATETIME "2016-09-30"
/* Define if static plugins should be built */
#undef GST_PLUGIN_BUILD_STATIC
@@ -164,6 +164,14 @@
*/
#undef HAVE_DCGETTEXT
+/* Define to 1 if you have the declaration of `__i386__', and to 0 if you
+ don't. */
+#undef HAVE_DECL___I386__
+
+/* Define to 1 if you have the declaration of `__x86_64__', and to 0 if you
+ don't. */
+#undef HAVE_DECL___X86_64__
+
/* Define to 1 if you have the <dlfcn.h> header file. */
#undef HAVE_DLFCN_H
@@ -260,6 +268,15 @@
/* Define to 1 if you have the <smmintrin.h> header file. */
#undef HAVE_SMMINTRIN_H
+/* SSE support is enabled */
+#undef HAVE_SSE
+
+/* SSE2 support is enabled */
+#undef HAVE_SSE2
+
+/* SSE4.1 support is enabled */
+#undef HAVE_SSE41
+
/* Define to 1 if you have the <stdint.h> header file. */
#undef HAVE_STDINT_H
@@ -348,7 +365,7 @@
#define PACKAGE_NAME "GStreamer Base Plug-ins"
/* Define to the full name and version of this package. */
-#define PACKAGE_STRING "GStreamer Base Plug-ins 1.9.2"
+#define PACKAGE_STRING "GStreamer Base Plug-ins 1.9.90"
/* Define to the one symbol short name of this package. */
#define PACKAGE_TARNAME "gst-plugins-base"
@@ -357,7 +374,7 @@
#undef PACKAGE_URL
/* Define to the version of this package. */
-#define PACKAGE_VERSION "1.9.2"
+#define PACKAGE_VERSION "1.9.90"
/* directory where plugins are located */
#ifdef _DEBUG
@@ -395,7 +412,7 @@
#undef USE_TREMOLO
/* Version number of package */
-#define VERSION "1.9.2"
+#define VERSION "1.9.90"
/* Define WORDS_BIGENDIAN to 1 if your processor stores words with the most
significant byte first (like Motorola and SPARC, unlike Intel). */
diff --git a/win32/common/libgstrtp.def b/win32/common/libgstrtp.def
index 137ccf5..38c7c28 100644
--- a/win32/common/libgstrtp.def
+++ b/win32/common/libgstrtp.def
@@ -98,6 +98,7 @@
gst_rtp_buffer_compare_seqnum
gst_rtp_buffer_default_clock_rate
gst_rtp_buffer_ext_timestamp
+ gst_rtp_buffer_flags_get_type
gst_rtp_buffer_get_csrc
gst_rtp_buffer_get_csrc_count
gst_rtp_buffer_get_extension