Hi, all,
With the help of gstreamer wiki, I have successfully ported gstreamer to android gingerbread. (by fixing some gst-plugin-base version checks both in gst-editing-services and gst-plugins-good, and change SO_MAX to 512 in bionic/linker/linker.c) However, I failed to run a gst-launch script and got SIGSEGV.
Firstly, I tried gst-inspect to see if gstreamer works. It seems ok (but with some warnings):
=====================START======================= xzpeter@xzpeter-HP-Compaq-8100-Elite-SFF-PC:~$ adb shell gst-inspect
(gst-inspect-0.10:437): GStreamer-WARNING **: External plugin loader failed. This most likely means that the plugin loader helper binary was not found or could not be run. ** (gst-inspect-0.10:437): WARNING **: could not find config file '/system/gst-openmax.conf'.. using defaults!
cdxaparse: cdxaparse: (S)VCD parser cdxaparse: vcdparse: (S)VCD stream parser replaygain: rganalysis: ReplayGain analysis replaygain: rglimiter: ReplayGain limiter replaygain: rgvolume: ReplayGain volume
...... (skip many modules here) adder: adder: Adder staticelements: bin: Generic bin staticelements: pipeline: Pipeline object Total count: 131 plugins, 494 features
=======================END===================== Then, I tried to run a demo script on it. The script is retrieved from gstreamer examples (with some small modifications by me) and works well on PC, whose main work is to generate a test video stream->encode->send via udp packages. The server script is shown below(named server.sh):
====================START======================== # change this to send the RTP data and RTCP to another host
# this is the host addr in android emulator DEST=10.0.2.2 # tuning parameters to make the sender send the streams out of sync. Can be used # ot test the client RTCP synchronisation.
#VOFFSET=900000000 VOFFSET=0 AOFFSET=0 # H264 encode from the source VELEM="videotestsrc" #VELEM="peterfilter" #VCAPS="video/x-raw-yuv,width=352,height=288,framerate=15/1"
VCAPS="video/x-raw-yuv,framerate=5/1" #VSOURCE="$VELEM ! queue ! videorate ! ffmpegcolorspace ! $VCAPS" VSOURCE="$VELEM ! ffmpegcolorspace ! $VCAPS" VENC="x264enc tune=zerolatency byte-stream=true bitrate=300 ! rtph264pay"
VRTPSINK="udpsink port=5000 host=$DEST ts-offset=$VOFFSET name=vrtpsink" VRTCPSINK="udpsink port=5001 host=$DEST sync=false async=false name=vrtcpsink" VRTCPSRC="udpsrc port=5005 name=vrtpsrc"
# PCMA encode from the source #AELEM="autoaudiosrc" AELEM="audiotestsrc is-live=1" ASOURCE="$AELEM ! queue ! audioresample ! audioconvert"
AENC="alawenc ! rtppcmapay" ARTPSINK="udpsink port=5002 host=$DEST ts-offset=$AOFFSET name=artpsink" ARTCPSINK="udpsink port=5003 host=$DEST sync=false async=false name=artcpsink"
ARTCPSRC="udpsrc port=5007 name=artpsrc" PLUGIN_PATH="/home/xzpeter/intel/gstreamer/gst-template/gst-plugin" gst-launch -v --gst-plugin-path=$PLUGIN_PATH gstrtpbin name=rtpbin \
$VSOURCE ! $VENC ! rtpbin.send_rtp_sink_0 \ rtpbin.send_rtp_src_0 ! $VRTPSINK \ rtpbin.send_rtcp_src_0 ! $VRTCPSINK \
$VRTCPSRC ! rtpbin.recv_rtcp_sink_0 \ $ASOURCE ! $AENC ! rtpbin.send_rtp_sink_1 \ rtpbin.send_rtp_src_1 ! $ARTPSINK \
rtpbin.send_rtcp_src_1 ! $ARTCPSINK \ $ARTCPSRC ! rtpbin.recv_rtcp_sink_1 ======================END======================
I stored the server.sh to /data/server.sh on android emulator by adb push and ran it. However, this time gstreamer got SIGSEGV:
====================START======================== xzpeter@xzpeter-HP-Compaq-8100-Elite-SFF-PC:~$ adb shell sh /data/server.sh
(gst-launch-0.10:430): GStreamer-WARNING **: External plugin loader failed. This most likely means that the plugin loader helper binary was not found or could not be run. ** (gst-launch-0.10:430): WARNING **: could not find config file '/system/gst-openmax.conf'.. using defaults!
Caught SIGSEGV accessing address 0xdc Spinning. Please run 'gdb gst-launch 430' to continue debugging, Ctrl-C to quit, or Ctrl-\ to dump core. ========================END====================
I want to figure out what is the problem here. but how should I do the debugging? (I know android SDK provide some way on debugging, and ndk-gdb too. Nevertheless, these two ways seems not suitable for gstreamer debugging?)
Or, can anyone give me any suggestion on resolving this? Peter
_______________________________________________ gstreamer-devel mailing list [hidden email] http://lists.freedesktop.org/mailman/listinfo/gstreamer-devel |
Free forum by Nabble | Edit this page |