Android: Cannot register existing type 'GstSoupHttpClientSink'

classic Classic list List threaded Threaded
3 messages Options
Reply | Threaded
Open this post in threaded view
|

Android: Cannot register existing type 'GstSoupHttpClientSink'

wbonnefond
I have made some modifications to souphttpclientsink and would like to include them in my Android app. I've locally copied, modified and renamed souphttpclientsink.c/.h -> customsouphttpclientsink.c/.h, and gstsouputils.h into my Android project source folder. Initially I was unable to build the project because these files could not find <libsoup/soup.h>.  I ended up having to include libsoup-2.4 in my Android.mk and then it built. However, when running my application I get the following error when trying to register my new plugin: "cannot register existing type 'GstSoupHttpClientSink'".  I've looked all over and most forum posts say that it is because both GStreamer 1.0 and 0.10 are installed.  That is not the case though, I have only ever had GStreamer 1.0 versions installed (currently using 1.8.0, but have 1.6.2, 1.8.2 and 1.10.2 on my computer). Does anyone know what could be causing me to run into this issue?  For reference I am on macOS Sierra, 10.12.2 and am using ndk-r10e. My Android.mk is below:

LOCAL_PATH := $(call my-dir)
SHELL := PATH=/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin /bin/bash
include $(CLEAR_VARS)
LOCAL_MODULE := video-streamer
FILE_LIST := $(wildcard $(LOCAL_PATH)/*.cpp)
FILE_LIST += $(wildcard $(LOCAL_PATH)/*.c)
LOCAL_SRC_FILES := $(FILE_LIST:$(LOCAL_PATH)/%=%)
LOCAL_SHARED_LIBRARIES := gstreamer_android
LOCAL_LDLIBS := -llog -landroid -latomic
LOCAL_CPPFLAGS += -std=c++11 -frtti -fexceptions
include $(BUILD_SHARED_LIBRARY)
ifeq ($(TARGET_ARCH_ABI),armeabi)
    GSTREAMER_ROOT := $(GSTREAMER_ROOT_ARM)
else ifeq ($(TARGET_ARCH_ABI),armeabi-v7a)
    GSTREAMER_ROOT := $(GSTREAMER_ROOT_ARMV7)
else ifeq ($(TARGET_ARCH_ABI),x86)
    GSTREAMER_ROOT := $(GSTREAMER_ROOT_X86)
else
    $(error Target arch ABI $(TARGET_ARCH_ABI) not supported)
endif
GSTREAMER_NDK_BUILD_PATH := $(GSTREAMER_ROOT)/share/gst-android/ndk-build
include $(GSTREAMER_NDK_BUILD_PATH)/plugins.mk
GSTREAMER_PLUGINS := $(GSTREAMER_PLUGINS_CORE) $(GSTREAMER_PLUGINS_NET) $(GSTREAMER_PLUGINS_ENCODING) $(GSTREAMER_PLUGINS_SYS) mulaw
G_IO_MODULES              := gnutls
GSTREAMER_EXTRA_DEPS := gstreamer-video-1.0 libsoup-2.4
GSTREAMER_INCLUDE_FONTS := no
include $(GSTREAMER_NDK_BUILD_PATH)/gstreamer-1.0.mk
Reply | Threaded
Open this post in threaded view
|

Re: Android: Cannot register existing type 'GstSoupHttpClientSink'

wbonnefond
Is a bump acceptable? Any help would be appreciated.
Reply | Threaded
Open this post in threaded view
|

Re: Android: Cannot register existing type 'GstSoupHttpClientSink'

Olivier Crête-3
Hi,

This is because you're linking the souphttpsrc element twice in yoru
code. You need to rename your modified copy, for example, you can
search and replace GstSoup with MyGstSoup throughout those files and
that should fix this problem.

Be aware that if you distribute your application with modified versions
of code from GStreamer (or any other LGPL code), you need to publish
under the LGPL the full source code for all the files needed to rebuild
(and replace) this code in your application.

Olivier

On Thu, 2017-02-09 at 11:25 -0800, wbonnefond wrote:

> Is a bump acceptable? Any help would be appreciated.
>
>
>
> --
> View this message in context: http://gstreamer-devel.966125.n4.nabble
> .com/Android-Cannot-register-existing-type-GstSoupHttpClientSink-
> tp4681650p4681790.html
> Sent from the GStreamer-devel mailing list archive at Nabble.com.
> _______________________________________________
> gstreamer-devel mailing list
> [hidden email]
> https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel
--
Olivier Crête
[hidden email]
_______________________________________________
gstreamer-devel mailing list
[hidden email]
https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel