GStreamer issueshttps://gitlab.freedesktop.org/groups/gstreamer/-/issues2019-07-22T13:07:52Zhttps://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/issues/994webrtcbin - `ERROR:gstwebrtcbin.c:2109:_update_transceiver_from_sdp_media: as...2019-07-22T13:07:52ZAiden Jeffreywebrtcbin - `ERROR:gstwebrtcbin.c:2109:_update_transceiver_from_sdp_media: assertion failed: (pad->trans == rtp_trans)` when manually adding transceivers to the elementI was getting a random garbage SDP offer sent from the webrtcbin side to the browser (nonsense rtpmap), so tried adding an explicit transceiver to the `webrtcbin` element (HEAD commit here https://github.com/aiden-ct/gstwebrtc-demos/comm...I was getting a random garbage SDP offer sent from the webrtcbin side to the browser (nonsense rtpmap), so tried adding an explicit transceiver to the `webrtcbin` element (HEAD commit here https://github.com/aiden-ct/gstwebrtc-demos/commit/691da1bd4f0c06065090fea7c6093271660a977a). Before, the offer was defaulting to `a=sendrecv`, which was also resulting in an extra, blank SDP offer to the browser.
However, when I run it, I get `ERROR:gstwebrtcbin.c:2109:_update_transceiver_from_sdp_media: assertion failed: (pad->trans == rtp_trans`. Here is the full output:
```
$ GST_DEBUG=3,*webrtc*:7 gdb streaming-app-debug
GNU gdb (Ubuntu 8.1-0ubuntu3) 8.1.0.20180409-git
Copyright (C) 2018 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law. Type "show copying"
and "show warranty" for details.
This GDB was configured as "x86_64-linux-gnu".
Type "show configuration" for configuration details.
For bug reporting instructions, please see:
<http://www.gnu.org/software/gdb/bugs/>.
Find the GDB manual and other documentation resources online at:
<http://www.gnu.org/software/gdb/documentation/>.
For help, type "help".
Type "apropos word" to search for commands related to "word"...
Reading symbols from streaming-app-debug...done.
(gdb) run
Starting program: /home/aiden/Work/mlb/software/gstwebrtc-demos/streamer/gst/streaming-app-debug
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib/x86_64-linux-gnu/libthread_db.so.1".
Connecting to server...
[New Thread 0x7fffea2b8700 (LWP 19102)]
[New Thread 0x7fffe9ab7700 (LWP 19103)]
[New Thread 0x7fffe92b6700 (LWP 19104)]
[New Thread 0x7fffe8ab5700 (LWP 19105)]
0:00:00.253896981 19097 0x5555559d85e0 FIXME default gstutils.c:3963:gst_pad_create_stream_id_internal:<videotestsrc:src> Creating random stream-id, consider implementing a deterministic way of creating a stream-id
0:00:00.254082364 19097 0x5555559d85e0 WARN vaapi gstvaapicontext.c:356:config_create: Failed to create vaConfig
0:00:00.254092116 19097 0x5555559d85e0 WARN vaapiencode gstvaapiencode.c:428:ensure_allowed_sinkpad_caps:<video_encoder> failed to get allowed surface formats
0:00:00.255943420 19097 0x5555559d85e0 WARN vaapi gstvaapicontext.c:356:config_create: Failed to create vaConfig
0:00:00.255956121 19097 0x5555559d85e0 WARN vaapiencode gstvaapiencode.c:428:ensure_allowed_sinkpad_caps:<video_encoder> failed to get allowed surface formats
0:00:00.257769859 19097 0x5555559d85e0 WARN vaapi gstvaapicontext.c:356:config_create: Failed to create vaConfig
0:00:00.257781762 19097 0x5555559d85e0 WARN vaapiencode gstvaapiencode.c:428:ensure_allowed_sinkpad_caps:<video_encoder> failed to get allowed surface formats
0:00:00.257964971 19097 0x5555559d85e0 WARN vaapi gstvaapicontext.c:356:config_create: Failed to create vaConfig
0:00:00.257976456 19097 0x5555559d85e0 WARN vaapiencode gstvaapiencode.c:428:ensure_allowed_sinkpad_caps:<video_encoder> failed to get allowed surface formats
0:00:00.258157040 19097 0x5555559d88f0 WARN vaapi gstvaapicontext.c:356:config_create: Failed to create vaConfig
0:00:00.258169531 19097 0x5555559d88f0 WARN vaapiencode gstvaapiencode.c:428:ensure_allowed_sinkpad_caps:<video_encoder> failed to get allowed surface formats
[New Thread 0x7fffdbfff700 (LWP 19106)]
[New Thread 0x7fffdb3a3700 (LWP 19107)]
[New Thread 0x7fffda995700 (LWP 19108)]
[New Thread 0x7fffd9b66700 (LWP 19109)]
[New Thread 0x7fffc6c6f700 (LWP 19115)]
> GET HTTP/1.1
> Soup-Debug-Timestamp: 1560953345
> Soup-Debug: SoupSession 1 (0x555555a08220), SoupMessage 1 (0x555555a250c0), SoupSocket 1 (0x55555580d4e0)
> Host: localhost:8443
> Upgrade: websocket
> Connection: Upgrade
> Sec-WebSocket-Key: rx5oMI4H/UOD7ET0JCWMtQ==
> Sec-WebSocket-Version: 13
> Accept-Encoding: gzip, deflate
< HTTP/1.1 101 Switching Protocols
< Soup-Debug-Timestamp: 1560953345
< Soup-Debug: SoupMessage 1 (0x555555a250c0)
< Upgrade: websocket
< Connection: Upgrade
< Sec-WebSocket-Accept: MWF+xbURM+N4oNU1+GsMGrgpwBA=
< Date: Wed, 19 Jun 2019 14:09:05 GMT
< Server: Python/3.6 websockets/7.0
Connected to signalling server
Registering with signalling server
Registered with server
[Thread 0x7fffc6c6f700 (LWP 19115) exited]
[New Thread 0x7fffc6c6f700 (LWP 19118)]
[New Thread 0x7fffc5332700 (LWP 19119)]
0: direction = 2
(streaming-app-debug:19097): GLib-GObject-WARNING **: 15:09:09.395: ../../../../gobject/gsignal.c:3492: signal name 'create-data-channel' is invalid for instance '0x5555560b81b0' of type 'GstWebRTCBin'
WARNING: Could not create data channel, is usrsctp available?
(streaming-app-debug:19097): GLib-GObject-WARNING **: 15:09:09.395: ../../../../gobject/gsignal.c:2523: signal 'on-data-channel' is invalid for instance '0x5555560b81b0' of type 'GstWebRTCBin'
0:00:04.754545576 19097 0x555555a4a670 DEBUG webrtcice gstwebrtcice.c:708:gst_webrtc_ice_set_property:<webrtcice0> setting stun server, stun://stun.l.google.com:19302
(streaming-app-debug:19097): GLib-GObject-WARNING **: 15:09:09.577: g_object_set_is_valid_property: object class 'GstWebRTCBin' has no property named 'bundle-policy'
0:00:04.936712878 19097 0x555555a4a670 DEBUG webrtcbin gstwebrtcbin.c:2918:gst_webrtc_bin_change_state: changing state: NULL => READY
0:00:04.946295029 19097 0x555555a4a670 LOG webrtcbin gstwebrtcbin.c:1014:_check_if_negotiation_is_needed:<webrtcbin_568> checking if negotiation is needed
0:00:04.946337593 19097 0x555555a4a670 LOG webrtcbin gstwebrtcbin.c:1026:_check_if_negotiation_is_needed:<webrtcbin_568> no local description set
0:00:04.946423693 19097 0x5555560b5400 TRACE webrtcbin gstwebrtcbin.c:1118:_check_need_negotiation_task:<webrtcbin_568> emitting on-negotiation-needed
0:00:04.946478232 19097 0x555555a4a670 DEBUG webrtcbin gstwebrtcbin.c:2918:gst_webrtc_bin_change_state: changing state: READY => PAUSED
0:00:04.946572395 19097 0x5555560b5400 INFO webrtcbin gstwebrtcbin.c:1720:_create_sdp_task:<webrtcbin_568> creating offer sdp with options (NULL)
0:00:04.946585502 19097 0x555555a4a670 DEBUG webrtcbin gstwebrtcbin.c:2918:gst_webrtc_bin_change_state: changing state: PAUSED => PLAYING
0:00:04.946699295 19097 0x5555560b5400 LOG webrtcbin gstwebrtcbin.c:1162:_find_codec_preferences:<webrtcbin_568> retreiving codec preferences from <webrtctransceiver0>
0:00:04.946767849 19097 0x5555560b5400 LOG webrtcbin gstwebrtcbin.c:1166:_find_codec_preferences:<webrtcbin_568> Using codec preferences: application/x-rtp, payload=(int)96, media=(string)video, encoding-name=(string)H264, clock-rate=(int)90000
0:00:04.946865580 19097 0x5555560b5400 DEBUG webrtcbin gstwebrtcbin.c:1378:sdp_media_from_transceiver:<webrtcbin_568> Adding 0-th caps application/x-rtp, payload=(int)96, media=(string)video, encoding-name=(string)H264, clock-rate=(int)90000, rtcp-fb-nack=(boolean)true, rtcp-fb-nack-pli=(boolean)true to 0-th media
0:00:04.946986270 19097 0x5555560b5400 TRACE webrtcbin gstwebrtcbin.c:379:_find_transport_for_session:<webrtcbin_568> Found transport (NULL) for session 0
0:00:04.947079525 19097 0x555555a4a670 DEBUG webrtcbin gstwebrtcbin.c:166:gst_webrtc_bin_pad_new:<'':sink_0> new visible pad with direction sink
0:00:04.947127785 19097 0x555555a4a670 TRACE webrtcbin gstwebrtcbin.c:338:_find_transceiver_for_mline:<webrtcbin_568> Found transceiver (NULL) for mlineindex 0
0:00:04.947259049 19097 0x555555a4a670 INFO webrtcbin gstwebrtcbin.c:1852:_connect_input_stream:<'':sink_0> linking input stream 0
[New Thread 0x7fffbb927700 (LWP 19120)]
0:00:05.036365719 19097 0x555555a4a670 TRACE webrtcbin gstwebrtcbin.c:2784:on_rtpbin_pad_added:<webrtcbin_568> new rtpbin pad send_rtp_src_0
0:00:05.036409352 19097 0x555555a4a670 TRACE webrtcbin gstwebrtcbin.c:2784:on_rtpbin_pad_added:<webrtcbin_568> new rtpbin pad send_rtp_sink_0
0:00:05.036421749 19097 0x555555a4a670 TRACE webrtcbin gstwebrtcbin.c:379:_find_transport_for_session:<webrtcbin_568> Found transport (NULL) for session 0
0:00:05.278330391 19097 0x555555a4a670 TRACE webrtcbin gstwebrtcbin.c:268:_find_ice_stream_for_session:<webrtcbin_568> No ice stream available for session 0
0:00:05.278342311 19097 0x5555560b5400 TRACE webrtcbin gstwebrtcbin.c:268:_find_ice_stream_for_session:<webrtcbin_568> No ice stream available for session 0
0:00:05.278409277 19097 0x555555a4a670 TRACE webrtcbin gstwebrtcbin.c:279:_add_ice_stream_item:<webrtcbin_568> adding ice stream <webrtcicestream0> for session 0
0:00:05.278490678 19097 0x5555560b5400 TRACE webrtcbin gstwebrtcbin.c:279:_add_ice_stream_item:<webrtcbin_568> adding ice stream <webrtcicestream1> for session 0
0:00:05.279475426 19097 0x555555a4a670 TRACE webrtcbin gstwebrtcbin.c:2784:on_rtpbin_pad_added:<webrtcbin_568> new rtpbin pad recv_rtcp_sink_0
0:00:05.279533015 19097 0x555555a4a670 TRACE webrtcbin gstwebrtcbin.c:2784:on_rtpbin_pad_added:<webrtcbin_568> new rtpbin pad send_rtcp_src_0
0:00:05.279568334 19097 0x555555a4a670 TRACE webrtcbin gstwebrtcbin.c:1306:_create_transport_channel:<webrtcbin_568> Create transport <transportstream1> for session 0
0:00:05.279576669 19097 0x555555a4a670 DEBUG webrtctransportsendbin transportsendbin.c:149:transport_send_bin_change_state:<transportsendbin1> changing state: NULL => READY
0:00:05.279602784 19097 0x555555a4a670 DEBUG webrtctransportsendbin transportsendbin.c:149:transport_send_bin_change_state:<transportsendbin1> changing state: READY => PAUSED
** (streaming-app-debug:19097): WARNING **: 15:09:09.920: (gstwebrtcbin.c:1300):_create_transport_channel: code should not be reached
0:00:05.279625421 19097 0x5555560b5400 TRACE webrtcbin gstwebrtcbin.c:1306:_create_transport_channel:<webrtcbin_568> Create transport <transportstream0> for session 0
0:00:05.279635862 19097 0x5555560b5400 DEBUG webrtctransportsendbin transportsendbin.c:149:transport_send_bin_change_state:<transportsendbin0> changing state: NULL => READY
0:00:05.279639707 19097 0x555555a4a670 DEBUG webrtctransportsendbin transportsendbin.c:149:transport_send_bin_change_state:<transportsendbin1> changing state: PAUSED => PLAYING
0:00:05.279661998 19097 0x555555a4a670 DEBUG webrtctransportreceivebin transportreceivebin.c:187:transport_receive_bin_change_state: changing state: NULL => READY
0:00:05.279665595 19097 0x5555560b5400 DEBUG webrtctransportsendbin transportsendbin.c:149:transport_send_bin_change_state:<transportsendbin0> changing state: READY => PAUSED
0:00:05.279723509 19097 0x5555560b5400 DEBUG webrtctransportsendbin transportsendbin.c:149:transport_send_bin_change_state:<transportsendbin0> changing state: PAUSED => PLAYING
0:00:05.279744443 19097 0x5555560b5400 DEBUG webrtctransportreceivebin transportreceivebin.c:187:transport_receive_bin_change_state: changing state: NULL => READY
[New Thread 0x7fffbaf09700 (LWP 19131)]
[New Thread 0x7fffba708700 (LWP 19132)]
0:00:05.280088961 19097 0x555555fbc8f0 FIXME default gstutils.c:3963:gst_pad_create_stream_id_internal:<nicesrc1:src> Creating random stream-id, consider implementing a deterministic way of creating a stream-id
[New Thread 0x7fffb9f07700 (LWP 19133)]
0:00:05.280112534 19097 0x555555fbc8f0 WARN GST_PADS gstpad.c:4224:gst_pad_peer_query:<nicesrc1:src> could not send sticky events
[New Thread 0x7fffb9706700 (LWP 19134)]
0:00:05.280217072 19097 0x555555a4a670 DEBUG webrtctransportreceivebin transportreceivebin.c:187:transport_receive_bin_change_state: changing state: READY => PAUSED
[New Thread 0x7fffb8f05700 (LWP 19135)]
0:00:05.280331998 19097 0x5555560b5400 DEBUG webrtctransportreceivebin transportreceivebin.c:187:transport_receive_bin_change_state: changing state: READY => PAUSED
0:00:05.280412285 19097 0x555555f41190 FIXME default gstutils.c:3963:gst_pad_create_stream_id_internal:<nicesrc2:src> Creating random stream-id, consider implementing a deterministic way of creating a stream-id
0:00:05.280423687 19097 0x555555fbc9e0 FIXME default gstutils.c:3963:gst_pad_create_stream_id_internal:<nicesrc3:src> Creating random stream-id, consider implementing a deterministic way of creating a stream-id
0:00:05.280432830 19097 0x555555fbc990 FIXME default gstutils.c:3963:gst_pad_create_stream_id_internal:<nicesrc4:src> Creating random stream-id, consider implementing a deterministic way of creating a stream-id
0:00:05.280451427 19097 0x555555f41190 WARN GST_PADS gstpad.c:4224:gst_pad_peer_query:<nicesrc2:src> could not send sticky events
0:00:05.280451429 19097 0x555555fbc9e0 WARN GST_PADS gstpad.c:4224:gst_pad_peer_query:<nicesrc3:src> could not send sticky events
[New Thread 0x7fff9bfff700 (LWP 19136)]
0:00:05.280467781 19097 0x555555fbc990 WARN GST_PADS gstpad.c:4224:gst_pad_peer_query:<nicesrc4:src> could not send sticky events
0:00:05.280483824 19097 0x555555a4a670 DEBUG webrtctransportreceivebin transportreceivebin.c:187:transport_receive_bin_change_state: changing state: PAUSED => PLAYING
0:00:05.280592839 19097 0x555555a4a670 DEBUG webrtctransportsendbin transportsendbin.c:149:transport_send_bin_change_state:<transportsendbin1> changing state: PLAYING => PLAYING
0:00:05.280598406 19097 0x5555560b5400 DEBUG webrtctransportreceivebin transportreceivebin.c:187:transport_receive_bin_change_state: changing state: PAUSED => PLAYING
0:00:05.280727002 19097 0x5555560b5400 LOG webrtcbin gstwebrtcbin.c:1162:_find_codec_preferences:<webrtcbin_568> retreiving codec preferences from <webrtctransceiver1>
(streaming-app-debug:19097): GStreamer-CRITICAL **: 15:09:09.921: gst_mini_object_make_writable: assertion 'mini_object != NULL' failed
(streaming-app-debug:19097): GStreamer-CRITICAL **: 15:09:09.921: gst_caps_get_size: assertion 'GST_IS_CAPS (caps)' failed
0:00:05.280767726 19097 0x5555560b5400 WARN webrtcbin gstwebrtcbin.c:1365:sdp_media_from_transceiver:<webrtcbin_568> no caps available for transceiver, skipping
Sending offer:
v=0
o=- 3683714542561044098 0 IN IP4 0.0.0.0
s=-
t=0 0
a=ice-options:trickle
m=video 9 UDP/TLS/RTP/SAVPF 96
c=IN IP4 0.0.0.0
a=setup:actpass
a=ice-ufrag:vu2SymgXoPB+Rfywahd1qMThub9QFUAS
a=ice-pwd:/HWWLVGrmSUh5AcOCFqhuNO27bNr5Ek8
a=sendonly
a=rtcp-mux
a=rtcp-rsize
a=rtpmap:96 H264/90000
a=rtcp-fb:96 nack
a=rtcp-fb:96 nack pli
a=mid:video0
a=fingerprint:sha-256 95:52:57:65:77:CE:9F:A1:0C:D7:15:03:0F:35:9D:F7:F9:F2:1A:70:07:E2:81:5A:43:EC:B8:D9:D2:68:D6:BA
0:00:05.280891453 19097 0x5555560b5400 INFO webrtcbin gstwebrtcbin.c:2286:_set_description_task:<webrtcbin_568> Attempting to set local offer in the stable state
0:00:05.280897726 19097 0x5555560b5400 TRACE webrtcbin gstwebrtcbin.c:2287:_set_description_task:<webrtcbin_568> SDP contents
v=0
o=- 3683714542561044098 0 IN IP4 0.0.0.0
s=-
t=0 0
a=ice-options:trickle
m=video 9 UDP/TLS/RTP/SAVPF 96
c=IN IP4 0.0.0.0
a=setup:actpass
a=ice-ufrag:vu2SymgXoPB+Rfywahd1qMThub9QFUAS
a=ice-pwd:/HWWLVGrmSUh5AcOCFqhuNO27bNr5Ek8
a=sendonly
a=rtcp-mux
a=rtcp-rsize
a=rtpmap:96 H264/90000
a=rtcp-fb:96 nack
a=rtcp-fb:96 nack pli
a=mid:video0
a=fingerprint:sha-256 95:52:57:65:77:CE:9F:A1:0C:D7:15:03:0F:35:9D:F7:F9:F2:1A:70:07:E2:81:5A:43:EC:B8:D9:D2:68:D6:BA
0:00:05.280917855 19097 0x5555560b5400 TRACE webrtcbin gstwebrtcbin.c:2407:_set_description_task:<webrtcbin_568> notify signaling-state from stable to have-local-offer
0:00:05.280925424 19097 0x5555560b5400 TRACE webrtcbin gstwebrtcbin.c:379:_find_transport_for_session:<webrtcbin_568> Found transport <transportstream1> for session 0
0:00:05.280931686 19097 0x5555560b5400 DEBUG webrtcice gstwebrtcice.c:547:gst_webrtc_ice_set_local_credentials:<webrtcice0> Setting local ICE credentials on ICE stream 1 ufrag:vu2SymgXoPB+Rfywahd1qMThub9QFUAS pwd:/HWWLVGrmSUh5AcOCFqhuNO27bNr5Ek8
0:00:05.280937940 19097 0x5555560b5400 DEBUG webrtcice gstwebrtcice.c:565:gst_webrtc_ice_gather_candidates:<webrtcice0> gather candidates for stream 1
0:00:05.280941824 19097 0x5555560b5400 DEBUG webrtcicestream icestream.c:177:gst_webrtc_ice_stream_gather_candidates:<webrtcicestream0> start gathering candidates
[New Thread 0x7fff9b7fe700 (LWP 19137)]
Received SDP answer:
v=0
o=- 6033211127276408481 2 IN IP4 127.0.0.1
s=-
t=0 0
a=msid-semantic: WMS
m=video 9 UDP/TLS/RTP/SAVPF 96
c=IN IP4 0.0.0.0
a=rtcp:9 IN IP4 0.0.0.0
a=ice-ufrag:/6E0
a=ice-pwd:g1BZJ/aMJhrEZUzC0R8U7Jew
a=ice-options:trickle
a=fingerprint:sha-256 CC:C3:2E:DE:57:A2:20:3D:A0:2B:FD:6B:A2:25:FC:00:BD:B4:C6:FC:4C:19:E3:BD:D5:67:31:36:C6:5C:5A:79
a=setup:active
a=mid:video0
a=recvonly
a=rtcp-mux
a=rtcp-rsize
a=rtpmap:96 H264/90000
a=rtcp-fb:96 nack
a=rtcp-fb:96 nack pli
a=fmtp:96 level-asymmetry-allowed=1;packetization-mode=0;profile-level-id=42e01f
0:00:05.299344692 19097 0x5555559d88a0 LOG webrtctransportsendbin transportsendbin.c:135:pad_block:<dtlssrtpenc1:rtp_sink_0> blocking pad with data bufferlist: 0x7fffd000b0c0, 3 buffers, pts 0:00:05.007244535, dts 0:00:05.007244535, size 3684
0:00:05.305203122 19097 0x5555560b5400 DEBUG webrtcnicetransport nicetransport.c:186:_on_component_state_changed:<webrtcnicetransport0> 1 1 gathering
0:00:05.305245828 19097 0x5555560b5400 DEBUG webrtcnicetransport nicetransport.c:186:_on_component_state_changed:<webrtcnicetransport3> 1 2 gathering
0:00:05.305256126 19097 0x5555560b5400 DEBUG webrtcice gstwebrtcice.c:565:gst_webrtc_ice_gather_candidates:<webrtcice0> gather candidates for stream 2
0:00:05.305262790 19097 0x5555560b5400 DEBUG webrtcicestream icestream.c:177:gst_webrtc_ice_stream_gather_candidates:<webrtcicestream1> start gathering candidates
0:00:05.310647222 19097 0x5555560b5400 TRACE webrtcbin gstwebrtcbin.c:762:_collate_ice_gathering_states:<webrtcbin_568> ICE gathering state: 0x0
0:00:05.310660308 19097 0x5555560b5400 TRACE webrtcbin gstwebrtcbin.c:772:_collate_ice_gathering_states:<webrtcbin_568> returning complete
0:00:05.310668807 19097 0x5555560b5400 INFO webrtcbin gstwebrtcbin.c:920:_update_ice_gathering_state_task:<webrtcbin_568> ICE gathering state change from new(0) to complete(2)
0:00:05.310750590 19097 0x5555560b5400 TRACE webrtcbin gstwebrtcbin.c:762:_collate_ice_gathering_states:<webrtcbin_568> ICE gathering state: 0x0
0:00:05.310762935 19097 0x5555560b5400 TRACE webrtcbin gstwebrtcbin.c:772:_collate_ice_gathering_states:<webrtcbin_568> returning complete
0:00:05.310822757 19097 0x5555560b5400 INFO webrtcbin gstwebrtcbin.c:2286:_set_description_task:<webrtcbin_568> Attempting to set remote answer in the have-local-offer state
0:00:05.310832123 19097 0x5555560b5400 TRACE webrtcbin gstwebrtcbin.c:2287:_set_description_task:<webrtcbin_568> SDP contents
v=0
o=- 6033211127276408481 2 IN IP4 127.0.0.1
s=-
t=0 0
a=msid-semantic: WMS
m=video 9 UDP/TLS/RTP/SAVPF 96
c=IN IP4 0.0.0.0
a=rtcp:9 IN IP4 0.0.0.0
a=ice-ufrag:/6E0
a=ice-pwd:g1BZJ/aMJhrEZUzC0R8U7Jew
a=ice-options:trickle
a=fingerprint:sha-256 CC:C3:2E:DE:57:A2:20:3D:A0:2B:FD:6B:A2:25:FC:00:BD:B4:C6:FC:4C:19:E3:BD:D5:67:31:36:C6:5C:5A:79
a=setup:active
a=mid:video0
a=recvonly
a=rtcp-mux
a=rtcp-rsize
a=rtpmap:96 H264/90000
a=rtcp-fb:96 nack
a=rtcp-fb:96 nack pli
a=fmtp:96 level-asymmetry-allowed=1;packetization-mode=0;profile-level-id=42e01f
0:00:05.310855875 19097 0x5555560b5400 TRACE webrtcbin gstwebrtcbin.c:2407:_set_description_task:<webrtcbin_568> notify signaling-state from have-local-offer to stable
0:00:05.310865611 19097 0x5555560b5400 TRACE webrtcbin gstwebrtcbin.c:1826:_find_transceiver_for_sdp_media:<webrtcbin_568> Found transceiver (NULL)
0:00:05.310875263 19097 0x5555560b5400 DEBUG webrtcbin gstwebrtcbin.c:2026:_update_transceiver_from_sdp_media:<webrtcbin_568> mapping sdp session level attributes to caps
0:00:05.310888231 19097 0x5555560b5400 DEBUG webrtcbin gstwebrtcbin.c:2028:_update_transceiver_from_sdp_media:<webrtcbin_568> mapping sdp media level attributes to caps
0:00:05.310904954 19097 0x5555560b5400 DEBUG webrtcbin gstwebrtcbin.c:2043:_update_transceiver_from_sdp_media:<webrtcbin_568> looking at 0 pt: 96
0:00:05.310969949 19097 0x5555560b5400 TRACE webrtcbin gstwebrtcbin.c:2097:_update_transceiver_from_sdp_media:<webrtcbin_568> transceiver direction change
0:00:05.310986436 19097 0x5555560b5400 DEBUG webrtcbin gstwebrtcbin.c:2108:_update_transceiver_from_sdp_media:<webrtcbin_568> found existing send pad <webrtcbin_568:sink_0> for transceiver <webrtctransceiver0>
**
ERROR:gstwebrtcbin.c:2109:_update_transceiver_from_sdp_media: assertion failed: (pad->trans == rtp_trans)
Thread 11 "gst-pc-ops" received signal SIGABRT, Aborted.
[Switching to Thread 0x7fffc6c6f700 (LWP 19118)]
__GI_raise (sig=sig@entry=6) at ../sysdeps/unix/sysv/linux/raise.c:51
51 ../sysdeps/unix/sysv/linux/raise.c: No such file or directory.
(gdb) backtrace
#0 0x00007ffff6844e97 in __GI_raise (sig=sig@entry=6) at ../sysdeps/unix/sysv/linux/raise.c:51
#1 0x00007ffff6846801 in __GI_abort () at abort.c:79
#2 0x00007ffff6c6a0b5 in g_assertion_message () at /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0
#3 0x00007ffff6c6a11a in g_assertion_message_expr () at /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0
#4 0x00007fffc604b632 in _update_transceiver_from_sdp_media (webrtc=webrtc@entry=0x5555560b81b0, sdp=<optimised out>, media_idx=media_idx@entry=0, rtp_trans=rtp_trans@entry=0x7fffe00a4000)
at gstwebrtcbin.c:2109
#5 0x00007fffc604d589 in _update_transceivers_from_sdp (sdp=0x555555f8ad70, source=<optimised out>, webrtc=0x5555560b81b0) at gstwebrtcbin.c:2206
#6 0x00007fffc604d589 in _set_description_task (webrtc=0x5555560b81b0, sd=0x555555f8ad50) at gstwebrtcbin.c:2439
#7 0x00007fffc604704f in _execute_op (op=0x555555ed7040) at gstwebrtcbin.c:580
#8 0x00007ffff6c43185 in g_main_context_dispatch () at /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0
#9 0x00007ffff6c43550 in () at /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0
#10 0x00007ffff6c43862 in g_main_loop_run () at /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0
#11 0x00007fffc60471ea in _gst_pc_thread (webrtc=0x5555560b81b0) at gstwebrtcbin.c:531
#12 0x00007ffff6c6af15 in () at /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0
#13 0x00007ffff4d6c6db in start_thread (arg=0x7fffc6c6f700) at pthread_create.c:463
#14 0x00007ffff692788f in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95
```
Note that this is in gstreamer 1.14 (have tried running in 1.16, the failure is different, but it still fails - [1.16 output](https://pastebin.com/fi0XUYN3)). I must be using the transceiver incorrectly, but I can't find any documentation clearly explaining it. Can someone point me in the right direction?https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/issues/631log spam: "can't find exact taps"2023-09-20T21:23:58ZDavid Inglog spam: "can't find exact taps"I have been seeing a lot of logspam from a couple of warnings in the code-base: `GST_WARNING ("can't find exact taps");`
One is in `audio-resampler.c`
One is in `video-scaler.c`.
According to @slomo these are "harmless and shouldn't r...I have been seeing a lot of logspam from a couple of warnings in the code-base: `GST_WARNING ("can't find exact taps");`
One is in `audio-resampler.c`
One is in `video-scaler.c`.
According to @slomo these are "harmless and shouldn't really be a warning". I'm not sure what the correct log level should be because I don't really understand what a "tap" is.
Another issue is that the documentation doesn't really define what a "tap" is, and perhaps the only way to figure it out is a deep dive into the code (which I have not done). (I took a quick glance and it wasn't clear.)
Someone should define "tap" in the documentation (code comments). Here are the relevant entities in the code.
* GST_AUDIO_RESAMPLER_OPT_N_TAPS
* GST_VIDEO_RESAMPLER_OPT_MAX_TAPS
* GstVideoResampler.n_taps
* GstVideoResampler.taps
* GST_VIDEO_RESAMPLER_FLAG_HALF_TAPS
* gst_video_scaler_get_max_taps(...)
* gst_video_scaler_new(..., n_taps, ...)
* GST_VIDEO_CONVERTER_OPT_RESAMPLER_TAPShttps://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/issues/616v4l2videodec: Fails negotiation when the device does not support framerate '0/1'2019-11-25T15:42:55ZSamiullah Khawajav4l2videodec: Fails negotiation when the device does not support framerate '0/1'Gstreamer v4l2videodec plugin fails to negotiate the capabilities in handle_frame callback if the device does not support framerate '0/1'.
It seems to be using 'GstVideoInfo' to create 'acquired_caps' by setting up the videoinfo by doin...Gstreamer v4l2videodec plugin fails to negotiate the capabilities in handle_frame callback if the device does not support framerate '0/1'.
It seems to be using 'GstVideoInfo' to create 'acquired_caps' by setting up the videoinfo by doing 'g_fmt ioctls' on the device.
But the 'GstVideoInfo' is initialized with framerate '0/1' in gst_video_info_init'. Note that this framerate is not provided by the device. This framerate value ends up becoming the part of 'acquired_caps', since it is set that way in GstVideoInfo. These 'acquired_caps' are used to do negotiation and it fails if the 'available_caps' does not support framerate '0/1'.
Tested on gstreamer1.0-plugins-good (1.16.0)
References:
- https://github.com/GStreamer/gst-plugins-good/blob/1.16/sys/v4l2/gstv4l2videodec.c#L639
- https://github.com/GStreamer/gst-plugins-base/blob/1.16/gst-libs/gst/video/video-info.c#L128
- https://github.com/GStreamer/gst-plugins-good/blob/1.16/sys/v4l2/gstv4l2videodec.c#L653https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/issues/615rtpg729pay: CRITICAL format error when trying to playback g729 audio file wit...2019-06-19T13:08:34ZChristian Lalannertpg729pay: CRITICAL format error when trying to playback g729 audio file with a size smaller than 4KB# Overview
When trying to play an audio file wich contains g729 data with a size smaller than 4KB, **rtpg729pay** shows gstreamer CRITICAL errors.
this issue is related with #614
# System
The problems happens on the following platf...# Overview
When trying to play an audio file wich contains g729 data with a size smaller than 4KB, **rtpg729pay** shows gstreamer CRITICAL errors.
this issue is related with #614
# System
The problems happens on the following platform:
* GStreamer 1.14.1
* Operative System: Linux
* Distro: Ubuntu 18.04.2 LTS (bionic)
* kernel: 4.15.0-51-generic
# Details
Receiving pipeline
```
gst-launch-1.0 -v udpsrc port=6002 caps="application/x-rtp" ! rtpg729depay ! avdec_g729 ! autoaudiosink
```
Sending pipeline
```
gst-launch-1.0 filesrc location=vm-tomakecall.g729 ! 'audio/G729' ! rtpg729pay ! udpsink host=127.0.0.1 port=6002
```
Error received on stdout when executing sending pipeline
```
Setting pipeline to PAUSED ...
Pipeline is PREROLLING ...
Pipeline is PREROLLED ...
Setting pipeline to PLAYING ...
New clock: GstSystemClock
(gst-launch-1.0:14910): GStreamer-CRITICAL **: 16:35:44.822: gst_segment_to_running_time: assertion 'segment->format == format' failed
(gst-launch-1.0:14910): GStreamer-CRITICAL **: 16:35:46.203: gst_segment_to_running_time: assertion 'segment->format == format' failed
Got EOS from element "pipeline0".
Execution ended after 0:00:02.890369575
Setting pipeline to PAUSED ...
Setting pipeline to READY ...
Setting pipeline to NULL ...
Freeing pipeline ...
```
This only happens when the input files are smaller than 4K
```
2.9KB vm-tomakecall.g729
```
The file is played without problems on the other size, but the critical errors are still present on the sender size.
audio file is attached
[vm-tomakecall.g729](/uploads/0089f007ff3175cf9b6e32cf968d8f97/vm-tomakecall.g729)
**gst debug log file attached**
[dbg.log.xz](/uploads/fdb644579c8a2954fa20c2677edf1bf2/dbg.log.xz)https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/issues/614rtpg729pay: error playing back files with a bigger size than 4KB2019-06-19T13:07:06ZChristian Lalannertpg729pay: error playing back files with a bigger size than 4KB# Overview
When trying to play an audio file wich contains g729 data with a size bigger than 4KB, **rtpg729pay** complains about the size of the input buffer.
this issue is related with #615
# System
The problems happens on the fol...# Overview
When trying to play an audio file wich contains g729 data with a size bigger than 4KB, **rtpg729pay** complains about the size of the input buffer.
this issue is related with #615
# System
The problems happens on the following platform:
* GStreamer 1.14.1
* Operative System: Linux
* Distro: Ubuntu 18.04.2 LTS (bionic)
* kernel: 4.15.0-51-generic
# Details
Receiving pipeline
```
gst-launch-1.0 -v udpsrc port=6002 caps="application/x-rtp" ! rtpg729depay ! avdec_g729 ! autoaudiosink
```
Sending pipeline
```
gst-launch-1.0 filesrc location=vm-record-prepend.g729 ! 'audio/G729' ! rtpg729pay ! udpsink host=127.0.0.1 port=6002
```
Error received on stdout when executing sending pipeline
```
Setting pipeline to PAUSED ...
Pipeline is PREROLLING ...
ERROR: from element /GstPipeline:pipeline0/GstRTPG729Pay:rtpg729pay0: Invalid input buffer size
Additional debug info:
gstrtpg729pay.c(360): gst_rtp_g729_pay_handle_buffer (): /GstPipeline:pipeline0/GstRTPG729Pay:rtpg729pay0:
Invalid buffer size, should be a multiple of G729_FRAME_SIZE(10) with an optional G729B_CN_FRAME_SIZE(2) added to it, but it is 4096
ERROR: pipeline doesn't want to preroll.
Setting pipeline to NULL ...
Freeing pipeline ...
```
This only happens when the input files are bigger than 4K
```
8.0K vm-record-prepend.g729
```
When the file size is less than 4K the file is transmited and played on the other end.
The file [vm-record-prepend.g729](/uploads/d675ff39db6041d18ee012ed1819567b/vm-record-prepend.g729)
**gst debug log file attached**
[dbg.log.xz](/uploads/30acd6777c6d14cefeb89b502702db4c/dbg.log.xz)https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/issues/629glimagesink: regression from 1.12 to 1.14 when window resized2020-06-12T06:41:14ZLucas Johnsonglimagesink: regression from 1.12 to 1.14 when window resizedI had used code that worked fine for many versions of gstreamer until glimagesink was moved from -bad to -base. As an example, the attached patch [glimagesink_resize_broken.patch](/uploads/43c75bef20edeb9d278785ae3b0987c8/glimagesink_re...I had used code that worked fine for many versions of gstreamer until glimagesink was moved from -bad to -base. As an example, the attached patch [glimagesink_resize_broken.patch](/uploads/43c75bef20edeb9d278785ae3b0987c8/glimagesink_resize_broken.patch) can be applied to the gst-docs repository to recreate what I see. All this patch does is tell playbin to use glimagesink as the video-sink instead of its default, which is xvimagesink on my RHEL 7 machine. Resize messages then do not make it where they need to go and resizing the UI leaves the GL window the originally created size.
@ystreethttps://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/issues/613pipeline with pulsesink can not be resumed on musl2019-06-18T19:37:53ZJohannespipeline with pulsesink can not be resumed on muslSetting a pipeline with a pulsesink to the PAUSED state doesn't work on linux systems with musl libc.
I added a small example based on [basic tutorial 2](https://gstreamer.freedesktop.org/documentation/tutorials/basic/concepts.html?gi-l...Setting a pipeline with a pulsesink to the PAUSED state doesn't work on linux systems with musl libc.
I added a small example based on [basic tutorial 2](https://gstreamer.freedesktop.org/documentation/tutorials/basic/concepts.html?gi-language=c).
I expect the pipeline to start, pause after two seconds and resume after another two seconds.
Instead `gst_element_set_state (pipeline, GST_STATE_PAUSED)` doesn't return.
I see the same behavior in gui applications like [lollypop](https://wiki.gnome.org/Apps/Lollypop).
[gst.log](/uploads/fa73ee099e739e5e91407a0275531a78/gst.log) contains the output of `GST_DEBUG_COLOR_MODE=off GST_DEBUG=7 ./test`
I'm using Voidlinux with gstreamer 1.16.0.
It works as expected if `alsasink` is used instead of `pulsesink`. It also works as expected with `pulsesink` on glibc.
I'm not yet sure if this is really a bug in `pulsesink` or somewhere else. Any pointers in the right direction would be greatly appreciated.
[Makefile](/uploads/fcac10f9904613d829ff06f94177eae5/Makefile)
[test.c](/uploads/9ced8d863e75750545de819c3575fd3c/test.c)https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/406Possible memory leak in gstbaseparse2020-02-15T19:14:38ZMatus GajdosPossible memory leak in gstbaseparseWhen debugging I noticed that if there's a buffer to be skipped, it's not unref'd in gst_base_parse_chain(). GstPad documentation says:
> The implementer of this function (GstPadChainFunction) receives a refcount to buffer and should gst...When debugging I noticed that if there's a buffer to be skipped, it's not unref'd in gst_base_parse_chain(). GstPad documentation says:
> The implementer of this function (GstPadChainFunction) receives a refcount to buffer and should gst_buffer_unref when the buffer is no longer needed.
So, I guess there should be something like:
```
diff --git a/libs/gst/base/gstbaseparse.c b/libs/gst/base/gstbaseparse.c
index adfa447..1993f4c 100644
--- a/libs/gst/base/gstbaseparse.c
+++ b/libs/gst/base/gstbaseparse.c
@@ -3085,6 +3085,7 @@ gst_base_parse_chain (GstPad * pad, GstObject * parent, GstBuffer * buffer)
GST_DEBUG ("All the buffer is skipped");
parse->priv->offset += bsize;
parse->priv->sync_offset = parse->priv->offset;
+ gst_buffer_unref (buffer);
return GST_FLOW_OK;
}
buffer = gst_buffer_make_writable (buffer);
```1.17.1https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/-/issues/208stack overflow when trying to use Display on VideoFormat2019-06-18T12:31:55ZGuillaume Desmottesstack overflow when trying to use Display on VideoFormatLooks like `Display` isn't working with `VideoFormat` See this failing test: https://gitlab.freedesktop.org/gdesmott/gstreamer-rs/commit/8f2531b466c6214f0ac10859ffaab3e8dbb18b97
```
thread 'video_format::tests::test_display' has overflo...Looks like `Display` isn't working with `VideoFormat` See this failing test: https://gitlab.freedesktop.org/gdesmott/gstreamer-rs/commit/8f2531b466c6214f0ac10859ffaab3e8dbb18b97
```
thread 'video_format::tests::test_display' has overflowed its stack
fatal runtime error: stack overflow
```https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/issues/993msdkdec Interlaced2019-06-20T09:54:02ZNastoohmsdkdec InterlacedHi
On 1.16 branch, decoding an interlaced input, with one AU per field - I/P P/P B/B [Top/Bottom] - creates a garbled output. This observation can be reproduced with:
```
gst-launch-1.0 filesrc location=TEST_FILE_LOCATION ! h264parse !...Hi
On 1.16 branch, decoding an interlaced input, with one AU per field - I/P P/P B/B [Top/Bottom] - creates a garbled output. This observation can be reproduced with:
```
gst-launch-1.0 filesrc location=TEST_FILE_LOCATION ! h264parse ! msdkh264dec ! filesink location=OUT.raw
```
, where test file can be found at https://www.dropbox.com/s/em3zkidsmgiyghe/Co-Mo_cnn-source-2m_2016-02-25.h264?dl=0
Note that other type of interlaced content can be decoded, properly.
I've been comparing the plugin with Intel's sample_decode code, and so far have not been able to find any major discrepancy. (Intel's sample code is capable of decoding the above.)
Any thoughts?
Cheers,https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/issues/612rtpjitterbuffer: rtp_jitter_buffer_calculate_pts should not reset in all case...2019-07-03T18:02:19ZThomas Bluemelrtpjitterbuffer: rtp_jitter_buffer_calculate_pts should not reset in all cases (especially on (old) rtx packets)While debugging some issues I noticed some strange behavior that happened occasionally. After attaching with gdb and continuing executing after a few seconds, I noticed that sometimes playback would resume and then shortly after complete...While debugging some issues I noticed some strange behavior that happened occasionally. After attaching with gdb and continuing executing after a few seconds, I noticed that sometimes playback would resume and then shortly after completely be out-of-sync (permanently). I traced the problem to old rtx packets being processed, which erroneously caused it to trigger a resync to this old rtx packet due to "backward timestamps at server, schedule resync".
I fixed the issue by:
1. Add a new argument `gboolean is_rtx` to `rtp_jitter_buffer_calculate_pts`.
2. In `rtp_jitter_buffer_calculate_pts`, if `is_rtx` is `TRUE` for the ["rtp delta too big, reset skew"](https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/blob/master/gst/rtpmanager/rtpjitterbuffer.c#L716) and ["backward timestamps at server, schedule resync"](https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/blob/master/gst/rtpmanager/rtpjitterbuffer.c#L746) cases, then return `GST_CLOCK_TIME_NONE` and do nothing. I believe the other resync cases need to be triggered regardless.
3. Add a check for `!GST_CLOCK_TIME_IS_VALID (pts)` to where `rtp_jitter_buffer_calculate_pts` is called, and in those cases do a `goto finished;` to drop the packet.
This change appears to consistently fix playback after briefly pausing the process with gdb.https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/issues/174Completely garbled frames when playing test file in Totem with vaapi2019-07-07T15:42:12ZAlicia Boya GarcĂaCompletely garbled frames when playing test file in Totem with vaapi00:02.0 VGA compatible controller: Intel Corporation HD Graphics 620 (rev 02)
GStreamer 1.16.0 from Fedora
It works OK in gst-play-1.0 even though it uses vaapisink.
![test-boxes-video](/uploads/9754d0b5651ba1229f6ce1cff529ea9a/test-b...00:02.0 VGA compatible controller: Intel Corporation HD Graphics 620 (rev 02)
GStreamer 1.16.0 from Fedora
It works OK in gst-play-1.0 even though it uses vaapisink.
![test-boxes-video](/uploads/9754d0b5651ba1229f6ce1cff529ea9a/test-boxes-video.mp4)
![Example of garbled frame](/uploads/db185d8eda8f6f8cc4f70ff3fe574cb3/Screenshot_from_2019-06-14_17-16-47.png)https://gitlab.freedesktop.org/gstreamer/gst-libav/-/issues/57API documentation fails to build with gtk-doc 1.302019-09-10T10:05:26ZRoss BurtonAPI documentation fails to build with gtk-doc 1.30I know that master has moved away from gtk-doc but the latest release fails with gtk-doc 1.30:
```
gst-libav-plugins-docs.sgml:38: element include: XInclude error : could not load xml/tree_index.sgml, and no fallback was found
```
It's...I know that master has moved away from gtk-doc but the latest release fails with gtk-doc 1.30:
```
gst-libav-plugins-docs.sgml:38: element include: XInclude error : could not load xml/tree_index.sgml, and no fallback was found
```
It's not wrong: that file wasn't generated. `object_index.sgml` exists, but this doesn't.1.16.1https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/issues/992Webrtcbin SDP negotiation error `gst_sdp_media_get_port: assertion 'media != ...2019-06-20T08:26:55ZAiden JeffreyWebrtcbin SDP negotiation error `gst_sdp_media_get_port: assertion 'media != NULL' failed` (regression from 1.14 -> 1.16)I've implemented a streaming server based on the [gstwebrtc-demos](https://github.com/centricular/gstwebrtc-demos):
https://github.com/aiden-ct/gstwebrtc-demos/tree/aiden/add-streaming-demo
(there's a README.md in the `streamer/` direc...I've implemented a streaming server based on the [gstwebrtc-demos](https://github.com/centricular/gstwebrtc-demos):
https://github.com/aiden-ct/gstwebrtc-demos/tree/aiden/add-streaming-demo
(there's a README.md in the `streamer/` directory with directions on how to run)
On gstreamer 1.14, the system works (albeit there are some bugs I was hoping to alleviate by moving to a newer gst version); I get a successful SDP offer negotiation, and the video renders in the browser:
Runing in Gst 1.14 - OK
=======================
```
$ gdb streaming-app-debug
GNU gdb (Ubuntu 8.1-0ubuntu3) 8.1.0.20180409-git
Copyright (C) 2018 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law. Type "show copying"
and "show warranty" for details.
This GDB was configured as "x86_64-linux-gnu".
Type "show configuration" for configuration details.
For bug reporting instructions, please see:
<http://www.gnu.org/software/gdb/bugs/>.
Find the GDB manual and other documentation resources online at:
<http://www.gnu.org/software/gdb/documentation/>.
For help, type "help".
Type "apropos word" to search for commands related to "word"...
Reading symbols from streaming-app-debug...done.
(gdb) run
Starting program: /home/aiden/Work/mlb/software/gstwebrtc-demos/streamer/gst/streaming-app-debug
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib/x86_64-linux-gnu/libthread_db.so.1".
Connecting to server...
[New Thread 0x7fffea2b8700 (LWP 19593)]
[New Thread 0x7fffe9ab7700 (LWP 19594)]
[New Thread 0x7fffe92b6700 (LWP 19595)]
[New Thread 0x7fffe8ab5700 (LWP 19596)]
[New Thread 0x7fffdbfff700 (LWP 19597)]
[New Thread 0x7fffdb3a3700 (LWP 19598)]
[New Thread 0x7fffda995700 (LWP 19599)]
[New Thread 0x7fffd9b66700 (LWP 19600)]
[New Thread 0x7fffc6c6f700 (LWP 19606)]
> GET HTTP/1.1
> Soup-Debug-Timestamp: 1560521600
> Soup-Debug: SoupSession 1 (0x555555a08220), SoupMessage 1 (0x555555a240c0), SoupSocket 1 (0x55555580c4e0)
> Host: localhost:8443
> Upgrade: websocket
> Connection: Upgrade
> Sec-WebSocket-Key: dIq2lO8W+DlqOmG5Zdidgw==
> Sec-WebSocket-Version: 13
> Accept-Encoding: gzip, deflate
< HTTP/1.1 101 Switching Protocols
< Soup-Debug-Timestamp: 1560521600
< Soup-Debug: SoupMessage 1 (0x555555a240c0)
< Upgrade: websocket
< Connection: Upgrade
< Sec-WebSocket-Accept: QcVkSY6CRJdrFVd+K6xilnAFCwI=
< Date: Fri, 14 Jun 2019 14:13:20 GMT
< Server: Python/3.6 websockets/7.0
Connected to signalling server
Registering with signalling server
Registered with server
[Thread 0x7fffc6c6f700 (LWP 19606) exited]
ERROR: no client session 246, server-state: 7, session_state: 1
[New Thread 0x7fffc6c6f700 (LWP 19608)]
[New Thread 0x7fffc5332700 (LWP 19609)]
(streaming-app-debug:19580): GLib-GObject-WARNING **: 15:13:23.404: ../../../../gobject/gsignal.c:3492: signal name 'create-data-channel' is invalid for instance '0x555555fea130' of type 'GstWebRTCBin'
WARNING: Could not create data channel, is usrsctp available?
(streaming-app-debug:19580): GLib-GObject-WARNING **: 15:13:23.405: ../../../../gobject/gsignal.c:2523: signal 'on-data-channel' is invalid for instance '0x555555fea130' of type 'GstWebRTCBin'
(streaming-app-debug:19580): GLib-GObject-WARNING **: 15:13:23.529: g_object_set_is_valid_property: object class 'GstWebRTCBin' has no property named 'bundle-policy'
Sending offer:
v=0
o=- 2086302116884277653 0 IN IP4 0.0.0.0
s=-
t=0 0
a=ice-options:trickle
[New Thread 0x7fffbbfff700 (LWP 19610)]
[New Thread 0x7fffbaf5b700 (LWP 19611)]
[New Thread 0x7fffba75a700 (LWP 19612)]
[New Thread 0x7fffb9f59700 (LWP 19613)]
Received SDP answer:
v=0
o=- 4074778530172724525 2 IN IP4 127.0.0.1
s=-
t=0 0
a=msid-semantic: WMS
[New Thread 0x7fffb9758700 (LWP 19615)]
Sending offer:
v=0
o=- 2590294066736743967 0 IN IP4 0.0.0.0
s=-
t=0 0
a=ice-options:trickle
m=video 9 UDP/TLS/RTP/SAVPF 96
c=IN IP4 0.0.0.0
a=setup:actpass
a=ice-ufrag:sTKQq/gk4b9IhhU2ax+Vobv5Q07glW5V
a=ice-pwd:Zbknockz+bZdH0FRVn51gstFdp0CDUFT
a=sendrecv
a=rtcp-mux
a=rtcp-rsize
a=rtpmap:96 H264/90000
a=rtcp-fb:96 nack
a=rtcp-fb:96 nack pli
a=framerate:30
a=fmtp:96 packetization-mode=1;sprop-parameter-sets=Z2QADaxWgUHz/wABAAEQAAADABAAAAMDyUA=,aM48MA==
a=mid:video0
a=fingerprint:sha-256 92:72:4B:B0:33:C6:C9:5B:E1:21:06:E2:25:B3:B1:C0:5D:E1:9A:BD:C1:04:D8:42:33:01:46:7B:24:88:76:89
Received SDP answer:
v=0
o=- 4074778530172724525 3 IN IP4 127.0.0.1
s=-
t=0 0
a=msid-semantic: WMS
m=video 9 UDP/TLS/RTP/SAVPF 96
c=IN IP4 0.0.0.0
a=rtcp:9 IN IP4 0.0.0.0
a=ice-ufrag:/OCf
a=ice-pwd:zHFEOH4tLraxcD7pNjgbHw7H
a=ice-options:trickle
a=fingerprint:sha-256 7E:34:CE:4D:F1:D7:68:73:DE:C1:DC:75:0A:BD:CC:5A:E6:1D:20:47:FA:B9:EE:F2:07:AC:F7:0A:5D:27:55:4D
a=setup:active
a=mid:video0
a=recvonly
a=rtcp-mux
a=rtcp-rsize
a=rtpmap:96 H264/90000
a=rtcp-fb:96 nack
a=rtcp-fb:96 nack pli
a=fmtp:96 level-asymmetry-allowed=1;packetization-mode=1;profile-level-id=42e01f
```
However, on 1.16, I get an error:
```
(streaming-app-debug:5339): CRITICAL **: 15:10:40.768: gst_sdp_media_get_port: assertion 'media != NULL' failed
```
The full output is:
Runing in Gst 1.16 - FAILS
==========================
```
$ gdb streaming-app-debug
GNU gdb (Ubuntu 8.3-0ubuntu1) 8.3
Copyright (C) 2019 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.
Type "show copying" and "show warranty" for details.
This GDB was configured as "x86_64-linux-gnu".
Type "show configuration" for configuration details.
For bug reporting instructions, please see:
<http://www.gnu.org/software/gdb/bugs/>.
Find the GDB manual and other documentation resources online at:
<http://www.gnu.org/software/gdb/documentation/>.
For help, type "help".
Type "apropos word" to search for commands related to "word"...
Reading symbols from streaming-app-debug...
(gdb) run
Starting program: /home/aiden/gstwebrtc-demos/streamer/gst/streaming-app-debug
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib/x86_64-linux-gnu/libthread_db.so.1".
Connecting to server...
[New Thread 0x7ffff49fa700 (LWP 5343)]
[New Thread 0x7ffff41f9700 (LWP 5344)]
[New Thread 0x7ffff39f8700 (LWP 5345)]
[New Thread 0x7ffff31f7700 (LWP 5346)]
[New Thread 0x7ffff2864700 (LWP 5347)]
[New Thread 0x7ffff2063700 (LWP 5348)]
[New Thread 0x7ffff1862700 (LWP 5349)]
[New Thread 0x7ffff0bf0700 (LWP 5350)]
[New Thread 0x7fffe3fff700 (LWP 5351)]
[New Thread 0x7fffe3514700 (LWP 5352)]
[New Thread 0x7fffe2c3c700 (LWP 5353)]
> GET HTTP/1.1
> Soup-Debug-Timestamp: 1560521434
> Soup-Debug: SoupSession 1 (0x5555557f3220), SoupMessage 1 (0x55555580f8e0), SoupSocket 1 (0x5555555b9c30)
> Host: localhost:8443
> Upgrade: websocket
> Connection: Upgrade
> Sec-WebSocket-Key: HfGZ6AYQAFA1BueM0YxRSA==
> Sec-WebSocket-Version: 13
> Accept-Encoding: gzip, deflate
< HTTP/1.1 101 Switching Protocols
< Soup-Debug-Timestamp: 1560521434
< Soup-Debug: SoupMessage 1 (0x55555580f8e0)
< Upgrade: websocket
< Connection: Upgrade
< Sec-WebSocket-Accept: fNDyaQKcr/qQM8+xfr0q9pnJjp8=
< Date: Fri, 14 Jun 2019 14:10:34 GMT
< Server: Python/3.7 websockets/7.0
Connected to signalling server
Registering with signalling server
Registered with server
ERROR: no client session 396, server-state: 7, session_state: 1
[New Thread 0x7fffe11eb700 (LWP 5358)]
** (streaming-app-debug:5339): CRITICAL **: 15:10:40.743: gst_webrtc_bin_create_data_channel: assertion 'webrtc->priv->is_closed != TRUE' failed
WARNING: Could not create data channel, is usrsctp available?
[New Thread 0x7fffe09ea700 (LWP 5359)]
Sending offer:
v=0
o=- 232983092207812582 0 IN IP4 0.0.0.0
s=-
t=0 0
a=ice-options:trickle
a=group:BUNDLE
Received SDP answer:
v=0
o=- 2698857652951140917 2 IN IP4 127.0.0.1
s=-
t=0 0
a=group:BUNDLE
a=msid-semantic: WMS
** (streaming-app-debug:5339): CRITICAL **: 15:10:40.768: gst_sdp_media_get_port: assertion 'media != NULL' failed
**
ERROR:gstwebrtcbin.c:1229:_check_if_negotiation_is_needed: assertion failed: (trans->mline < gst_sdp_message_medias_len (webrtc->current_local_description->sdp))
Thread 14 "gst-pc-ops" received signal SIGABRT, Aborted.
[Switching to Thread 0x7fffe09ea700 (LWP 5359)]
__GI_raise (sig=sig@entry=6) at ../sysdeps/unix/sysv/linux/raise.c:50
50 ../sysdeps/unix/sysv/linux/raise.c: No such file or directory.
(gdb) backtrace
#0 0x00007ffff7a5fed7 in __GI_raise (sig=sig@entry=6) at ../sysdeps/unix/sysv/linux/raise.c:50
#1 0x00007ffff7a41535 in __GI_abort () at abort.c:79
#2 0x00007ffff7c22dc3 in () at /lib/x86_64-linux-gnu/libglib-2.0.so.0
#3 0x00007ffff7c7ddba in g_assertion_message_expr () at /lib/x86_64-linux-gnu/libglib-2.0.so.0
#4 0x00007fffe359858c in () at /usr/lib/x86_64-linux-gnu/gstreamer-1.0/libgstwebrtc.so
#5 0x00007fffe359912f in () at /usr/lib/x86_64-linux-gnu/gstreamer-1.0/libgstwebrtc.so
#6 0x00007fffe358edff in () at /usr/lib/x86_64-linux-gnu/gstreamer-1.0/libgstwebrtc.so
#7 0x00007ffff7c559b8 in g_main_context_dispatch () at /lib/x86_64-linux-gnu/libglib-2.0.so.0
#8 0x00007ffff7c55da8 in () at /lib/x86_64-linux-gnu/libglib-2.0.so.0
#9 0x00007ffff7c560a2 in g_main_loop_run () at /lib/x86_64-linux-gnu/libglib-2.0.so.0
#10 0x00007fffe3592c4d in () at /usr/lib/x86_64-linux-gnu/gstreamer-1.0/libgstwebrtc.so
#11 0x00007ffff7c7eb4d in () at /lib/x86_64-linux-gnu/libglib-2.0.so.0
#12 0x00007ffff7386182 in start_thread (arg=<optimised out>) at pthread_create.c:486
#13 0x00007ffff7b39b1f in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95
```
Can anyone give me pointers on what I'm doing wrong?https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/issues/991irtspparse: doesn't handle multiple frames in a single packet2019-08-05T14:39:38ZOleksandrKvlirtspparse: doesn't handle multiple frames in a single packetHi, I'm trying to dump video stream from PCAP dump of RTSP+RTP over TCP.
Here's cmd line:
```
gst-launch-1.0.exe -v filesrc location=cam_full.pcap ! pcapparse src-ip=xxx src-port=554 dst-ip=xxx dst-port=50056 ! irtspparse channel_id=0 !...Hi, I'm trying to dump video stream from PCAP dump of RTSP+RTP over TCP.
Here's cmd line:
```
gst-launch-1.0.exe -v filesrc location=cam_full.pcap ! pcapparse src-ip=xxx src-port=554 dst-ip=xxx dst-port=50056 ! irtspparse channel_id=0 ! application/x-rtp, media=(string)video, clock-rate=(int)90000, encoding-name=(string)H264, payload=(int)99 ! rtph264depay ! h264parse ! mp4mux ! filesink location=a.mp4
```
And it creates just a trash video. I leave only pcapparse ! irtspparse part and found that it handles frames incorrectly.
I'm not familiar with gst code and its internal architecture, but at first glance it looks like [gst_irtsp_parse_handle_frame()](https://github.com/GStreamer/gst-plugins-bad/blob/7b1b3327a0c99bce6a1a657df4d687aec552cf68/gst/pcapparse/gstirtspparse.c#L156) works in wrong way: it assumes that only one and complete iterleaved frame is possible in one TCP packet. In my TCP dump there's 1 complete + part of another frame in the first payload packet. It should parse frames within current TCP packet, and preserve that parsing state between them.
Also I propose to change the policy of frames detection, now it searches for the 0x24[target channel id] pattern, it doesn't use any knowledge about previous frames. I think it should hold parsing state and use the first 0x24 byte as a start of interleaved frames data. If user pass pcap dump without RTSP handshake data, it's up to him to handle that, and maybe edit pcap so that it starts from a valid frame.https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/issues/611rtpjitterbuffer: Timers using ranges (senum + num) won't be found by find_timers2020-03-20T18:35:18ZNicolas Dufresnertpjitterbuffer: Timers using ranges (senum + num) won't be found by find_timersThis is a random issue I have seen. While we do use range in timers, we don't have a proper implementation for that. Right now, we only use ranges when for LOST timer where the timer is already past. Yet, this can have side effect, since...This is a random issue I have seen. While we do use range in timers, we don't have a proper implementation for that. Right now, we only use ranges when for LOST timer where the timer is already past. Yet, this can have side effect, since find_timers() won't match any timers if you get a packet with seqnum + 1. Fortunately, the already_lost() function will catch most of the packets, but there is still some possible issues. So after the LOST timer has been converted into lost even and push in the jitterbuffer, but before it is pushed, the jitterbuffer won't notice the duplicate. Then after we have pushed the lost, the remaining seqnum will be dropped based on "last_popped_seqnum", which is set to the start of the range, hence won't match the conditions for the normal already lost packets. We have other hacks to catch this up, so I suppose no bad packets are pushed, but I'm pretty sure it can break the stats.
cc @hgrhttps://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/issues/987DeckLink: GStreamer v1.16 changes the card's duplex mode on startup, making t...2020-10-08T20:43:09ZTim AutinDeckLink: GStreamer v1.16 changes the card's duplex mode on startup, making the video not workingHello,
I'm using this pipeline to view the video from a DeckLink 8K Pro:
```
gst-launch-1.0 -vvv \
decklinkvideosrc device-number=0 mode=26 ! \
videoconvert ! \
autovideosink
```
It is perfectly working with GStreamer 1.8....Hello,
I'm using this pipeline to view the video from a DeckLink 8K Pro:
```
gst-launch-1.0 -vvv \
decklinkvideosrc device-number=0 mode=26 ! \
videoconvert ! \
autovideosink
```
It is perfectly working with GStreamer 1.8.3.
With the latest version (1.16), on startup GStreamer changes the duplex mode of the card (manually set to "SDI 1 In or Out" in the Blackmagic Desktop Video Setup software) to "SDI 1 to 4 In or Out". This leads to a black frame.
Commenting the content of the gst_decklink_configure_duplex_mode method (in gstdecklink.cpp) solves this problem (but then I have #986).
Thankshttps://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/issues/626gl/wayland: wl_proxy_set_queue should not be called with wl_egl_window struct2019-06-13T14:58:10ZNicolas Huetgl/wayland: wl_proxy_set_queue should not be called with wl_egl_window structThe struct wl_egl_window cannot be used as a wl_proxy and therefore, cannot be passed to wl_proxy_set_queue.
I have attached a patch that removes this call.
[0001-gl-wayland-remove-invalid-wl_proxy_set_queue-call-wi.patch](/uploads/adabf...The struct wl_egl_window cannot be used as a wl_proxy and therefore, cannot be passed to wl_proxy_set_queue.
I have attached a patch that removes this call.
[0001-gl-wayland-remove-invalid-wl_proxy_set_queue-call-wi.patch](/uploads/adabff3951e97c96e3da3fb355636412/0001-gl-wayland-remove-invalid-wl_proxy_set_queue-call-wi.patch)https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/issues/986DeckLink: green stripes with GStreamer 1.16 (or master)2019-08-09T15:57:32ZTim AutinDeckLink: green stripes with GStreamer 1.16 (or master)Hello,
When viewing a video from a DeckLink 8 Pro with GStreamer 1.16 (or the master branch), I'm getting green vertical stripes on the left side of the frame. This side is also much less sharp that the right side, as you can see on thi...Hello,
When viewing a video from a DeckLink 8 Pro with GStreamer 1.16 (or the master branch), I'm getting green vertical stripes on the left side of the frame. This side is also much less sharp that the right side, as you can see on this screenshot:
![gstreamer-1.16-decklink](/uploads/2b1a7a2ac4150042c8d0d1f9f4d4fadf/gstreamer-1.16-decklink.jpg)
I updated the decklink plugin code to use the latest BlackMagic SDK, problem is still there. The GStreamer version packaged with Ubuntu 16.04 LTS (1.8.3) works fine.
Is there anything I can do? I'd like to use GStreamer to display the video in a QML Qt application with the qmlglsink element.
Thanks in advance!https://gitlab.freedesktop.org/gstreamer/gst-devtools/-/issues/44gst-validate-media-check-1.0: infinite loop2023-05-03T17:19:30Zuthlinegst-validate-media-check-1.0: infinite loopGStreamer Core Library version : 1.15.0.1
Trying to use gst-validate-media-check-1.0 the following way:
```gst-validate-media-check-1.0 file:/home/yjyoo/CI/data/jenkins-nmss-pr-pipeline-510/playlist.m3u8 -f```
The problem is that some...GStreamer Core Library version : 1.15.0.1
Trying to use gst-validate-media-check-1.0 the following way:
```gst-validate-media-check-1.0 file:/home/yjyoo/CI/data/jenkins-nmss-pr-pipeline-510/playlist.m3u8 -f```
The problem is that sometimes media-check fall into infinite loop.So, the process runs forever.
The main difference between two attached log files is `gsthlsdemux.c:1597:gst_hls_demux_change_playlist:<hlsdemux1> Client was on 2128000bps, max allowed is 208896bps, switching to bitrate 164000bps` on 2117 line in loop.txt file.
```
0:00:00.066569715 22786 0x1e45680 INFO baseparse gstbaseparse.c:4056:gst_base_parse_set_latency:<h264parse2> min/max latency 0:00:00.033333333, 0:00:00.033333333
0:00:00.066879852 22786 0x1fc2140 INFO adaptivedemux gstadaptivedemux.c:2252:gst_adaptive_demux_stream_update_current_bitrate:0x7f248400e6d0 last fragment bitrate was 5589275570
0:00:00.066889063 22786 0x1fc2140 INFO adaptivedemux gstadaptivedemux.c:2255:gst_adaptive_demux_stream_update_current_bitrate:0x7f248400e6d0 Last 3 fragments average bitrate is 5368970323
0:00:00.066896906 22786 0x1fc2140 INFO hlsdemux gsthlsdemux.c:1597:gst_hls_demux_change_playlist:<hlsdemux1> Client was on 2128000bps, max allowed is 208896bps, switching to bitrate 164000bps
0:00:00.066908471 22786 0x1fc2140 INFO filesrc gstfilesrc.c:261:gst_file_src_set_location: filename : /home/yjyoo/CI/data/jenkins-pr-pipeline-510/100.stream/chunklist.m3u8
0:00:00.066914788 22786 0x1fc2140 INFO filesrc gstfilesrc.c:262:gst_file_src_set_location: uri : file:///home/yjyoo/CI/data/jenkins-pr-pipeline-510/100.stream/chunklist.m3u8
0:00:00.066924489 22786 0x1fc2140 INFO GST_ELEMENT_PADS gstelement.c:916:gst_element_get_static_pad: found pad filesrc2:src
0:00:00.066936984 22786 0x1fc2140 INFO GST_PADS gstpad.c:2374:gst_pad_link_prepare: trying to link filesrc2:src and '':sink
0:00:00.066949872 22786 0x1fc2140 INFO GST_PADS gstpad.c:2582:gst_pad_link_full: linked filesrc2:src and '':sink, successful
```
### infinite loop
![image](/uploads/8cfb6e90fa62829009d968ce17917b04/image.png)
### normal termination
![image](/uploads/306941d327d29046451b485ee23106f5/image.png)
[loop.txt](/uploads/4efdeb885653c6424cb0a1bfbdb7b568/loop.txt)
[OK.txt](/uploads/429a29c8f27161f56506325803db7b5c/OK.txt)