Philippe Normand
bc09d8cc66
dash: Store entire ContentProtection node in protection event data
...
Some manifests use the ContentProtection node to store additional information
such as the license server url. Our MPD parser used to process the
ContentProtection node, extracting Playready PSSH boxes. However for other DRM
systems, only the `value` attribute was passed down to the protection event, so
for example, Widevine data was not parsed at all and "Widevine" was passed to
the event, which is not very useful for decryptors that require a PSSH init
data.
Parsing should now be done by decryptors which will receive the entire
ContentProtection XML node as a string. This gives more "freedom" to the
decryptor which can then detect and parse custom nodes as well.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2400 >
2021-07-15 13:05:54 +00:00
Philippe Normand
108eba3603
wpesrcbin: Use gst_buffer_new_memdup()
...
g_memdup() is deprecated.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2406 >
2021-07-13 16:03:10 +00:00
Víctor Manuel Jáquez Leal
1a32deefa6
vulkansink: Fix element metadata.
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2396 >
2021-07-12 05:08:09 +00:00
Philippe Normand
be7e0600ec
dashdemux: Log protection events on corresponding pad
...
GstDashDemuxStream is not a GstObject, so use its pad as associated object when
emitting log messages.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2389 >
2021-07-08 14:42:12 +00:00
Mathieu Duponchelle
64190e7452
cccombiner: mark field 0 as valid when generating padding CDP
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2383 >
2021-07-08 00:26:05 +00:00
Stéphane Cerveau
a8c2b65880
dashsink: fix crash with no pad name for representation
...
if there is no pad name, the representation id
was NULL, causing a crash when writing the mpd file.
gst-launch-1.0 videotestsrc num-buffers=900 ! video/x-raw, width=800,
height=600, framerate=30/1 ! x264enc ! video/x-h264, profile=high !
dashsink
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2064 >
2021-07-07 13:50:35 +00:00
Stéphane Cerveau
506bd90bf7
dashsink: Add signals for allowing custom playlist/fragment
...
Instead of always going through the file system API we allow the
application to modify the behaviour. For the playlist itself and
fragments, the application can provide a GOutputStream. In addition the
sink notifies the application whenever a fragment can be deleted.
Following the HLS change:
https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/918
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2064 >
2021-07-07 13:50:35 +00:00
Matthew Waters
8fd2c68968
ccconverter: fix framerate caps negotiation from non-cdp to cdp
...
We can only convert from non-cdp to cdp within the confines of valid cdp
framerates. The existing caps negotiation code was allowing any
framerate to convert to a cdp output which is incorrect and would hit an
assertion later.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2372 >
2021-07-02 10:22:31 +03:00
Olivier Crête
e548916d85
webrtc receivebin: Drop serialized queries before receive queue
...
If they're not dropped, they can be blocked in the queue even if it is
leaky in the case where there is a buffer being pushed downstream. Since
in webrtc, it's unlikely that there will be a special allocator to
receive RTP packets, there is almost no downside to just ignoring the
queries.
Also drop queries if they get caught in the pad probe after the queue.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2363 >
2021-06-29 00:42:20 -04:00
Olivier Crête
543fcb93a4
webrtc receivebin: Only set queue to leaky when the pad is blocked
...
When the pad is no longer blocked, remove the leakyness to make sure
everything gets into the jitterbuffer.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2363 >
2021-06-29 00:42:20 -04:00
Olivier Crête
a07e52528c
webrtc receivebin: Don't unblock pad until sender is unblocked
...
As ther OpenSSL session is created when the receiver goes into
playing, we have to wait for the ICE session to be connected before we
can start delivering packets to the DTLS element.
Fixes #1599
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2363 >
2021-06-29 00:42:20 -04:00
Sebastian Dröge
0e559fc2f3
webrtcbin: Sync to the clock per stream and not per bundle
...
By using the clocksync inside the dtlssrtpenc, all streams inside a
bundled are synchronized together. This will cause problems if their
buffers are not already arriving synchronized: clocksync would wait for
a buffer on one stream and then buffers from the other stream(s) with
lower timestamps would all be sent out too late.
Placing the clocksync before the rtpbin and rtpfunnel synchronizes each
stream individually and they will be send out more smoothly as a result.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2355 >
2021-06-28 16:38:33 +00:00
Olivier Crête
ee0124cb36
webrtc: Remove the webrtc-priv.h header from public headers
...
And this time for real, also import it in a couple more places
inside the webrtc element to make it build.
Fixes #1607
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2359 >
2021-06-28 16:06:59 +00:00
Sebastian Dröge
096a7f1ac0
webrtcbin: Set transceiver kind and codec preferences immediately when creating it
...
Otherwise the on-new-transceiver signal will always be emitted with kind
set to UNKNOWN and no codec preferences although both are often known at
this point already.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2360 >
2021-06-25 14:35:43 +03:00
Sebastian Dröge
7ee8f4539e
webrtcbin: Store newly created transceivers when creating an answer also in the seen transceivers list
...
Otherwise it might be used a second time for another media afterwards.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2310 >
2021-06-25 09:45:24 +00:00
Sebastian Dröge
4efdb40f43
webrtcbin: When creating a new transceiver as part of creating the answer also take its codec preferences into account
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2310 >
2021-06-25 09:45:24 +00:00
Sebastian Dröge
b7951fb897
webrtcbin: Fix a couple of caps leaks of the offer caps
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2310 >
2021-06-25 09:45:24 +00:00
Philippe Normand
0f492a39c9
webrtcbin: Stop transceivers update after first SDP error on data channel
...
When invalid SDP is supplied, _update_data_channel_from_sdp_media() sets the
GError, so it is invalid to continue any further SDP processing, we have to exit
early when the first error is raised.
This change is similar to the one applied in
064428cb34
.
See also #1595
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2356 >
2021-06-25 05:12:37 +00:00
Olivier Crête
a931e31141
webrtc lib: Make the datachannel struct private
...
This will prevent any unsafe access.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2241 >
2021-06-21 20:53:09 +00:00
Olivier Crête
a0813c5bd2
webrtc lib: Make the icetransport struct private
...
This will prevent any unsafe access.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2241 >
2021-06-21 20:53:09 +00:00
Olivier Crête
a6593753a5
webrtc lib: Make the rtpsender struct private
...
This will prevent any unsafe access.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2241 >
2021-06-21 20:53:09 +00:00
Olivier Crête
b5f2de3124
webrtc lib: Make the transceiver struct private
...
This will prevent any unsafe access.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2241 >
2021-06-21 20:53:09 +00:00
Mathieu Duponchelle
08323f382c
x265enc: add negative DTS support
...
Use the same set_min_pts approach as x264enc.
Fixes: https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/issues/304
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2340 >
2021-06-21 10:31:21 +00:00
Stéphane Cerveau
f30e74bb20
faad: fix typo in element documentation
...
seealso is now see_also
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2323 >
2021-06-21 07:35:26 +00:00
Randy Li (ayaka)
0d746d1022
waylandsink: prevent frame callback being released twice
...
For those using context from the application which
would be the embedded video case, if the frame callback
is entering at the same time as window is finalizing,
a wayland proxy object would be destroyed twice, leading
the refcout less than zero in the second time, it can
throw an abort() in wayland.
For those top window case, which as a directly connection
to the compositor, they can stop the message queue then
the frame callback won't happen at the same time as the
window is finalizing. It doesn't think it would bother
them about this.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1883 >
2021-06-15 16:25:17 -04:00
Stéphane Cerveau
a71ec17cf0
jpeg2000parse, openjpeg: add support for YCrCb 4:1:1 sampling
...
Add YCrCb 4:1:1 support in openjpeg elements
and fix in jpeg2000parse the YCrCb 4:1:0 support
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2321 >
2021-06-14 11:05:45 +02:00
Thibault Saunier
c7684b48d0
wpe: Rename undeserializable_type
to not_deserializable_type
...
Making it more readable.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2273 >
2021-06-08 03:15:05 +00:00
Thibault Saunier
da150c18bb
wpe: Make forwarded messages layout more like GstBinForwaded messages
...
Making it look more like how we do this kind of things in other places.
See: https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2252#note_927653
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2273 >
2021-06-08 03:15:05 +00:00
Thibault Saunier
f29e75d1da
wpe: Make wpesrc!video pad an always pad
...
There should always be a `video` pad no matter what.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2273 >
2021-06-08 03:15:05 +00:00
Thibault Saunier
870d9b8bd6
wpe: Remove unused env var
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2273 >
2021-06-08 03:15:05 +00:00
Thibault Saunier
81a0125a97
wpe: Fix atomic usage
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2273 >
2021-06-08 03:15:05 +00:00
Thibault Saunier
3ffd78787d
wpe: Add a note able requiring tracing subsystem for message forwarding
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2273 >
2021-06-08 03:15:05 +00:00
Thibault Saunier
c38e0cfdb0
wpe: Fix check on whether MEMFD_CREATE is available
...
The ordering of the ifdef was wrong
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2273 >
2021-06-08 03:15:05 +00:00
Thibault Saunier
d93131bfee
wpe: Plug a leak
...
We were freeing after returning
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2273 >
2021-06-08 03:15:05 +00:00
Thibault Saunier
ca1812f38c
Revert "wpe: Properly respect LIBGL_ALWAYS_SOFTWARE"
...
This causes issues I didn't see:
https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2252#note_927633
Let's just tell people to use capsfilter to force software rendering in
`wpesrc` for now.
The intent was to allow forcing it easily in playbin2 for the CI, but
we will do it some other way and see when time comes.
This reverts commit 9415106b02
.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2273 >
2021-06-08 03:15:05 +00:00
Nicolas Dufresne
56b56e43f3
waylandsink: Fix for missing initial configure
...
We were doing our initial "empty" commit on the subsurface instead of the
toplevel surface. As an incidence, we should not have received a configure
event ever, not just on mutter. This fixes the following warning when using
mutter compositor (aka gnome-shell):
waylandsink wlwindow.c:304:gst_wl_window_new_toplevel: The compositor did not send configure event.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2299 >
2021-06-02 14:17:13 -04:00
Philippe Normand
064428cb34
webrtcbin: Stop transceivers update after first SDP error
...
When invalid SDP is supplied, _update_transceiver_from_sdp_media() sets the
GError, so it is invalid to continue any further SDP processing, we have to exit
early when the first error is raised.
Fixes #1595
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2254 >
2021-05-30 00:16:10 +00:00
Roman Sivriver
0b551382c4
hlssink2: Initialize debug category to prevent an assert with fatal-warnings
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2288 >
2021-05-28 17:14:43 -04:00
Tim-Philipp Müller
8e04651b8b
Use gst_buffer_new_memdup()
...
Update for function rename in core.
https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/827
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2281 >
2021-05-24 19:05:27 +01:00
Philippe Normand
a0b37e9d1a
wpe: Bump wpebackend-fdo version requirement to 1.8
...
Debian bullseye has this version already, and this allows us to get rid of many
ifdefs. The mouse scroll handling is actually functional now as well.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2278 >
2021-05-23 17:18:20 +00:00
Tim-Philipp Müller
0151276d7f
Use new gst_buffer_new_copy()
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2279 >
2021-05-23 17:20:16 +01:00
Thibault Saunier
818db8f0b3
wpe: Bump WPE dependency to 2.28
...
The new audio feature depends on WPE 2.28 so we should just bump our
requirement to that.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2264 >
2021-05-19 18:50:29 -04:00
Thibault Saunier
c98fe5b7f9
wpe: Update doc cache
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2252 >
2021-05-19 13:41:16 +00:00
Thibault Saunier
9415106b02
wpe: Properly respect LIBGL_ALWAYS_SOFTWARE
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2252 >
2021-05-19 13:41:15 +00:00
Thibault Saunier
4dbfae0105
wpe: Relay messages from WPE internal pipelines
...
It is based on a tracer as it allows us to very easily get
every message that are posted on any bus inside the process.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2252 >
2021-05-19 13:41:15 +00:00
Thibault Saunier
a92d4373ad
wpe: Base wpe audio implementation on a web extension
...
This makes the implementation simpler and enable us to map
webviews and audio stream much more easily
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2252 >
2021-05-19 13:41:15 +00:00
Philippe Normand
81ced7932f
wpe: Enable WebAudio
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2252 >
2021-05-19 13:41:15 +00:00
Philippe Normand
f4bc5c6c65
wpe: Implement audio support
...
The wpesrc bin now exposes "sometimes" audio src pads, one for every PCM audio
stream created by WPEWebKit.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2252 >
2021-05-19 13:41:15 +00:00
Thibault Saunier
cb4f6c877e
wpe: Move wpesrc to wpevideosrc and add a wrapper bin wpesrc
...
Currently the bin contains a single element but we are going
to implement audio support and expose extra pads for audio
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2252 >
2021-05-19 13:41:15 +00:00
Doug Nazar
be1c154f33
sctp: Ensure pad is still a child of element before removal
...
During pipeline shutdown there are several competing paths to remove
pads. Avoids tests failing due to:
Unexpected critical/warning: Padname '':sink_1 does not belong to element sctpenc1 when removing
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2256 >
2021-05-19 05:49:48 +00:00