Opus keyframeness

Lee Matthews lma at spaceapplications.com
Thu May 15 08:38:53 PDT 2014


Hi,

I have wrote an android application that streams audio to another application that is on the same telephone (nexus 5).

So I wrote two gstreamer applications that were compiled with NDK.

The first implements the following pipeline :

openslessrc ! audioconvert ! audio/x-raw-int, format=S16LE, rate=16000 ! opusenc ! oggmux max-delay=0 max-page-delay=0 ! tcpserversink host=0.0.0.0 port=7821

The second application implements the following pipeline :

tcpclientsrc host=localhost port=7821 ! oggdemux ! opusdec ! audioconvert ! openslessink

On logcat, the receiving application produces following error :

W/GStreamer+oggdemux(18273): 0:01:12.769181015 0x77a9b180 gstoggstream.c:212:gst_ogg_stream_packet_is_key_frame Failed to determine keyframeness of audio/x-opus packet
W/GStreamer+oggdemux(18273): 0:01:12.774747735 0x77a9b180 gstoggstream.c:212:gst_ogg_stream_packet_is_key_frame Failed to determine keyframeness of audio/x-opus packet
W/GStreamer+oggdemux(18273): 0:01:12.776453828 0x77a9b180 gstoggstream.c:212:gst_ogg_stream_packet_is_key_frame Failed to determine keyframeness of audio/x-opus packet
W/GStreamer+basesrc(18273): 0:01:12.776725286 0x77a9b180 gstbasesrc.c:2865:gst_base_src_loop:<source> error: Internal data flow error.
W/GStreamer+basesrc(18273): 0:01:12.776865391 0x77a9b180 gstbasesrc.c:2865:gst_base_src_loop:<source> error: streaming task paused, reason not-linked (-1)

I don't understand what it means by failed to determine the keyframeness of the opus packets. I've tried the pipelines on a PC (changing opensles to autoaudiosrc / autoaudiosink) and it seems to work ok. Can anyone offer any pointers ?

Thanks.
Lee


More information about the gstreamer-devel mailing list