<div dir="ltr"><u>I just enabled debugging in the python binding and this is what was reported:</u><br><br>0:07:51.868202400   304      0x2af2b20 INFO              mpegtsbase mpegtsbase.c:956:mpegts_base_apply_pat:<tsparse1> PAT<br>0:07:51.870829900   304      0x2af2b20 INFO        GST_ELEMENT_PADS gstelement.c:915:gst_element_get_static_pad: found pad tsparse1:sink<br>0:07:51.871850800   304      0x2af2b20 INFO               GST_EVENT gstevent.c:820:gst_event_new_caps: creating caps event video/mpegts, systemstream=(boolean)true, packetsize=(int)188<br>0:07:51.872122500   304      0x2af2b20 INFO               GST_EVENT gstevent.c:900:gst_event_new_segment: creating segment event time segment start=0:00:00.000000000, offset=0:00:00.000000000, stop=99:99:99.999999999, rate=1.000000, applied_rate=1.000000, flags=0x00, time=0:00:00.000000000, base=0:00:00.000000000, position 0:00:00.000000000, duration 99:99:99.999999999<br>0:07:51.872205400   304      0x2af2b20 INFO                 tsparse mpegtsparse.c:817:drain_pending_buffers:<tsparse1> Pushing buffers - startTS 99:99:99.999999999 duration 0:00:00.000000000 0 bytes<br>0:07:51.872595500   304      0x2af2b20 INFO        mpegtspacketizer mpegtspacketizer.c:772:mpegts_try_discover_packet_size: have packetsize detected: 188 bytes<br>0:07:51.872804400   304      0x2af2b20 INFO              mpegtsbase mpegtsbase.c:956:mpegts_base_apply_pat:<tsdemux2> PAT<br>0:07:51.876829300   304      0x2af2b20 INFO               GST_EVENT gstevent.c:820:gst_event_new_caps: creating caps event video/x-h264, stream-format=(string)byte-stream, alignment=(string)nal<br>0:07:51.877591400   304      0x2af2b20 INFO               GST_EVENT gstevent.c:820:gst_event_new_caps: creating caps event audio/mpeg, mpegversion=(int)2, stream-format=(string)adts<br>0:07:51.878054300   304      0x2af2b20 INFO        GST_ELEMENT_PADS gstelement.c:668:gst_element_add_pad:<tsdemux2> adding pad 'video_0_0100'<br>0:07:51.878119200   304      0x2af2b20 INFO        GST_ELEMENT_PADS gstelement.c:668:gst_element_add_pad:<tsdemux2> adding pad 'audio_0_0101'<br>0:07:51.878305800   304      0x2af2b20 WARN        mpegtspacketizer mpegtspacketizer.c:2334:mpegts_packetizer_pts_to_ts: Not enough information to calculate proper timestamp<br>0:07:51.886460600   304      0x2af2b20 WARN        mpegtspacketizer mpegtspacketizer.c:2334:mpegts_packetizer_pts_to_ts: Not enough information to calculate proper timestamp<br>0:07:51.975992100   304      0x2af2b20 INFO               GST_EVENT gstevent.c:900:gst_event_new_segment: creating segment event time segment start=0:00:00.000000000, offset=0:00:00.000000000, stop=99:99:99.999999999, rate=1.000000, applied_rate=1.000000, flags=0x00, time=0:00:00.000000000, base=0:00:00.000000000, position 0:00:00.000000000, duration 99:99:99.999999999<br>0:07:52.244071900   304      0x2af2b20 INFO                 basesrc gstbasesrc.c:2981:gst_base_src_loop:<srtsrc0> pausing after gst_pad_push() = not-linked<br>0:07:52.244159500   304      0x2af2b20 WARN                 basesrc gstbasesrc.c:3072:gst_base_src_loop:<srtsrc0> error: Internal data stream error.<br>0:07:52.244192500   304      0x2af2b20 WARN                 basesrc gstbasesrc.c:3072:gst_base_src_loop:<srtsrc0> error: streaming stopped, reason not-linked (-1)<br>0:07:52.244299700   304      0x2af2b20 INFO        GST_ERROR_SYSTEM gstelement.c:2140:gst_element_message_full_with_details:<srtsrc0> posting message: Internal data stream error.<br>0:07:52.244444500   304      0x2af2b20 INFO        GST_ERROR_SYSTEM gstelement.c:2167:gst_element_message_full_with_details:<srtsrc0> posted error message: Internal data stream error.<br>0:07:52.244511700   304      0x2af2b20 INFO                    task gsttask.c:312:gst_task_func:<srtsrc0:src> Task going to paused<br><br><u>after a few seconds an endless loop of the SRT Lib follows:</u><br><br>16:08:39.981647/SRT:RcvQ:worker*E:SRT.c: %1003936651:No room to store incoming packet: offset=6784 avail=0 ack.seq=263638280 pkt.seq=263645064 rcv-remain=8191<br>...<br><br><br><br><br><br></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">Am Di., 18. Feb. 2020 um 15:34 Uhr schrieb Michael <<a href="mailto:michael.riha%2BgstreamerMailingList@gmail.com">michael.riha+gstreamerMailingList@gmail.com</a>>:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir="ltr">Hello everybody,<br><br>I am experimenting with GStreamer now for a few weeks<br>and after putting together some pipeline in the gst-launch-1.0 CLI<br>I started using python a few days ago.<br><br>Made good progress but I am stuck now with `srtsrc`.<br><br>I have a CLI-command inside a docker container which works as expected:<br><br><div><div style="line-height:18px"><div style="color:rgb(212,212,212);font-family:Menlo,Monaco,"Courier New",monospace;font-size:12px;white-space:pre-wrap;background-color:rgb(30,30,30)">gst-launch-1.0 -v  srtsrc uri="srt://:2088" \</div><div style="color:rgb(212,212,212);font-family:Menlo,Monaco,"Courier New",monospace;font-size:12px;white-space:pre-wrap;background-color:rgb(30,30,30)">! tsparse ! tsdemux ! h264parse ! avdec_h264 ! \</div><div style="color:rgb(212,212,212);font-family:Menlo,Monaco,"Courier New",monospace;font-size:12px;white-space:pre-wrap;background-color:rgb(30,30,30)">queue ! x264enc byte-stream=true ! h264parse config-interval=-1 ! \</div><div style="color:rgb(212,212,212);font-family:Menlo,Monaco,"Courier New",monospace;font-size:12px;white-space:pre-wrap;background-color:rgb(30,30,30)">queue ! matroskamux ! queue leaky=2 ! \</div><div style="color:rgb(212,212,212);font-family:Menlo,Monaco,"Courier New",monospace;font-size:12px;white-space:pre-wrap;background-color:rgb(30,30,30)">tcpserversink port=7001 host=0.0.0.0 recover-policy=keyframe</div><br></div></div><div style="line-height:18px">I feed this with FFMPEG outside of the container on port 2088 and play it with `<span style="color:rgb(206,145,120);background-color:rgb(30,30,30);font-family:Menlo,Monaco,"Courier New",monospace;font-size:12px;white-space:pre-wrap">ffplay tcp://<a href="http://127.0.0.1:7001/" target="_blank">127.0.0.1:7001</a></span>` without any problems!<br><br>But ... when I rebuild this CLI-command with python (creating elements and linking them)<br><br>'srtsrc0'<br>srtsrc0->tsparse1<br>'tsparse1'<br>tsparse1->tsdemux2<br>'tsdemux2'<br>tsdemux2->h264parse3<br>'h264parse3'<br>h264parse3->avdec_h2644<br>'avdec_h2644'<br>avdec_h2644->queue5<br>'queue5'<br>queue5->x264enc6<br>'x264enc6'<br>x264enc6->h264parse7<br>'h264parse7'<br>h264parse7->queue8<br>'queue8'<br>queue8->matroskamux9<br>'matroskamux9'<br>matroskamux9->queue10<br>'queue10'<br>queue10->tcpserversink11</div><div style="line-height:18px"><br></div><div style="line-height:18px"><u>Here the diagram:</u><br><br><div><img src="cid:ii_k6ryu37m0" alt="srtPipeline.png" width="542" height="65"><br></div><div>Bus Messages (reduced):<br><br>Received message from -> tcpserversink11<br>state changed: (oldstate=<enum GST_STATE_NULL of type Gst.State>, newstate=<enum GST_STATE_READY of type Gst.State>, pending=<enum GST_STATE_VOID_PENDING of type Gst.State>)<br>Received message from -> queue10<br>state changed: (oldstate=<enum GST_STATE_NULL of type Gst.State>, newstate=<enum GST_STATE_READY of type Gst.State>, pending=<enum GST_STATE_VOID_PENDING of type Gst.State>)<br>Received message from -> matroskamux9<br>state changed: (oldstate=<enum GST_STATE_NULL of type Gst.State>, newstate=<enum GST_STATE_READY of type Gst.State>, pending=<enum GST_STATE_VOID_PENDING of type Gst.State>)<br>Received message from -> queue8<br>state changed: (oldstate=<enum GST_STATE_NULL of type Gst.State>, newstate=<enum GST_STATE_READY of type Gst.State>, pending=<enum GST_STATE_VOID_PENDING of type Gst.State>)<br>Received message from -> h264parse7<br>state changed: (oldstate=<enum GST_STATE_NULL of type Gst.State>, newstate=<enum GST_STATE_READY of type Gst.State>, pending=<enum GST_STATE_VOID_PENDING of type Gst.State>)<br>Received message from -> x264enc6<br>state changed: (oldstate=<enum GST_STATE_NULL of type Gst.State>, newstate=<enum GST_STATE_READY of type Gst.State>, pending=<enum GST_STATE_VOID_PENDING of type Gst.State>)<br>Received message from -> queue5<br>state changed: (oldstate=<enum GST_STATE_NULL of type Gst.State>, newstate=<enum GST_STATE_READY of type Gst.State>, pending=<enum GST_STATE_VOID_PENDING of type Gst.State>)<br>Received message from -> avdec_h2644<br>state changed: (oldstate=<enum GST_STATE_NULL of type Gst.State>, newstate=<enum GST_STATE_READY of type Gst.State>, pending=<enum GST_STATE_VOID_PENDING of type Gst.State>)<br>Received message from -> h264parse3<br>state changed: (oldstate=<enum GST_STATE_NULL of type Gst.State>, newstate=<enum GST_STATE_READY of type Gst.State>, pending=<enum GST_STATE_VOID_PENDING of type Gst.State>)<br>Received message from -> tsdemux2<br>state changed: (oldstate=<enum GST_STATE_NULL of type Gst.State>, newstate=<enum GST_STATE_READY of type Gst.State>, pending=<enum GST_STATE_VOID_PENDING of type Gst.State>)<br>Received message from -> tsparse1<br>state changed: (oldstate=<enum GST_STATE_NULL of type Gst.State>, newstate=<enum GST_STATE_READY of type Gst.State>, pending=<enum GST_STATE_VOID_PENDING of type Gst.State>)<br>Received message from -> srtsrc0<br>state changed: (oldstate=<enum GST_STATE_NULL of type Gst.State>, newstate=<enum GST_STATE_READY of type Gst.State>, pending=<enum GST_STATE_VOID_PENDING of type Gst.State>)<br>Received message from -> pipeline0<br>state changed: (oldstate=<enum GST_STATE_NULL of type Gst.State>, newstate=<enum GST_STATE_READY of type Gst.State>, pending=<enum GST_STATE_PLAYING of type Gst.State>)<br>Received message from -> src<br>stream status: (type=<enum GST_STREAM_STATUS_TYPE_CREATE of type Gst.StreamStatusType>, owner=<__gi__.GstQueue object at 0x7f0e162bdcd0 (GstQueue at 0x2bae6f0)>)<br>Received message from -> queue10<br>state changed: (oldstate=<enum GST_STATE_READY of type Gst.State>, newstate=<enum GST_STATE_PAUSED of type Gst.State>, pending=<enum GST_STATE_VOID_PENDING of type Gst.State>)<br>Received message from -> src<br>stream status: (type=<enum GST_STREAM_STATUS_TYPE_ENTER of type Gst.StreamStatusType>, owner=<__gi__.GstQueue object at 0x7f0e162bdcd0 (GstQueue at 0x2bae6f0)>)<br>Received message from -> matroskamux9<br>state changed: (oldstate=<enum GST_STATE_READY of type Gst.State>, newstate=<enum GST_STATE_PAUSED of type Gst.State>, pending=<enum GST_STATE_VOID_PENDING of type Gst.State>)<br>Received message from -> src<br>stream status: (type=<enum GST_STREAM_STATUS_TYPE_CREATE of type Gst.StreamStatusType>, owner=<__gi__.GstQueue object at 0x7f0e162bd640 (GstQueue at 0x2bae3f0)>)<br>Received message from -> queue8<br>state changed: (oldstate=<enum GST_STATE_READY of type Gst.State>, newstate=<enum GST_STATE_PAUSED of type Gst.State>, pending=<enum GST_STATE_VOID_PENDING of type Gst.State>)<br>Received message from -> src<br>stream status: (type=<enum GST_STREAM_STATUS_TYPE_ENTER of type Gst.StreamStatusType>, owner=<__gi__.GstQueue object at 0x7f0e162bd640 (GstQueue at 0x2bae3f0)>)<br>Received message from -> h264parse7<br>state changed: (oldstate=<enum GST_STATE_READY of type Gst.State>, newstate=<enum GST_STATE_PAUSED of type Gst.State>, pending=<enum GST_STATE_VOID_PENDING of type Gst.State>)<br>Received message from -> x264enc6<br>state changed: (oldstate=<enum GST_STATE_READY of type Gst.State>, newstate=<enum GST_STATE_PAUSED of type Gst.State>, pending=<enum GST_STATE_VOID_PENDING of type Gst.State>)<br>Received message from -> src<br>stream status: (type=<enum GST_STREAM_STATUS_TYPE_CREATE of type Gst.StreamStatusType>, owner=<__gi__.GstQueue object at 0x7f0e162bd0a0 (GstQueue at 0x2bae0f0)>)<br>Received message from -> queue5<br>state changed: (oldstate=<enum GST_STATE_READY of type Gst.State>, newstate=<enum GST_STATE_PAUSED of type Gst.State>, pending=<enum GST_STATE_VOID_PENDING of type Gst.State>)<br>Received message from -> src<br>stream status: (type=<enum GST_STREAM_STATUS_TYPE_ENTER of type Gst.StreamStatusType>, owner=<__gi__.GstQueue object at 0x7f0e162bd0a0 (GstQueue at 0x2bae0f0)>)<br>Received message from -> avdec_h2644<br>state changed: (oldstate=<enum GST_STATE_READY of type Gst.State>, newstate=<enum GST_STATE_PAUSED of type Gst.State>, pending=<enum GST_STATE_VOID_PENDING of type Gst.State>)<br>Received message from -> h264parse3<br>state changed: (oldstate=<enum GST_STATE_READY of type Gst.State>, newstate=<enum GST_STATE_PAUSED of type Gst.State>, pending=<enum GST_STATE_VOID_PENDING of type Gst.State>)<br>Received message from -> tsdemux2<br>state changed: (oldstate=<enum GST_STATE_READY of type Gst.State>, newstate=<enum GST_STATE_PAUSED of type Gst.State>, pending=<enum GST_STATE_VOID_PENDING of type Gst.State>)<br>Received message from -> tsparse1<br>state changed: (oldstate=<enum GST_STATE_READY of type Gst.State>, newstate=<enum GST_STATE_PAUSED of type Gst.State>, pending=<enum GST_STATE_VOID_PENDING of type Gst.State>)<br>Received message from -> src<br>stream status: (type=<enum GST_STREAM_STATUS_TYPE_CREATE of type Gst.StreamStatusType>, owner=<__gi__.GstSRTSrc object at 0x7f0e162bb870 (GstSRTSrc at 0x2aca1b0)>)<br>Received message from -> srtsrc0<br>state changed: (oldstate=<enum GST_STATE_READY of type Gst.State>, newstate=<enum GST_STATE_PAUSED of type Gst.State>, pending=<enum GST_STATE_VOID_PENDING of type Gst.State>)<br>Received message from -> pipeline0<br>state changed: (oldstate=<enum GST_STATE_READY of type Gst.State>, newstate=<enum GST_STATE_PAUSED of type Gst.State>, pending=<enum GST_STATE_PLAYING of type Gst.State>)<br>Received message from -> src<br>stream status: (type=<enum GST_STREAM_STATUS_TYPE_ENTER of type Gst.StreamStatusType>, owner=<__gi__.GstSRTSrc object at 0x7f0e162bb870 (GstSRTSrc at 0x2aca1b0)>)<br>Received message from -> pipeline0<br>Bus message: 18446744073709551615: <flags GST_MESSAGE_NEW_CLOCK of type Gst.MessageType><br><Gst.Message object at 0x7f0e16488590 (GstMessage at 0x2b9db40)><br>Received message from -> queue10<br>state changed: (oldstate=<enum GST_STATE_PAUSED of type Gst.State>, newstate=<enum GST_STATE_PLAYING of type Gst.State>, pending=<enum GST_STATE_VOID_PENDING of type Gst.State>)<br>Received message from -> matroskamux9<br>state changed: (oldstate=<enum GST_STATE_PAUSED of type Gst.State>, newstate=<enum GST_STATE_PLAYING of type Gst.State>, pending=<enum GST_STATE_VOID_PENDING of type Gst.State>)<br>Received message from -> queue8<br>state changed: (oldstate=<enum GST_STATE_PAUSED of type Gst.State>, newstate=<enum GST_STATE_PLAYING of type Gst.State>, pending=<enum GST_STATE_VOID_PENDING of type Gst.State>)<br>Received message from -> h264parse7<br>state changed: (oldstate=<enum GST_STATE_PAUSED of type Gst.State>, newstate=<enum GST_STATE_PLAYING of type Gst.State>, pending=<enum GST_STATE_VOID_PENDING of type Gst.State>)<br>Received message from -> x264enc6<br>state changed: (oldstate=<enum GST_STATE_PAUSED of type Gst.State>, newstate=<enum GST_STATE_PLAYING of type Gst.State>, pending=<enum GST_STATE_VOID_PENDING of type Gst.State>)<br>Received message from -> queue5<br>state changed: (oldstate=<enum GST_STATE_PAUSED of type Gst.State>, newstate=<enum GST_STATE_PLAYING of type Gst.State>, pending=<enum GST_STATE_VOID_PENDING of type Gst.State>)<br>Received message from -> avdec_h2644<br>state changed: (oldstate=<enum GST_STATE_PAUSED of type Gst.State>, newstate=<enum GST_STATE_PLAYING of type Gst.State>, pending=<enum GST_STATE_VOID_PENDING of type Gst.State>)<br>Received message from -> h264parse3<br>state changed: (oldstate=<enum GST_STATE_PAUSED of type Gst.State>, newstate=<enum GST_STATE_PLAYING of type Gst.State>, pending=<enum GST_STATE_VOID_PENDING of type Gst.State>)<br>Received message from -> tsdemux2<br>state changed: (oldstate=<enum GST_STATE_PAUSED of type Gst.State>, newstate=<enum GST_STATE_PLAYING of type Gst.State>, pending=<enum GST_STATE_VOID_PENDING of type Gst.State>)<br>Received message from -> tsparse1<br>state changed: (oldstate=<enum GST_STATE_PAUSED of type Gst.State>, newstate=<enum GST_STATE_PLAYING of type Gst.State>, pending=<enum GST_STATE_VOID_PENDING of type Gst.State>)<br>Received message from -> srtsrc0<br>state changed: (oldstate=<enum GST_STATE_PAUSED of type Gst.State>, newstate=<enum GST_STATE_PLAYING of type Gst.State>, pending=<enum GST_STATE_VOID_PENDING of type Gst.State>)<br><br>As soon as I try to connect to `srtsrc` with FFMPEG<br>`ffmpeg  -re     -f lavfi     -i "testsrc=size=1920x1080:rate=25"     -f lavfi     -i "sine=frequency=800:sample_rate=48000"     -preset:v superfast     -pix_fmt yuv420p     -map 0:v     -map 1:a     -c:v libx264 -tune zerolatency -profile:v high -preset veryfast  -g 30     -keyint_min 30 -b:v 2000k     -c:a aac -ar 48000 -ac 2 -max_muxing_queue_size 1024 -f mpegts "srt://:2088"` (which works with the CLI-command above like a charm!!!)<br><br>the following is sent to the pipeline-bus:<br><br>Received message from -> tsparse1<br>Element message: sdt, section=(GstMpegtsSection)NULL;<br>Received message from -> tsparse1<br>Element message: pat, section=(GstMpegtsSection)NULL;<br>Received message from -> tsparse1<br>Element message: pmt, section=(GstMpegtsSection)NULL;<br>Received message from -> tsdemux2<br>Element message: pat, section=(GstMpegtsSection)NULL;<br>Received message from -> tsdemux2<br>Bus message: 18446744073709551615: <flags GST_MESSAGE_WARNING | GST_MESSAGE_EXTENDED | GST_MESSAGE_STREAM_COLLECTION of type Gst.MessageType><br><Gst.Message object at 0x7f0e16488590 (GstMessage at 0x7f0df0002b40)><br>Received message from -> tsdemux2<br>Element message: pmt, section=(GstMpegtsSection)NULL;<br>Received message from -> srtsrc0<br>Error: gst-stream-error-quark: Internal data stream error. (1): gstbasesrc.c(3072): gst_base_src_loop (): /GstPipeline:pipeline0/GstSRTSrc:srtsrc0:<br>streaming stopped, reason not-linked (-1)</div><div><br></div><div>and the python-script is exited.<br><br>As I have already done some CLI-> python examples, I am quite sure that the pipeline itself is rebuilt correct, but I am still new so I would appreciate it very much if you could help me?<br><br><br>Thank you in advance<div></div><div></div><div><br></div></div></div></div>
</blockquote></div>