Pipeline not working with gstreamer 1.14.4 or 1.15.1 but is ok with 1.8.3

Jack jack at rybn.org
Thu Jan 24 11:20:57 UTC 2019


Hello,

I have a simpler pipeline, but still have the issue (with v1.15.1, not
with v1.8.3 so it is a bug ?) :

GST_DEBUG=3 gst-launch-1.0 filesrc location=output.wav !
wavparse ! deinterleave name=d

d.src_0 ! volume name="vol0" volume=0.5 ! audiopanorama name="pan0"
panorama=0 ! audio/x-raw,channels=2 ! audioconvert ! queue ! i.
d.src_1 ! volume name="vol1" volume=0.5 ! audiopanorama name="pan1"
panorama=0 ! audio/x-raw,channels=2 ! audioconvert ! queue ! i.

interleave name=i ! opusenc frame-size=20 max-payload-size=4000 !
rtpopuspay pt=96 ! fakesink


I get :

Setting pipeline to PAUSED ...
0:00:00.014909281 25566 0x5569f3678550 WARN                 basesrc
gstbasesrc.c:3592:gst_base_src_start_complete:<filesrc0> pad not
activated yet
Pipeline is PREROLLING ...
0:00:00.015098902 25566 0x5569f3668de0 FIXME                default
gstutils.c:3981:gst_pad_create_stream_id_internal:<wavparse0:src>
Creating random stream-id, consider implementing a deterministic way of
creating a stream-id
0:00:00.020775475 25566 0x5569f3668c50 WARN              interleave
interleave.c:316:gst_interleave_set_channel_positions:<i> Invalid
channel positions, using NONE
0:00:00.020796839 25566 0x5569f3668c50 FIXME               basesink
gstbasesink.c:3248:gst_base_sink_default_event:<fakesink0> stream-start
event without group-id. Consider implementing group-id handling in the
upstream elements
0:00:00.020936961 25566 0x5569f3668c50 FIXME             interleave
interleave.c:920:gst_interleave_sink_event:<i> FIXME: merge tags and
send after stream-start
0:00:00.021016249 25566 0x5569f3668c00 FIXME             interleave
interleave.c:920:gst_interleave_sink_event:<i> FIXME: merge tags and
send after stream-start
0:00:00.021754444 25566 0x5569f3668c50 WARN                GST_PADS
gstpad.c:4230:gst_pad_peer_query:<opusenc0:src> could not send sticky events
Redistribute latency...
0:00:00.023276294 25566 0x5569f3668de0 WARN                wavparse
gstwavparse.c:2297:gst_wavparse_loop:<wavparse0> error: Internal data
stream error.
0:00:00.023285254 25566 0x5569f3668de0 WARN                wavparse
gstwavparse.c:2297:gst_wavparse_loop:<wavparse0> error: streaming
stopped, reason not-negotiated (-4)
0:00:00.023313614 25566 0x5569f3668de0 WARN                   queue
gstqueue.c:988:gst_queue_handle_sink_event:<queue1> error: Internal data
stream error.
0:00:00.023321091 25566 0x5569f3668de0 WARN                   queue
gstqueue.c:988:gst_queue_handle_sink_event:<queue1> error: streaming
stopped, reason not-negotiated (-4)
ERROR: from element /GstPipeline:pipeline0/GstWavParse:wavparse0:
Internal data stream error.
Additional debug info:
gstwavparse.c(2297): gst_wavparse_loop ():
/GstPipeline:pipeline0/GstWavParse:wavparse0:
streaming stopped, reason not-negotiated (-4)
ERROR: pipeline doesn't want to preroll.
Setting pipeline to NULL ...
Freeing pipeline ...


The soundfile "output.wav" is :
Input #0, wav, from 'localisation/bruxelles/sounds/output.wav':
  Metadata:
    date            : 2018-06-20
    encoder         : Lavf56.40.101
    encoded_by      : REAPER
  Duration: 00:18:40.00, bitrate: 3072 kb/s
    Stream #0:0: Audio: pcm_s16le ([1][0][0][0] / 0x0001), 48000 Hz,
4.0, s16, 3072 kb/s


Any help to solve this issue would be very appreciated !
++

Jack





Le 23/01/2019 à 00:53, Jack a écrit :
> Need help...
> 
> I just try this pipeline, but it still fails with Gstreamer 1.15.1 (it
> works perfectly with Gstreamer 1.8.3 !) :
> 
> ### PIPELINE ################################################
> multifilesrc name="source0" loop=true location=output.wav !
> wavparse ignore-length=1 !
> deinterleave name=d
> 
> d.src_0 ! volume name="vol0" volume=0.5 ! audiopanorama name="pan0"
> panorama=0 ! audio/x-raw,channels=2 ! deinterleave name=d0
> d.src_1 ! volume name="vol1" volume=0.5 ! audiopanorama name="pan1"
> panorama=0 ! audio/x-raw,channels=2 ! deinterleave name=d1
> 
> audiomixer name=mix0 ! i.sink_0
> audiomixer name=mix1 ! i.sink_1
> 
> d0.src_0 ! mix0.
> d0.src_1 ! mix1.
> d1.src_0 ! mix0.
> d1.src_1 ! mix1.
> 
> interleave name=i !
> opusenc frame-size=20 max-payload-size=4000 !
> rtpopuspay pt=96 !
> fakesink
> ### END PIPELINE ################################################
> 
> 
> With GST_DEBUG=3 I get :
> 
> Setting pipeline to PAUSED ...
> Pipeline is PREROLLING ...
> 0:00:00.198717531 30503 0x55a787f7e940 WARN              interleave
> interleave.c:316:gst_interleave_set_channel_positions:<i> Invalid
> channel positions, using NONE
> 0:00:00.198774934 30503 0x55a787f7e940 FIXME               basesink
> gstbasesink.c:3248:gst_base_sink_default_event:<fakesink0> stream-start
> event without group-id. Consider implementing group-id handling in the
> upstream elements
> Redistribute latency...
> 0:00:00.199571368 30503 0x55a787f7e940 WARN                GST_PADS
> gstpad.c:4230:gst_pad_peer_query:<opusenc0:src> could not send sticky events
> 0:00:00.362518006 30503 0x55a787f7ea30 WARN                 basesrc
> gstbasesrc.c:3064:gst_base_src_loop:<source0> error: Internal data
> stream error.
> 0:00:00.362538938 30503 0x55a787f7ea30 WARN                 basesrc
> gstbasesrc.c:3064:gst_base_src_loop:<source0> error: streaming stopped,
> reason not-negotiated (-4)
> ERROR: from element /GstPipeline:pipeline0/GstMultiFileSrc:source0:
> Internal data stream error.
> Additional debug info:
> gstbasesrc.c(3064): gst_base_src_loop ():
> /GstPipeline:pipeline0/GstMultiFileSrc:source0:
> streaming stopped, reason not-negotiated (-4)
> ERROR: pipeline doesn't want to preroll.
> Setting pipeline to NULL ...
> Freeing pipeline ...
> 
> 
> If i replace "rtpopuspay pt=96 ! fakesink" with "oggmux ! filesink
> location=test.ogg", the pipeline is OK.
> 
> It also works if I remove :
> "audiomixer name=mix1 ! i.sink_1"
> "d0.src_1 ! mix1."
> "d1.src_1 ! mix1."
> 
> I don't know what to try now, if someone has an idee ?
> ++
> 
> Jack
> 
> 
> 
> 
> Le 22/01/2019 à 11:16, Jack a écrit :
>> Hi Antoine !
>>
>> Weird, I just try two "smaller" pipelines with a small difference
>> between them :
>>
>> ### PIPELINE 1 ################################################
>> interleave name=i !
>> opusenc frame-size=20 max-payload-size=4000 !
>> rtpopuspay pt=96 !
>> application/x-rtp,media=audio,encoding-name=OPUS,payload=96,clock-rate=48000
>> !
>> udpsink host=127.0.0.1 port=9999
>>
>> multifilesrc name="source0" loop=true
>> location="localisation/bruxelles/sounds/output.wav" !
>> wavparse ignore-length=1 !
>> decodebin !
>> deinterleave name=d
>>
>> d.src_0 ! audioconvert ! volume name="vol0" volume=0.5 ! audioconvert !
>> audiopanorama name="pan0" panorama=0 ! audioconvert !
>> audio/x-raw,channels=2 ! deinterleave name=d0
>> d.src_1 ! audioconvert ! volume name="vol1" volume=0.5 ! audioconvert !
>> audiopanorama name="pan1" panorama=0 ! audioconvert !
>> audio/x-raw,channels=2 ! deinterleave name=d1
>>
>> d0.src_0 ! audiomixer name=mix0 ! i.sink_0
>> d0.src_1 ! audiomixer name=mix1 ! i.sink_1
>> ### END PIPELINE 1 ################################################
>>
>> ### PIPELINE 2 ################################################
>> interleave name=i !
>> opusenc frame-size=20 max-payload-size=4000 !
>> rtpopuspay pt=96 !
>> application/x-rtp,media=audio,encoding-name=OPUS,payload=96,clock-rate=48000
>> !
>> udpsink host=127.0.0.1 port=9999
>>
>> multifilesrc name="source0" loop=true
>> location="localisation/bruxelles/sounds/output.wav" !
>> wavparse ignore-length=1 !
>> decodebin !
>> deinterleave name=d
>>
>> d.src_0 ! audioconvert ! volume name="vol0" volume=0.5 ! audioconvert !
>> audiopanorama name="pan0" panorama=0 ! audioconvert !
>> audio/x-raw,channels=2 ! deinterleave name=d0
>> d.src_1 ! audioconvert ! volume name="vol1" volume=0.5 ! audioconvert !
>> audiopanorama name="pan1" panorama=0 ! audioconvert !
>> audio/x-raw,channels=2 ! deinterleave name=d1
>>
>> d0.src_0 ! audiomixer name=mix0 ! i.sink_0
>> ### END PIPELINE 2 ################################################
>>
>> The Pipeline 1 doesn't work and the pipeline 2 is OK.
>> The only difference between then is the last line in the pipeline 1
>> (which get the second channel of d0 and ) :
>> d0.src_1 ! audiomixer name=mix1 ! i.sink_1
>>
>> Maybe that can help to solve this issue ?
>>
>> OTOH, I tried with "GST_DEBUG=audio*:7" and didn't get red lines, can I
>> say that all is OK with audio ?
>> ++
>>
>> Jack
>>
>>
>>
>> Le 21/01/2019 à 21:52, Antoine Villeret a écrit :
>>> Hi Jack !
>>>
>>> could you try to reduce the pipeline to something shorter that
>>> reproduces the issue ?
>>> could you also set the GST_DEBUG environment variable to 6 or 7 to get
>>> more info about what is wrong ?
>>>
>>> you could set it before starting you pipeline with something like : 
>>>
>>> GST_DEBUG="7" gst-launch-1.0 ....
>>>
>>> level 7 is very verbose and you should filter message with something
>>> like : GST_DEBUG=audio*:7 (or something else depending on where the
>>> issue is, hence my first advice :-)).
>>>
>>> cheers
>>>
>>> antoine
>>>
>>> Le lun. 21 janv. 2019 à 19:27, Jack <jack at rybn.org
>>> <mailto:jack at rybn.org>> a écrit :
>>>
>>>     Hello !
>>>
>>>     This is my first message on this list.
>>>     I woud like to congratuate the developer team for this nice stream
>>>     framework !
>>>
>>>     Well, I have a problem with this pipeline with recent version of
>>>     gstreamer, here the pipeline :
>>>
>>>     ### PIPELINE ################################################
>>>     interleave name=i !
>>>     opusenc frame-size=20 max-payload-size=4000 !
>>>     rtpopuspay pt=96 !
>>>     application/x-rtp,media=audio,encoding-name=OPUS,payload=96,clock-rate=48000
>>>     !
>>>     udpsink host=127.0.0.1 port=9999
>>>
>>>     multifilesrc name="source0" loop=true
>>>     location="localisation/bruxelles/sounds/output.wav" !
>>>     wavparse ignore-length=1 !
>>>     decodebin ! deinterleave name=d
>>>
>>>     d.src_0 ! audioconvert ! volume name="vol0" volume=0.5 ! audioconvert !
>>>     audiopanorama name="pan0" panorama=0 ! audioconvert !
>>>     audio/x-raw,channels=2 ! deinterleave name=d0
>>>     d.src_1 ! audioconvert ! volume name="vol1" volume=0.5 ! audioconvert !
>>>     audiopanorama name="pan1" panorama=0 ! audioconvert !
>>>     audio/x-raw,channels=2 ! deinterleave name=d1
>>>     d.src_2 ! audioconvert ! volume name="vol2" volume=0.5 ! audioconvert !
>>>     audiopanorama name="pan2" panorama=0 ! audioconvert !
>>>     audio/x-raw,channels=2 ! deinterleave name=d2
>>>     d.src_3 ! audioconvert ! volume name="vol3" volume=0.5 ! audioconvert !
>>>     audiopanorama name="pan3" panorama=0 ! audioconvert !
>>>     audio/x-raw,channels=2 ! deinterleave name=d3
>>>
>>>     d0.src_0 ! audiomixer name=mix0 ! i.sink_0
>>>     d0.src_1 ! audiomixer name=mix1 ! i.sink_1
>>>     d1.src_0 ! mix0.
>>>     d1.src_1 ! mix1.
>>>     d2.src_0 ! mix0.
>>>     d2.src_1 ! mix1.
>>>     d3.src_0 ! mix0.
>>>     d3.src_1 ! mix1.
>>>     ### END PIPELINE ################################################
>>>
>>>     with gstreamer 1.14.4 and 1.15.1, I get an error :
>>>     Setting pipeline to PAUSED ...
>>>     Pipeline is PREROLLING ...
>>>     Redistribute latency...
>>>     ERROR: from element /GstPipeline:pipeline0/GstMultiFileSrc:source0:
>>>     Internal data stream error.
>>>     Additional debug info:
>>>     gstbasesrc.c(3055): gst_base_src_loop ():
>>>     /GstPipeline:pipeline0/GstMultiFileSrc:source0:
>>>     streaming stopped, reason not-negotiated (-4)
>>>     ERROR: pipeline doesn't want to preroll.
>>>     Setting pipeline to NULL ...
>>>     Freeing pipeline ...
>>>
>>>     But, with gstreamer 1.8.3, everything is ok :
>>>     Setting pipeline to PAUSED ...
>>>     Pipeline is PREROLLING ...
>>>     Redistribute latency...
>>>     Pipeline is PREROLLED ...
>>>     Setting pipeline to PLAYING ...
>>>     New clock: GstSystemClock
>>>
>>>     any ideas how to solve this issue ?
>>>     Thanx.
>>>     ++
>>>
>>>     Jack
>>>
>>>     _______________________________________________
>>>     gstreamer-devel mailing list
>>>     gstreamer-devel at lists.freedesktop.org
>>>     <mailto:gstreamer-devel at lists.freedesktop.org>
>>>     https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel
>>>
>>>
>>> _______________________________________________
>>> gstreamer-devel mailing list
>>> gstreamer-devel at lists.freedesktop.org
>>> https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel
>>>
>>
>> _______________________________________________
>> gstreamer-devel mailing list
>> gstreamer-devel at lists.freedesktop.org
>> https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel
>>
> 
> _______________________________________________
> gstreamer-devel mailing list
> gstreamer-devel at lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel
> 



More information about the gstreamer-devel mailing list