Setting pipeline to PAUSED ...
Pipeline is PREROLLING ...
0:00:00.037954522 15239 0x55b575655930 WARN structure gststructure.c:2093:priv_gst_structure_append_to_gstring: No value transform to serialize field 'session' of type
'GstSoupSession'
Got context from element 'souphttpsrc0': gst.soup.session=context, session=(GstSoupSession)NULL;
Pipeline is PREROLLED ...
Setting pipeline to PLAYING ...
Redistribute latency...
New clock: GstSystemClock
Got EOS from element "pipeline0".
0:02:35.052176219 15239 0x7f2f04000b70 WARN basesrc gstbasesrc.c:3132:gst_base_src_loop:<souphttpsrc0> error: Internal data stream error.
Execution ended after 0:02:34.969183130
Setting pipeline to NULL ...
0:02:35.052383276 15239 0x7f2f04000b70 WARN basesrc gstbasesrc.c:3132:gst_base_src_loop:<souphttpsrc0> error: streaming stopped, reason not-linked (-1)
ERROR: from element /GstPipeline:pipeline0/GstURISourceBin:urisourcebin0/GstSoupHTTPSrc:souphttpsrc0: Internal data stream error.
Additional debug info:
../gstreamer-1.22.11/libs/gst/base/gstbasesrc.c(3132): gst_base_src_loop (): /GstPipeline:pipeline0/GstURISourceBin:urisourcebin0/GstSoupHTTPSrc:souphttpsrc0:
streaming stopped, reason not-linked (-1)
Freeing pipeline ...
This is probably related to something called “chained oggs”.
When the metadata changes, new ogg headers are sent and a new stream starts, basically.
This will make oggdemux re-create the source pads and remove the old source pads (theoretically the codecs or stream number/properties could have changed).
This is not something that can be handled within a gst-launch-1.0 pipeline though, it only connects the first audio pad to vorbisdec, and if that goes away and a new one pops up it’s not going to get connected.
You’ll have to write some code to handle this properly.
Alternatively, use some higher-level API that will handle this for you.