GNOME Bugzilla – Bug 135921
speexenc support won't compile with 1.1.x
Last modified: 2004-12-22 21:47:04 UTC
i've got speex v1.1.4 and gst-plugins won't compile against it (worked well with 1.0.x branch) gcc -DHAVE_CONFIG_H -I. -I. -I../.. -I../../gst-libs -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -pthread -I/usr/include/gstreamer-0.7 -I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include -I/usr/include/libxml2 -DGST_DISABLE_DEPRECATED -g -Wall -Wno-sign-compare -Werror -DG_DISABLE_DEPRECATED -O0 -ggdb -MT libgstspeex_la-gstspeexenc.lo -MD -MP -MF .deps/libgstspeex_la-gstspeexenc.Tpo -c gstspeexenc.c -fPIC -DPIC -o .libs/libgstspeex_la-gstspeexenc.o gstspeexenc.c: In function `gst_speexenc_init': gstspeexenc.c:152: warning: assignment discards qualifiers from pointer target type gstspeexenc.c: In function `gst_speexenc_chain': gstspeexenc.c:239: warning: passing arg 2 of `speex_encode' from incompatible pointer type gstspeexenc.c:265: warning: passing arg 2 of `speex_encode' from incompatible pointer type make[3]: *** [libgstspeex_la-gstspeexenc.lo] Erreur 1 make[3]: Leaving directory `/usr/portage/tmp/portage/gst-plugins-0.7.4/work/gst-plugins/ext/speex' make[2]: *** [all-recursive] Erreur 1 make[2]: Leaving directory `/usr/portage/tmp/portage/gst-plugins-0.7.4/work/gst-plugins/ext' make[1]: *** [all-recursive] Erreur 1 make[1]: Leaving directory `/usr/portage/tmp/portage/gst-plugins-0.7.4/work/gst-plugins' make: *** [all] Erreur 2
I don't like supporting 2 different versions of speex in one source file very much, especially considering that 1.1 is the devel version. Is speex going to significantly change the API or are they going to just do cosmetic changes?
http://bugzilla.gnome.org/show_bug.cgi?id=131270 contains a patch that would only compile speex plug-in if 1.0.x is found but not against 1.1
would need to be worked out when speex 1.2.x would be out for the time beeing, only compile against speex 1.0.x
seems my speex version detection patch was not so good as it would still try to compile and fail with dev speex current is : dnl *** speex *** translit(dnm, m, l) AM_CONDITIONAL(USE_SPEEX, true) GST_CHECK_FEATURE(SPEEX, [speex plug-in], speex, [ PKG_CHECK_MODULES(SPEEX, speex >= 1.0 speex < 1.1, [ HAVE_SPEEX="yes" AC_SUBST(SPEEX_CFLAGS) AC_SUBST(SPEEX_LIBS) ], [ GST_CHECK_LIBHEADER(SPEEX, speex, speex_bits_init, , speex.h, HAVE_SPEEX="yes" SPEEX_LIBS="-lspeex") AC_SUBST(SPEEX_CFLAGS) AC_SUBST(SPEEX_LIBS) ]) ]) should be : dnl *** speex *** translit(dnm, m, l) AM_CONDITIONAL(USE_SPEEX, true) GST_CHECK_FEATURE(SPEEX, [speex plug-in], speex, [ PKG_CHECK_MODULES(SPEEX, speex, [ HAVE_SPEEX="no" ], [ GST_CHECK_LIBHEADER(SPEEX, speex, speex_bits_init, , speex.h, HAVE_SPEEX="yes" SPEEX_LIBS="-lspeex") AC_SUBST(SPEEX_CFLAGS) AC_SUBST(SPEEX_LIBS) ]) ]) as only speex 1.1 provides a .pc file.
Created attachment 25560 [details] [review] at least a working patch to only compile against speex v1.0 and not v1.1
seems i smoke something really strange and did a bad trip. speex never had any .pc file, not even v1.1.x here is a patch against current gst-plugins that would detect both v1.0 and v1.1 but would only compile against v1.0 it seems i still have lots to learn about those m4/packaging world
thomasvs applied it, thanks