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