Sangchul Lee
c88a68c411
webrtcbin: Avoid access of freed memory
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2258 >
2022-04-21 10:34:31 +00:00
Sangchul Lee
1ba785b070
webrtcbin: Update documentation of 'get-stats' action signal
...
Some stats fields are updated according to the current implementation.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2034 >
2022-03-26 02:13:08 +00:00
Nirbheek Chauhan
3f1f1700bc
webrtcbin: Warn when offer didn't intersect with transceiver caps
...
We were silently falling back to creating a recvonly offer if the caps
didn't intersect.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1995 >
2022-03-20 22:38:15 +00:00
Sangchul Lee
618bbf80dc
webrtcbin: Check data channel transport for notifying 'ice-gathering-state'
...
Previously, it did not care about data channel's. It is fixed by adding
some conditions.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1981 >
2022-03-18 11:31:37 +00:00
Sangchul Lee
12f7bace76
webrtcice: Fix memory leaks in gst_webrtc_ice_add_candidate()
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1704 >
2022-02-15 06:58:31 +00:00
Philippe Normand
4254920b72
webrtc: Expose RTCError enum
...
The error codes not complying with the spec are now notified with the
GST_WEBRTC_ERROR_INTERNAL_FAILURE code.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1485 >
2022-01-29 14:42:22 +00:00
Jakub Adam
bea8cba5e6
webrtcbin: Chain up to parent constructed method
...
Failing to do so makes GstWebRTCBin invisible to the leaks tracer.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1587 >
2022-01-27 17:43:18 +00:00
Sangchul Lee
5cedf017f5
webrtc: Fix memory leaks
...
Redundant condition and unreachable codes are also removed.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1544 >
2022-01-22 11:21:18 +00:00
Dave Piché
574cbbf0b5
webrtc: fix log error message in function gst_webrtc_bin_set_local_description
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1511 >
2022-01-13 15:11:35 +00:00
Philippe Normand
f0e6959bba
webrtcdatachannel: Notify buffered-amount property updates
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1484 >
2022-01-02 10:18:35 +00:00
Philippe Normand
43856a0735
webrtcstats: Fix null pointer dereference
...
If there is no jitterbuffer stats we should not attempt to store them in the
global stats structure.
Also add a g_return_if_fail in _gst_structure_take_structure() about this
because it is a programmer error to pass an invalid pointer address there.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1479 >
2021-12-29 15:55:57 +00:00
Olivier Crête
818a185b5d
webrtcstats: Fall back to last packet ssrc if caps dont provide it
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1448 >
2021-12-23 23:48:17 -05:00
Olivier Crête
4e32d6bf3e
webrtcstats: Use our own caps instead of the sticky event
...
The sticky event seems to get cleared sometimes.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1448 >
2021-12-23 23:48:17 -05:00
Olivier Crête
29befed685
webrtcbin: Store the ssrc of the last received packet
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1448 >
2021-12-23 23:48:17 -05:00
Olivier Crête
fc7e7f5ccc
webrtc stats: Remove duplicate structure get
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1448 >
2021-12-23 23:48:17 -05:00
Olivier Crête
f35435f1f7
webrtc stats: Add more details about codecs into the stats
...
This makes the output a little closer to what the upstream stats are.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1448 >
2021-12-23 23:48:17 -05:00
Mathieu Duponchelle
abd61732bf
webrtcbin: bind transceiver's fec-percentage to encoder percentage
...
Allows for dynamic control of the applied FEC overhead
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1429 >
2021-12-14 17:34:53 +00:00
Mathieu Duponchelle
06893b8b5e
webrtcbin: fix ulpfec / red for the BUNDLE case
...
* Add fec / red encoders as direct children of webrtcbin, instead
of providing them to rtpbin through the request-fec-encoder signal.
That is because they need to be placed before the rtpfunnel, which
is placed upstream of rtpbin.
* Update configuration of red decoders to set a list of RED payloads
on them, instead of setting the pt property.
That is because there may be one RED pt per media in the same session.
* Connect to request-fec-decoder-full instead of request-fec-decoder,
in order to instantiate FEC decoders according to the payload type
of the stream.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1429 >
2021-12-14 17:34:53 +00:00
Mathieu Duponchelle
e90859f4d8
webrtcbin: deduplicate extmaps
...
When an extmap is defined twice for the same ID, firefox complains and
errors out (chrome is smart enough to accept strict duplicates).
To work around this, we deduplicate extmap attributes, and also error
out when a different extmap is defined for the same ID.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1383 >
2021-11-25 18:38:22 +00:00
Sebastian Dröge
f9a97efbe1
webrtcbin: Clear errors from finding codec preferences before the next iteration
...
The media is just skipped and the error is not propagated to the caller,
so keeping it around here would cause assertions a bit later when trying
to set a new error over the old one.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1291 >
2021-11-04 10:51:15 +00:00
Sebastian Dröge
30153f1591
webrtcbin: Move addition of attributes to the caps after making sure they're not empty or any
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1291 >
2021-11-04 10:51:15 +00:00
Sebastian Dröge
d628ccf0e5
webrtcbin: Don't require fixed caps when querying caps for a transceiver pad to match it with a media
...
Upstream caps might for example be
application/x-rtp,media=audio,encoding-name={OPUS, X-GST-OPUS-DRAFT-SPITTKA-00, multiopus}
and while that is not fixed caps it is enough to match it with a media.
Only caps structures that have the correct structure name and that have
the media and encoding-name field are preserved, but if both are present
then these caps are used as "codec preferences".
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1291 >
2021-11-04 10:51:15 +00:00
Mathieu Duponchelle
303c8025c6
webrtcbin: fix check_negotiation computing on caps event
...
It seems logical that check_negotiation be true if received_caps
is *not* equal to the new caps.
Also clean up handling of transceivers' ssrc events, as this
patch triggered a leaky code path.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1233 >
2021-10-28 19:05:59 +00:00
Mathieu Duponchelle
be0b5c54fd
webrtcbin: connect input stream when receiving caps
...
.. if a current direction has already been set
When `webrtcbin` has created an offer based on codec_preferences,
it might not have received caps on its sinkpads by the time a
remote description is set, in which case we want to connect the
input stream upon actual reception of the caps instead.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1233 >
2021-10-28 19:05:59 +00:00
Mathieu Duponchelle
a9506f20d3
webrtcbin: consider pads with trans->codec_preferences ready
...
.. when determining whether we can emit on-negotiation-needed
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1233 >
2021-10-28 19:05:59 +00:00
Rob Agar
641b319fd6
webrtcbin: Also check data channel transport when collating connection state
...
https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/838
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1224 >
2021-10-28 05:05:44 +00:00
Rob Agar
66a24023c0
webrtcbin: fix prevention of webrtcbin deletion due to ref held by probe callback
...
https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/810
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1150 >
2021-10-18 10:42:12 +01:00
Sebastian Dröge
3011fa7ddd
webrtcbin: Use the same promise reply structure name everywhere
...
This was an inconsistent mix of different names in the past. The name
has no meaning at all so let's set all to "application/x-gst-promise".
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1099 >
2021-10-09 11:45:46 +03:00
Sebastian Dröge
6d9ca9c679
webrtcbin: Always set SINK/SRC flags
...
webrtcbin can act as a sink/source depending on the SDP later. Without
setting this here already, surrounding bins might not notice this and
the pipeline configuration might become inconsistent, e.g. with regards
to latency.
See https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/737
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/900 >
2021-09-25 16:33:13 +03:00
Thibault Saunier
019971a3c7
Move files from gst-plugins-bad into the "subprojects/gst-plugins-bad/" subdir
2021-09-24 16:14:36 -03:00