gst-plugins-base: use upstream fix for ivorbis plugin build fail
gst-plugins-base: use upstream fix for ivorbis plugin build fail

Previously, I submitted a patch "[PATCH v2][packages]gst-plugins-base: disable building ivorbis plugin" that disables ivorbis plugin build. Michel Stempin pointed out an upstream patch that fixes the issue directly in the vorbis decoder header. I had missed this patch in my previous searches.

This patch reverts the disabling of ivorbis and adds the upstream fix. I have tested this patch and it fixes the build issue. Thanks to Michel Stempin for bringing this to my attention and pointing me to the upstream fix.

Signed-off-by John Vogel <jvogel4@stny.rr.com>


git-svn-id: svn://svn.openwrt.org/openwrt/packages@39666 3c298f89-4303-0410-b956-a3cf2f4a3e73

--- a/multimedia/gst-plugins-base/Makefile
+++ b/multimedia/gst-plugins-base/Makefile
@@ -86,7 +86,6 @@
 	$(call GST_COND_SELECT,gio) \
 	--disable-gnome_vfs \
 	--disable-gst_v4l \
-	--disable-ivorbis \
 	--disable-libvisual \
 	$(call GST_COND_SELECT,ogg) \
 	--disable-oggtest \

--- a/multimedia/gst-plugins-base/patches/001-no_docs.patch
+++ b/multimedia/gst-plugins-base/patches/001-no_docs.patch
@@ -17,7 +17,7 @@
  	tools 			\
 --- a/Makefile.in
 +++ b/Makefile.in
-@@ -446,14 +446,12 @@ SUBDIRS = \
+@@ -464,14 +464,12 @@ SUBDIRS = \
  	gst sys $(SUBDIRS_EXT) 	\
  	tools 			\
  	tests 			\

--- a/multimedia/gst-plugins-base/patches/002-no_tests.patch
+++ b/multimedia/gst-plugins-base/patches/002-no_tests.patch
@@ -18,7 +18,7 @@
  	m4
 --- a/Makefile.in
 +++ b/Makefile.in
-@@ -445,7 +445,6 @@ SUBDIRS = \
+@@ -463,7 +463,6 @@ SUBDIRS = \
  	gst-libs 		\
  	gst sys $(SUBDIRS_EXT) 	\
  	tools 			\
@@ -26,7 +26,7 @@
  	po 			\
  	common 			\
  	m4
-@@ -455,7 +454,6 @@ DIST_SUBDIRS = \
+@@ -473,7 +472,6 @@ DIST_SUBDIRS = \
  	gst-libs		\
  	gst sys ext		\
  	tools 			\

--- a/multimedia/gst-plugins-base/patches/003-no_translations.patch
+++ b/multimedia/gst-plugins-base/patches/003-no_translations.patch
@@ -1,6 +1,6 @@
 --- a/configure.ac
 +++ b/configure.ac
-@@ -956,7 +956,6 @@ docs/design/Makefile
+@@ -1031,7 +1031,6 @@ docs/design/Makefile
  docs/libs/Makefile
  docs/plugins/Makefile
  docs/version.entities
@@ -28,7 +28,7 @@
  
 --- a/Makefile.in
 +++ b/Makefile.in
-@@ -445,7 +445,6 @@ SUBDIRS = \
+@@ -463,7 +463,6 @@ SUBDIRS = \
  	gst-libs 		\
  	gst sys $(SUBDIRS_EXT) 	\
  	tools 			\
@@ -36,7 +36,7 @@
  	common 			\
  	m4
  
-@@ -454,7 +453,6 @@ DIST_SUBDIRS = \
+@@ -472,7 +471,6 @@ DIST_SUBDIRS = \
  	gst-libs		\
  	gst sys ext		\
  	tools 			\

--- /dev/null
+++ b/multimedia/gst-plugins-base/patches/004-vorbisdec-support_modern_Tremor_versions.patch
@@ -1,1 +1,132 @@
+From 787e896bdeb6c67d13a918ec55d3826fa010fb90 Mon Sep 17 00:00:00 2001
+From: Peter Korsgaard <jacmet@sunsite.dk>
+Date: Wed, 25 Jan 2012 22:53:04 +0000
+Subject: vorbisdec: support modern Tremor versions
 
+Tremor changed to use standard libogg rather than its own incompatible
+copy back in Aug 2010 (r17375), causing gst-plugin-base build to fail.
+
+Tremolo so far unfortunately hasn't been updated. Restructure
+vorbisdeclib.h so the int/float logic is seperate from the ogg handling,
+and only use the legacy _ogg_packet_wrapper code for Tremolo.
+
+https://bugzilla.gnome.org/show_bug.cgi?id=668726
+---
+(limited to 'ext/vorbis/gstvorbisdeclib.h')
+
+--- a/ext/vorbis/gstvorbisdeclib.h
++++ b/ext/vorbis/gstvorbisdeclib.h
+@@ -29,11 +29,6 @@
+ 
+ #ifndef TREMOR
+ 
+-#include <vorbis/codec.h>
+-
+-typedef float                          vorbis_sample_t;
+-typedef ogg_packet                     ogg_packet_wrapper;
+-
+ #define GST_VORBIS_DEC_DESCRIPTION "decode raw vorbis streams to float audio"
+ 
+ #define GST_VORBIS_DEC_SRC_CAPS \
+@@ -47,6 +42,42 @@ typedef ogg_packet                     o
+ 
+ #define GST_VORBIS_DEC_GLIB_TYPE_NAME      GstVorbisDec
+ 
++#else /* TREMOR */
++
++#define GST_VORBIS_DEC_DESCRIPTION "decode raw vorbis streams to integer audio"
++
++#define GST_VORBIS_DEC_SRC_CAPS \
++    GST_STATIC_CAPS ("audio/x-raw-int, "   \
++        "rate = (int) [ 1, MAX ], "        \
++        "channels = (int) [ 1, 6 ], "      \
++        "endianness = (int) BYTE_ORDER, "  \
++        "width = (int) { 16, 32 }, "       \
++        "depth = (int) 16, "               \
++        "signed = (boolean) true")
++
++#define GST_VORBIS_DEC_DEFAULT_SAMPLE_WIDTH           (16)
++
++/* we need a different type name here */
++#define GST_VORBIS_DEC_GLIB_TYPE_NAME      GstIVorbisDec
++
++/* and still have it compile */
++typedef struct _GstVorbisDec               GstIVorbisDec;
++typedef struct _GstVorbisDecClass          GstIVorbisDecClass;
++
++#endif /* TREMOR */
++
++#ifndef USE_TREMOLO
++
++#ifdef TREMOR
++ #include <tremor/ivorbiscodec.h>
++ typedef ogg_int32_t                    vorbis_sample_t;
++#else
++ #include <vorbis/codec.h>
++ typedef float                          vorbis_sample_t;
++#endif
++
++typedef ogg_packet                     ogg_packet_wrapper;
++
+ static inline guint8 *
+ gst_ogg_packet_data (ogg_packet * p)
+ {
+@@ -72,17 +103,11 @@ gst_ogg_packet_from_wrapper (ogg_packet_
+   return packet;
+ }
+ 
+-#else
+-
+-#ifdef USE_TREMOLO
+-  #include <Tremolo/ivorbiscodec.h>
+-  #include <Tremolo/codec_internal.h>
+-  typedef ogg_int16_t                    vorbis_sample_t;
+-#else
+-  #include <tremor/ivorbiscodec.h>
+-  typedef ogg_int32_t                    vorbis_sample_t;
+-#endif
++#else /* USE_TREMOLO */
+ 
++#include <Tremolo/ivorbiscodec.h>
++#include <Tremolo/codec_internal.h>
++typedef ogg_int16_t                    vorbis_sample_t;
+ typedef struct _ogg_packet_wrapper     ogg_packet_wrapper;
+ 
+ struct _ogg_packet_wrapper {
+@@ -91,26 +116,6 @@ struct _ogg_packet_wrapper {
+   ogg_buffer          buf;
+ };
+ 
+-#define GST_VORBIS_DEC_DESCRIPTION "decode raw vorbis streams to integer audio"
+-
+-#define GST_VORBIS_DEC_SRC_CAPS \
+-    GST_STATIC_CAPS ("audio/x-raw-int, "   \
+-        "rate = (int) [ 1, MAX ], "        \
+-        "channels = (int) [ 1, 6 ], "      \
+-        "endianness = (int) BYTE_ORDER, "  \
+-        "width = (int) { 16, 32 }, "       \
+-        "depth = (int) 16, "               \
+-        "signed = (boolean) true")
+-
+-#define GST_VORBIS_DEC_DEFAULT_SAMPLE_WIDTH           (16)
+-
+-/* we need a different type name here */
+-#define GST_VORBIS_DEC_GLIB_TYPE_NAME      GstIVorbisDec
+-
+-/* and still have it compile */
+-typedef struct _GstVorbisDec               GstIVorbisDec;
+-typedef struct _GstVorbisDecClass          GstIVorbisDecClass;
+-
+ /* compensate minor variation */
+ #define vorbis_synthesis(a, b)             vorbis_synthesis (a, b, 1)
+ 
+@@ -154,7 +159,7 @@ gst_ogg_packet_from_wrapper (ogg_packet_
+   return &(packet->packet);
+ }
+ 
+-#endif
++#endif /* USE_TREMOLO */
+ 
+ typedef void (*CopySampleFunc)(vorbis_sample_t *out, vorbis_sample_t **in,
+                            guint samples, gint channels, gint width);
+

comments