Commit graph

112906 commits

Author SHA1 Message Date
Nicolas Dufresne
d9a0313aa0 vp9enc: Add color range support
When setting the colorspace, we now clear the range to reduced range,
the default, and then we also set the range so the VP9 encoder encodes
the right information in the bitstream.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/975>
2021-05-06 16:00:47 -04:00
Nicolas Dufresne
91da1c3c08 vp9enc: Move colorspace configuration in VP9 enc
This is not supported by VP8 and was causing a warning.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/975>
2021-05-06 16:00:47 -04:00
Nikolay Sivov
41ee497b90 gstutils: Fix typo in the comment.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/813>
2021-05-06 22:20:57 +03:00
Nicolas Dufresne
3e97236844 vpxdenc: Add a GstVideoCodecState to configure_encoder virtual
This will be needed to configure the VP9 specific colorimetry, which is
currently configured for VP8 casing warning.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/975>
2021-05-06 15:07:01 -04:00
Matthew Waters
a78c907597 webrtc: only add nack pli by default if kind is video
Sending/receiving PLI's (Picture Loss Indication) for non-video doesn't
really make sense.  This also matches what the browsers do.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2220>
2021-05-06 12:19:51 +00:00
Matthew Waters
1470660976 webrtc: move webrtc_kind_from_caps() to utils
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2220>
2021-05-06 12:19:51 +00:00
Jan Alexander Steffens (heftig)
4ad1c8b7c9 multiqueue: Ensure peer pad exists when iterating internal links
The pads can be NULL when we're racing with pad removal, e.g. when the
pads get removed between `gst_pad_iterate_internal_links` acquiring the
parent element and `gst_multi_queue_iterate_internal_links` locking the
multiqueue.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/810>
2021-05-06 13:08:26 +02:00
Seungha Yang
90edef103c wasapi2: Propagate HRESULT error code everywhere
... instead of boolean value which cannot notify the reason
of the operation failure.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2219>
2021-05-06 08:40:37 +00:00
Sebastian Dröge
da0e6b0afc hlssink(2): Don't write deprecated EXT-X-ALLOW-CACHE metadata
It's deprecated since quite a few versions and various validators
complain about it. Instead of the in-manifest metadata this should be
handled by the normal HTTP caching headers.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2221>
2021-05-06 10:46:15 +03:00
Chris White
b48e32ab00 gst_child_proxy_get_property: accept G_VALUE_INIT
gst_child_proxy_get_property() can now take a value initialized to
G_VALUE_INIT.  This parallels the corresponding change in
g_object_get_property(), GLib 2.60+.

https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/724#note_738531

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/809>
2021-05-06 10:35:51 +03:00
Bastien Nocera
04fdfc4bf1 gtk: Remove coordinates double-translation
Remove our own translation in the mouse event capture code, as that
translation will be done through the navigation interface.

Tested by resizing the window created by:
gst-launch-1.0 -v videotestsrc ! navigationtest ! glupload ! glcolorconvert ! tee name=t  ! gtkglsink
and checking that the cursor follows the mouse as expected.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/974>
2021-05-06 01:18:18 +00:00
Bastien Nocera
9cd6d02cff gtk: Translate navigation events coordinates
If the application passed down some pointer coordinates, translate those
from display coordinates to stream coordinates, so things work as
expected even if the video is resized.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/974>
2021-05-06 01:18:18 +00:00
Bastien Nocera
604278a194 gtk: Export _display_size_to_stream_size()
Export _display_size_to_stream_size() so that GstNavigation implementors
can translate from display coordinates to stream coordinates before
pushing the events upstream to the DVD source, for example.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/974>
2021-05-06 01:18:18 +00:00
David Fernandez
056f8ce6ca matroska-mux: Change accepted caps width and height from [16, MAX] to [1, MAX]
There are cases where the video size might be less than 16x16.
This change allows the Matroska muxer to accept this cases.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/539>
2021-05-05 16:31:33 -04:00
David Fernandez
828d1d0d18 x264enc: Change accepted caps width and height from [16, MAX] to [1, MAX]
There are cases where the video size might be less than 16x16.
This change allows the x264 encoder to accept this cases.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-ugly/-/merge_requests/44>
2021-05-05 16:29:13 -04:00
Nicolas Dufresne
ac54f073d8 video: Sort includes in video.h
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/merge_requests/1128>
2021-05-05 16:20:37 -04:00
Seungha Yang
81ac09cfda decklinkvideosrc: Fix crash when mode is not specified
In that case, we will get "VideoInputFrameArrived" callback
without "VideoInputFormatChanged"

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2218>
2021-05-06 01:37:33 +09:00
Sebastian Dröge
5a65f5f3b7 multihandlesink: Use the monotonic clock for detecting timeouts and connection durations
Otherwise real-time clock changes can wrongly trigger timeouts, or not
cause timeouts to happen in time.

Unfortunately real-time clock times still have to be kept track inside
the elements for the statistics. Switching those over to the monotonic
clock would cause behaviour changes from the application point of view.

The statistics are extended with fields with monotonic times though.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/merge_requests/1137>
2021-05-05 16:12:38 +00:00
Sebastian Dröge
26b8a96b84 appsrc: Add test for testing the max-* and leaky-type properties
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/merge_requests/1133>
2021-05-05 15:13:33 +00:00
Sebastian Dröge
02530e9d3e appsrc: Implement a leaky property similar to the queue element
This allows dropping the newest or oldest buffer when the internal queue
is full instead of blocking or continuing to grow.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/merge_requests/1133>
2021-05-05 15:13:33 +00:00
Sebastian Dröge
d987ec21f2 appsrc: Add new max-buffers / max-time / current-level-buffers / current-level-time properties
These work the same way as the corresponding properties on queue and
allow to control the internal buffer size of the appsrc in a more
flexible way.

Unlike in queue the max-buffers and max-time properties are 0 (i.e.
disabled) by default for backwards compatibility reasons.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/merge_requests/1133>
2021-05-05 15:13:33 +00:00
Doug Nazar
6c9d6fd986 rtsp-media: fix leak when adding converter
Free the previous caps before reusing the variable for the converter caps.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-rtsp-server/-/merge_requests/204>
2021-05-05 10:02:48 +00:00
Doug Nazar
4c6e57ad33 rtsp-client: fix leak adding headers
gst_rtsp_message_add_header() makes a copy of the header, instead
of taking ownership.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-rtsp-server/-/merge_requests/204>
2021-05-05 10:02:48 +00:00
Thibault Saunier
4b0e54b1fb track-element: Fix and cleanup annotations
Making the class subclass able by bindings

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-editing-services/-/merge_requests/231>
2021-05-05 10:02:44 +00:00
Thibault Saunier
906654de87 ges: Move GESVideo/AudioSource::create_source to GESSource
Deprecating the old variants which were not introspectable
and cleaning a bit the API.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-editing-services/-/merge_requests/231>
2021-05-05 10:02:44 +00:00
Nirbheek Chauhan
4c4f031207 h265parse: don't invalidate the last PPS when parsing a new SPS
This is a port of https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2019
to h265parse.

When a SPS is received then any previous PPS remains valid. So don't clear
the PPS flag from the parser state.

This is important because there are encoders that don't generated a PPS after
every SPS.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2217>
2021-05-05 10:02:28 +00:00
Stéphane Cerveau
1fd8c1501a validate: add config file support
Each test can now use a config file for
the given media file used to test.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-devtools/-/merge_requests/243>
2021-05-05 10:58:10 +02:00
François Laignel
ca7a964fb1 Use gst_element_request_pad_simple...
Instead of the deprecated gst_element_get_request_pad.
2021-05-05 11:55:54 +03:00
François Laignel
39f0905a7e Use gst_element_request_pad_simple
Instead of the deprecated gst_element_get_request_pad.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/958>
2021-05-05 06:17:20 +00:00
François Laignel
ad3d7d34cc Use gst_element_request_pad_simple...
Instead of the deprecated gst_element_get_request_pad.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2180>
2021-05-05 06:17:14 +00:00
François Laignel
875e01e90a Use gst_element_request_pad_simple...
Instead of the deprecated gst_element_get_request_pad.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-examples/-/merge_requests/35>
2021-05-05 06:17:06 +00:00
François Laignel
5f5b812844 Use gst_element_request_pad_simple...
Instead of the deprecated gst_element_get_request_pad.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-rtsp-server/-/merge_requests/195>
2021-05-05 06:17:00 +00:00
François Laignel
ec5b267249 Use gst_element_request_pad_simple...
Instead of the deprecated gst_element_get_request_pad.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-editing-services/-/merge_requests/240>
2021-05-05 06:16:53 +00:00
François Laignel
2080979d10 Use gst_element_request_pad_simple...
Instead of the deprecated gst_element_get_request_pad.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/425>
2021-05-05 06:16:44 +00:00
Stéphane Cerveau
eb96f50c45 mxf: check EOS cond with any segment's flag
The previous test was preventing the pad to be in EOS
when the segment position was greater than segment stop.
It ended up consuming all the data before getting in EOS.

Regarding GST_SEEK_FLAG_SEGMENT it seems to be
correctly handled later in the method.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2173>
2021-05-04 19:11:27 +00:00
Stéphane Cerveau
c32f455b7b mxfdemux: fix keyframe detection in index
An index entry should be considered as a keyframe
if the flags allow a random access only.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2173>
2021-05-04 19:11:27 +00:00
Antonio Rojas
51e96fd2c3 Fix build with OpenEXR 3
Add a header that is no longer transitively included

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2195>
2021-05-04 14:58:49 +00:00
François Laignel
37e70829dc Use gst_element_request_pad_simple...
Instead of the deprecated gst_element_get_request_pad.
2021-05-04 16:37:16 +02:00
François Laignel
1a8dfdfc54 Introduce gst_element_request_pad_simple
The name `gst_element_get_request_pad()` is confusing to people
learning GStreamer. `gst_element_request_pad_simple()` aims at
providing the exact same functionality, while making it more
explicit it is a simplified `gst_element_request_pad()`.

`gst_element_request_pad_simple()` is consistent with other
functions such as `gst_element_seek_simple`.

This commit deprecates `gst_element_get_request_pad()` so that a
compilation warning is emitted when used and incite developers
to use the more explicit `gst_element_request_pad_simple()`.

See also https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/-/merge_requests/743#note_886586

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/802>
2021-05-04 15:49:32 +02:00
Stéphane Cerveau
cb74a24fbd gstreamer-full: error about introspection
The introspection feature is not supported yet
in static build.
Needs
https://gitlab.freedesktop.org/gstreamer/gst-build/-/merge_requests/167/diffs

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-build/-/merge_requests/242>
2021-05-04 11:41:46 +02:00
Matthew Waters
a77c316590 rtp/hdrext: correct gst_rtp_get_header_extension_list() docs
The return value is a list of GstElementFactory's that when
gst_element_factory_create()ed will create a GstRTPHeaderExtension.

Fixes https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/issues/897

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/merge_requests/1136>
2021-05-04 15:40:30 +10:00
Sebastian Dröge
da9a3da8aa appsrc: Don't leak buffer list while wrongly unreffing buffer on EOS/flushing
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/merge_requests/1134>
2021-05-03 05:42:07 +00:00
Sebastian Dröge
fc7d65b107 app: Add gstappsrc.h to the enum headers in meson.build
It's already indirectly included but let's better be explicit here.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/merge_requests/1134>
2021-05-03 05:42:07 +00:00
Olivier Crête
e43985d8bb devenv: Add webrtc testsuite to paths
This makes it a little easier to run it.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-build/-/merge_requests/243>
2021-04-30 17:37:31 -04:00
Olivier Crête
c89dccbf4e validate README: Document paths for gst-examples
As the webrtc demos have now been merged, change the paths for
easier copy-pasting.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-examples/-/merge_requests/38>
2021-04-30 17:20:18 -04:00
Daniel Almeida
4900e3583a codecs: gstvp9statefulparser: do not carry over segmentation flags
Do not carry over segmentation flags from previous frames. The spec
says in 7.2.10 that the feature data carry over from previous frames
if not updated, but the flags do not.

Consider what would happen if a flag B is to depend on a flag A, and
B carries over as set from another frame. Further consider that A is
now not set in this particular frame. This leads to the invalid state
in which flag B is set but flag A isn't.

This might cause the bitstream to be rejected by accelerators down
the line.

Fix it.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2203>
2021-04-30 16:49:28 +00:00
Stéphane Cerveau
a7114f4b88 gst-play: add --start-position command line argument
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/merge_requests/1126>
2021-04-30 15:54:24 +00:00
Nirbheek Chauhan
b14347041a videotestsrc: Fix a leak when computing alpha caps
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/merge_requests/1131>
2021-04-30 20:46:08 +05:30
Stéphane Cerveau
89050a8222 ci_template: gstreamer-full: enable auto features
Enable auto features for gstreamer-full but
disable "introspection" for now.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-ci/-/merge_requests/402>
2021-04-30 12:01:40 +02:00
Seungha Yang
1039d70d18 d3d11desktopdup: Don't ignore error DXGI_ERROR_UNSUPPORTED
Although Microsoft's DXGIDesktopDuplication example is considering
the DXGI_ERROR_UNSUPPORTED as an expected error
(See https://github.com/microsoft/Windows-classic-samples/tree/master/Samples/DXGIDesktopDuplication)
it might not be recoverable error if application is
run against a discrete GPU
(See https://docs.microsoft.com/en-US/troubleshoot/windows-client/shell-experience/error-when-dda-capable-app-is-against-gpu)

Do early error out if the error happens while opening device,
instead of retrying it forever.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2208>
2021-04-30 05:44:39 +00:00