Problem with element creation for android device.

yusuf husainy yusuf.husainy at gmail.com
Wed Mar 27 05:07:29 PDT 2013


Hello everyone,
I am Yusuf, a newbie to gstreamer.

I have a project on hand for streaming video over a UDP link on a WLAN
infrastructure.

The transmitting is a linux box which transmits the video rtp packets
perfectly over the udpsink.

The receiving device is an android device. I have taken the help of the
android-tutorial-3 as showed on gstreamer-sdk website. I need only video(no
audio), that too without the seek, network resilience features as shown in
the android-tutorial-4.

The pipeline I have set-up in the receiver code is:
udpsrc, caps=(string)"my customized app dependant caps" ! rtpmp4vdepay !
ffdec_mpeg4 ! xvimagesink

Now the problem is that none of the elements in the above pipeline get
created. I suspect and am quite sure that i have to include some specific
gstreamer plugins and some other lines in the Android.mk file in the jni
folder of my project.

I tried including all the 13 plugins(expect for the
GSTREAMER_PLUGINS_CAPTURE) as mentioned in the <GSTREAMER_NDK_BUILD_PATH>/
plugins.mk file. But this resulted in to more errors as:

--------------------------------------------------------------------------------------------------------------------------------------------------------------
/root/AndroidNDK/android-ndk-r8b/ndk-build all
GStreamer      : [GEN] => gst-build/gstreamer_android.c
GStreamer      : [COMPILE] => gst-build/gstreamer_android.c
GStreamer      : [LINK] => gst-build/libgstreamer_android.so
/root/AndroidNDK/android-ndk-r8b/toolchains/arm-linux-androideabi-4.6/prebuilt/linux-x86/bin/../lib/gcc/arm-linux-androideabi/4.6.x-google/../../../../arm-linux-androideabi/bin/ld.gold:
error:
/root/GstremerSDK/gstreamer-sdk-android-arm-debug-2012.11/lib/gstreamer-0.10/static/libgstgoom.a(libgstgoom_la-gstgoom.o):
multiple definition of 'gst_goom_get_type'
/root/AndroidNDK/android-ndk-r8b/toolchains/arm-linux-androideabi-4.6/prebuilt/linux-x86/bin/../lib/gcc/arm-linux-androideabi/4.6.x-google/../../../../arm-linux-androideabi/bin/ld.gold:
/root/GstremerSDK/gstreamer-sdk-android-arm-debug-2012.11/lib/gstreamer-0.10/static/libgstgoom2k1.a(libgstgoom2k1_la-gstgoom.o):
previous definition here
/root/AndroidNDK/android-ndk-r8b/toolchains/arm-linux-androideabi-4.6/prebuilt/linux-x86/bin/../lib/gcc/arm-linux-androideabi/4.6.x-google/../../../../arm-linux-androideabi/bin/ld.gold:
error:
/root/GstremerSDK/gstreamer-sdk-android-arm-debug-2012.11/lib/libavutil.a(mem.o):
multiple definition of 'av_malloc'
/root/AndroidNDK/android-ndk-r8b/toolchains/arm-linux-androideabi-4.6/prebuilt/linux-x86/bin/../lib/gcc/arm-linux-androideabi/4.6.x-google/../../../../arm-linux-androideabi/bin/ld.gold:
/root/GstremerSDK/gstreamer-sdk-android-arm-debug-2012.11/lib/gstreamer-0.10/static/libgstffmpegcolorspace.a(libgstffmpegcolorspace_la-mem.o):
previous definition here
/root/AndroidNDK/android-ndk-r8b/toolchains/arm-linux-androideabi-4.6/prebuilt/linux-x86/bin/../lib/gcc/arm-linux-androideabi/4.6.x-google/../../../../arm-linux-androideabi/bin/ld.gold:
error:
/root/GstremerSDK/gstreamer-sdk-android-arm-debug-2012.11/lib/libavutil.a(mem.o):
multiple definition of 'av_realloc'
/root/AndroidNDK/android-ndk-r8b/toolchains/arm-linux-androideabi-4.6/prebuilt/linux-x86/bin/../lib/gcc/arm-linux-androideabi/4.6.x-google/../../../../arm-linux-androideabi/bin/ld.gold:
/root/GstremerSDK/gstreamer-sdk-android-arm-debug-2012.11/lib/gstreamer-0.10/static/libgstffmpegcolorspace.a(libgstffmpegcolorspace_la-mem.o):
previous definition here
/root/AndroidNDK/android-ndk-r8b/toolchains/arm-linux-androideabi-4.6/prebuilt/linux-x86/bin/../lib/gcc/arm-linux-androideabi/4.6.x-google/../../../../arm-linux-androideabi/bin/ld.gold:
error:
/root/GstremerSDK/gstreamer-sdk-android-arm-debug-2012.11/lib/libavutil.a(mem.o):
multiple definition of 'av_free'
/root/AndroidNDK/android-ndk-r8b/toolchains/arm-linux-androideabi-4.6/prebuilt/linux-x86/bin/../lib/gcc/arm-linux-androideabi/4.6.x-google/../../../../arm-linux-androideabi/bin/ld.gold:
/root/GstremerSDK/gstreamer-sdk-android-arm-debug-2012.11/lib/gstreamer-0.10/static/libgstffmpegcolorspace.a(libgstffmpegcolorspace_la-mem.o):
previous definition here
/root/AndroidNDK/android-ndk-r8b/toolchains/arm-linux-androideabi-4.6/prebuilt/linux-x86/bin/../lib/gcc/arm-linux-androideabi/4.6.x-google/../../../../arm-linux-androideabi/bin/ld.gold:
error: cannot find -lgstindvd
/root/AndroidNDK/android-ndk-r8b/toolchains/arm-linux-androideabi-4.6/prebuilt/linux-x86/bin/../lib/gcc/arm-linux-androideabi/4.6.x-google/../../../../arm-linux-androideabi/bin/ld.gold:
error: cannot find -lgstdvdlpcmdec
/root/AndroidNDK/android-ndk-r8b/toolchains/arm-linux-androideabi-4.6/prebuilt/linux-x86/bin/../lib/gcc/arm-linux-androideabi/4.6.x-google/../../../../arm-linux-androideabi/bin/ld.gold:
error: cannot find -lgstdvdread
gst-build/gstreamer_android.o:gstreamer_android.c:function
gst_android_register_static_plugins: error: undefined reference to
'gst_plugin_indvd_register'
gst-build/gstreamer_android.o:gstreamer_android.c:function
gst_android_register_static_plugins: error: undefined reference to
'gst_plugin_dvdlpcmdec_register'
gst-build/gstreamer_android.o:gstreamer_android.c:function
gst_android_register_static_plugins: error: undefined reference to
'gst_plugin_dvdread_register'
libavcodec/flashsvenc.c:169: error: undefined reference to 'compress2'
libavcodec/tiffenc.c:165: error: undefined reference to 'compress'
collect2: ld returned 1 exit status
make: *** [buildsharedlibrary] Error 1
-------------------------------------------------------------------------------------------------------------------------------------------------



my current Android.mk file looks like this:
-------------------------------------------------------------------------------------------------------------------------------------------------------
LOCAL_PATH := $(call my-dir)

include $(CLEAR_VARS)

LOCAL_MODULE    := tutorial-3
LOCAL_SRC_FILES := tutorial-3.c
LOCAL_SHARED_LIBRARIES := gstreamer_android
LOCAL_LDLIBS := -llog -landroid
include $(BUILD_SHARED_LIBRARY)

ifndef GSTREAMER_SDK_ROOT
ifndef GSTREAMER_SDK_ROOT_ANDROID
$(error GSTREAMER_SDK_ROOT_ANDROID is not defined!)
endif
GSTREAMER_SDK_ROOT        := $(GSTREAMER_SDK_ROOT_ANDROID)
endif
GSTREAMER_NDK_BUILD_PATH  :=
$(GSTREAMER_SDK_ROOT)/share/gst-android/ndk-build/
include $(GSTREAMER_NDK_BUILD_PATH)/plugins.mk
GSTREAMER_PLUGINS         := $(GSTREAMER_PLUGINS_CORE)
$(GSTREAMER_PLUGINS_SYS) $(GSTREAMER_PLUGINS_EFFECTS)
$(GSTREAMER_PLUGINS_NET) $(GSTREAMER_PLUGINS_CODECS)
$(GSTREAMER_PLUGINS_CODECS_RESTRICTED) $(GSTREAMER_PLUGINS_PLAYBACK)
$(GSTREAMER_PLUGINS_VIS) $(GSTREAMER_PLUGINS_NET_RESTRICTED)
$(GSTREAMER_PLUGINS_CODECS_GPL) $(GSTREAMER_PLUGINS_DVD)
$(GSTREAMER_PLUGINS_ENCODING)
GSTREAMER_EXTRA_DEPS      := gstreamer-interfaces-0.10 gstreamer-video-0.10
include $(GSTREAMER_NDK_BUILD_PATH)/gstreamer.mk
-------------------------------------------------------------------------------------------------------------------------------------------------------------

I just want to know what am I missing here for building the mentioned
pipeline.
I would appreciate any help for my problem.


Regards,
-- 

*---Yusuf Husainy| B.E. (Electronics and Telecommunication)| +919890910252|
Pune*
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.freedesktop.org/archives/gstreamer-devel/attachments/20130327/d07a5db5/attachment-0001.html>


More information about the gstreamer-devel mailing list