Get Even More Visitors To Your Blog, Upgrade To A Business Listing >>

SOLVED: GStreamer opusdec: Try decode Opus bitstream failed

Mondraker:

Initial Issue

I would like to use Gstreamer plugin opusdec to decode an Opus bitstream. The final purpose is to make glue around it with appsrc and appsink as input/output, to decode 20 ms Opus packets coming from a RTP packet payload and provide PCM sample.

Remark: I can't use gstreamer rtpopusdepay

The following Pipeline works:

gst-launch-1.0 filesrc location=testvector01.bit.opus ! oggdemux ! opusdec ! fakesink

In my final application I'm no expected OGG contained data so I did the following:

1) Desencapsulate Opus bitstream

gst-launch-1.0 filesrc location=testvector01.bit.opus ! oggdemux ! filesink location = testvector01.bit.demux

That works. And then:

2) Decode Opus bitstream

gst-launch-1.0 filesrc location=testvector01.bit.demux ! opusdec ! fakesink

and I have the following error:


Setting pipeline to PAUSED ...
Pipeline is PREROLLING ...
ERROR: from element /GstPipeline:pipeline0/GstFileSrc:filesrc0: Internal data flow error.
Additional debug info:
gstbasesrc.c(2865): gst_base_src_loop (): /GstPipeline:pipeline0/GstFileSrc:filesrc0:
streaming task paused, reason error (-5)
ERROR: pipeline doesn't want to preroll.
Setting pipeline to NULL ...
Freeing pipeline ..

Input File

testvector01.bit.opus From Opus test vector :https://people.xiph.org/~greg/opus_testvectors/

My question is: What is the proper way to use gstreamer plugin opusec without transport container?

Update

Gstreamer version 1.2.4

As recommended I tried to add opusparse after filesrc and got the following error.


Pipeline is PREROLLING ...

(gst-launch-1.0:5147): GStreamer-WARNING **:
gstpad.c:4555:store_sticky_event: Sticky event
misordering, got 'caps' before 'stream-start'

(gst-launch-1.0:5147): GStreamer-WARNING **:
gstpad.c:4555:store_sticky_event: Sticky event
misordering, got 'caps' before 'stream-start' Pipeline is PREROLLED
... Setting pipeline to PLAYING ... New clock: GstAudioSinkClock
ERROR: from element /GstPipeline:pipeline0/GstOpusDec:opusdec0:
Decoding error: -4 Additional debug info: gstopusdec.c(460):
opus_dec_chain_parse_data ():
/GstPipeline:pipeline0/GstOpusDec:opusdec0 Execution ended after
0:00:00.063372478 Setting pipeline to PAUSED ... Setting pipeline to
READY ... Setting pipeline to NULL ... Freeing pipeline ...

GStreamer 1.8.1

The following pipeline

gst-launch-1.0 filesrc location = testvector01.bit.demux ! opusparse ! opusdec ! audioconvert ! alsasink

halt here:

Setting pipeline to PAUSED ... Pipeline is PREROLLING ...

Gstreamer 1.13.1

gst-launch-1.0 filesrc location = testvector01.bit.demux ! opusparse ! opusdec ! alsasink

Playback just produce a short audio glitch while no gstreamer error is raised.

gst-launch-1.0 filesrc location = testvector01.bit.opus ! oggdemux ! opusparse ! opusdec ! alsasink

Playback is choppy while no gstreamer error is raised.

Regards,



Posted in S.E.F
via StackOverflow & StackExchange Atomic Web Robots
This Question have been answered
HERE


This post first appeared on Stack Solved, please read the originial post: here

Share the post

SOLVED: GStreamer opusdec: Try decode Opus bitstream failed

×

Subscribe to Stack Solved

Get updates delivered right to your inbox!

Thank you for your subscription

×