Android Internal data flow error + logcat debug

Lee Matthews lma at spaceapplications.com
Mon May 19 07:52:41 PDT 2014


Thanks Sebastian,

I've nearly got it working !

If I run the following on my PC :  gst-launch audiotestsrc ! audioconvert ! opusenc ! oggmux ! tcpserversink host=0.0.0.0 port=7821

I get the following output :

Setting pipeline to PAUSED ...
Pipeline is PREROLLING ...
Redistribute latency...
WARNING: from element /GstPipeline:pipeline0/GstTCPServerSink:tcpserversink0: Internal data flow problem.
Additional debug info:
gstbasesink.c(3638): gst_base_sink_chain_unlocked (): /GstPipeline:pipeline0/GstTCPServerSink:tcpserversink0:
Received buffer without a new-segment. Assuming timestamps start from 0.
Pipeline is PREROLLED ...
Setting pipeline to PLAYING ...
New clock: GstSystemClock

I connect to my PC using the audio sink gstreamer app, which plays a tone, but a broken one ie beep... beep... beep etc

In logcat I get lots of messages like this;


W/GStreamer+oggdemux(27084): 0:01:03.407445602 0x777c3460 gstoggstream.c:212:gst_ogg_stream_packet_is_key_frame Failed to determine keyframeness of audio/x-opus packet
W/GStreamer+oggdemux(27084): 0:01:03.409836487 0x777c3460 gstoggstream.c:212:gst_ogg_stream_packet_is_key_frame Failed to determine keyframeness of audio/x-opus packet
W/GStreamer+oggdemux(27084): 0:01:03.412160029 0x777c3460 gstoggstream.c:212:gst_ogg_stream_packet_is_key_frame Failed to determine keyframeness of audio/x-opus packet
W/GStreamer+oggdemux(27084): 0:01:03.414696905 0x777c3460 gstoggstream.c:212:gst_ogg_stream_packet_is_key_frame Failed to determine keyframeness of audio/x-opus packet

Do you know what this means ?

Thanks again.
Lee



----- Original Message -----
From: "Sebastian Dröge" <sebastian at centricular.com>
To: "Discussion of the development of and with GStreamer" <gstreamer-devel at lists.freedesktop.org>
Sent: Monday, 19 May, 2014 3:41:41 PM
Subject: Re: Android Internal data flow error + logcat debug

On Mo, 2014-05-19 at 15:33 +0200, Lee Matthews wrote:
> Ok, I think I found out where I had a debug issue, but I don't
> understand why.
> 
> I have a java app that loads a couple of shared libraries that I
> compiled with gstreamer. One shared library acts as an audio sink, the
> other as an audio source.
> I'm currently having problems with the audio-sink.
> gst_debug_set_default_threshold() was not being set again in the audio
> sink code.
> 
> However, the audio-source was setting
> gst_debug_set_default_threshold(2) before gst_init(). Both of the
> native libraries were compiled using gstreamer_android.c - is there
> the possibility of them interfering with each other?

Well, if they're running in the same process then they will modify the
default debug threshold of all things in that process.

> Anyway, is this log more helpful ? Sorry it is rather long...

Yes, the problem is that your pipeline sends a BYTE segment to opusdec,
but opusdec requires a TIME segment. You need to add some payloading
format before sending Opus over the network, also not just because of
GStreamer reasons.

Try adding oggmux before your tcpserversink and oggdemux after your
tcpcliensrc. Alternatively you could also use RTP, but to do that over
TCP (and not just UDP) you need to use the rtpstreampay/depay elements
from 1.3.

-- 
Sebastian Dröge, Centricular Ltd - http://www.centricular.com
Expertise, Straight from the Source

_______________________________________________
gstreamer-devel mailing list
gstreamer-devel at lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/gstreamer-devel


More information about the gstreamer-devel mailing list