Commit graph

112816 commits

Author SHA1 Message Date
Olivier Crête
941c0e81dd gtksink: Return reference to GtkWidget in the acquire function
This should ensure thread safety.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1088>
2021-10-12 20:27:34 +00:00
Olivier Crête
103ceb853a gtkglsink: Add rotate-method property
This mostly just takes code out of glimagesink and applies it here.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1088>
2021-10-12 20:27:34 +00:00
Olivier Crête
fdd7f9be23 glutils: Export affine transformation functions for gtkglsink
Also remove duplicated copy of those functions from the gl plugin

With contributions from Bastien Nocera

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1088>
2021-10-12 20:27:34 +00:00
Olivier Crête
9b75628101 glvideoflip: Replace GstVideoFlipMethod -> GstVideoOrientationMethod
It's the same enum, just drop the renamed copy. But keep the registered
GEnum as it is part of the API.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1088>
2021-10-12 20:27:34 +00:00
Olivier Crête
b4ca5f386a glvideoflip: Use the API to parse the image orientation
This will reduce the code duplication a little.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1088>
2021-10-12 20:27:34 +00:00
Olivier Crête
d191e27aca glimagesink: Use the API to parse the image orientation
This will reduce the code duplication a little.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1088>
2021-10-12 20:27:34 +00:00
Olivier Crête
c898ffceeb video: Add API to parse the image orientation from a GstTagList
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1088>
2021-10-12 20:27:34 +00:00
Olivier Crête
a51509c6e7 glimagesink: Replace GstGLRotateMethod with GstVideoOrientationMethod
It's the same enum, just drop the renamed copy. But keep the registered
GEnum as it is part of the API.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1088>
2021-10-12 20:27:34 +00:00
Olivier Crête
ad495089cb video: Put nicer documentation in GstVideoOrientationMethod
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1088>
2021-10-12 20:27:34 +00:00
Sebastian Dröge
2d4491e195 splitmuxsink: Don't assert on the input side if no GOP is available when shutting down
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1119>
2021-10-12 19:34:16 +00:00
Benjamin Gaignard
285be1ad32 move-script: fix type in dateutil package name
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1080>
2021-10-12 18:23:38 +00:00
Thibault Saunier
4eb355ea13 tests: Mark check.gstreamer.gst_gstbin.test_watch_for_state_change flaky
See https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/778

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1113>
2021-10-12 16:59:16 +00:00
Thibault Saunier
673c6c59d7 ges:tests: Mark check.gst-plugins-base.validate.giosrc.read-growing-file as flaky
See https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/776

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1113>
2021-10-12 16:59:16 +00:00
Thibault Saunier
c10aaa07b0 ges:tests: Mark ges 'check_edit_in_frames_with_framerate_mistmatch as flaky
See https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/775

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1113>
2021-10-12 16:59:16 +00:00
Thibault Saunier
2d4ba75732 tests:webrtcbin: Make known flaky webrtcbin as such
See https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/773

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1113>
2021-10-12 16:59:16 +00:00
Thibault Saunier
7dfaac92fa validate:launcher: Do not dump on failure test we will retry
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1113>
2021-10-12 16:59:16 +00:00
Thibault Saunier
ee67bd8e8b gst-env: Ignore SIGINT when running on the CI server
We get spurious sigint and this is just a small temporary workaround

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1113>
2021-10-12 16:59:16 +00:00
Thibault Saunier
d8e8d98ff9 tests: aggregator: Take TIMEOUT_FACTOR env var into account
This env var is set in the CI so we grow the timeout as required
(when running in valgrind for example).

Trying to avoid hitting wrong timeout in valgrind job like in:
https://gitlab.freedesktop.org/tpm/gstreamer/-/jobs/14009456

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1113>
2021-10-12 16:59:16 +00:00
Thibault Saunier
4ad22b05a1 ci: Split base and core valgrind on different runners
Those are very slow compared to other jobs and it should mitigate the problem

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1113>
2021-10-12 16:59:16 +00:00
Thibault Saunier
47afe6db28 tests: Blacklist tests that are currently producing many CI failures
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1113>
2021-10-12 16:59:16 +00:00
Thibault Saunier
23dbfdf70d validate:launcher: Allow more flexible handling of flaky tests
And retry twice flaky tests

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1113>
2021-10-12 16:59:16 +00:00
Thibault Saunier
ff8d8bbc97 validate:launcher: Fix progress reporting with --n-runs
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1113>
2021-10-12 16:59:16 +00:00
Thibault Saunier
6860240bee validate:tests: Mark rtsp tests as generally flaky
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1113>
2021-10-12 16:59:16 +00:00
Thibault Saunier
c525273185 ges:tests: Mark nested timelines as generally flaky
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1113>
2021-10-12 16:59:16 +00:00
Thibault Saunier
4762b138b6 validate:launcher: Support retry on failure when using --n-runs
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1113>
2021-10-12 16:59:16 +00:00
Thibault Saunier
f2efd3b133 validate:launcher: Fix potential invalid index access
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1113>
2021-10-12 16:59:16 +00:00
Thibault Saunier
b084abad79 validate:launcher: Fix adding logs to xunit
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1113>
2021-10-12 16:59:16 +00:00
Tim-Philipp Müller
078f7874fd gst-play: pick up minus and plus also from navigation events
Makes it easier to test playback rate changes with the video
window being in focus.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/928>
2021-10-12 11:19:22 +00:00
Nirbheek Chauhan
e24e366952 libsoup: Bump to 2.74 to fix gssapi build failure on macOS
See: https://gitlab.gnome.org/GNOME/libsoup/-/merge_requests/255

We also need to disable sysprof by default because it only builds on
native Linux. If someone really wants it, they can enable the option
on the command-line by passing -Dlibsoup:sysprof=enabled

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1114>
2021-10-12 12:22:31 +05:30
Mengkejiergeli Ba
40d559adcf msdkenc: fix vp9enc initialization fail
MediaSDK does not support to handle extbuff with id
MFX_EXTBUFF_VIDEO_SIGNAL_INFO for mjpegenc and vp9enc. Hence, need to
exclude mjpeg and vp9 when passing color properties to MediaSDK during
msdkenc initialization.

Fix issue: https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/764

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1101>
2021-10-12 03:45:41 +00:00
Seungha Yang
1bf237e767 examples: d3d11: Add a desktop capture example
... with d3d11 desktop capture device provider

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1103>
2021-10-11 15:21:26 +00:00
Seungha Yang
4b85704b88 d3d11: Add device provider for d3d11desktopdupsrc
... and add support for multi-GPU/multi-monitor

By using newly added "monitor-handle" property, user can specify a
monitor to be captured via HMONITOR handle.

Fixes: https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/issues/1673
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1103>
2021-10-11 15:21:26 +00:00
Stéphane Cerveau
2200a3dbcd ttml: fix log init
The log system should be init before calling a log

Fix regression after:

https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2038

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1112>
2021-10-11 15:23:08 +02:00
Stéphane Cerveau
01fa95d34a move-mrs-script: add url option
You can give as option:

--url
https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/merge_requests/1

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/960>
2021-10-10 19:50:10 +00:00
Stéphane Cerveau
442672cfdd move-mrs-script: add a list only options
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/960>
2021-10-10 19:50:10 +00:00
Víctor Manuel Jáquez Leal
1cfae69bc9 tests: va: Add VA buffer copy tests.
It should only work for raw buffers, but fails on dmabuf since it
should have a drm modifier.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1023>
2021-10-10 17:03:29 +00:00
Víctor Manuel Jáquez Leal
35575e7b11 va: allocator: dmabuf: Use GstVaSurfaceCopy, if possible.
If dmabuf-based buffer to copy contains only one memory, and there are
memories available in the allocator's pool, it's possible a fast
memory copy using GstVaSurfaceCopy, regardless the drm modifier.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1023>
2021-10-10 17:03:29 +00:00
Víctor Manuel Jáquez Leal
cf751d54a9 va: allocator: Use GstVaSurfaceCopy.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1023>
2021-10-10 17:03:29 +00:00
Víctor Manuel Jáquez Leal
ffa2522fc0 va: Add GstVaSurfaceCopy class.
This new class is a helper for fast/tricky copy of surfaces. First it
tries to copy using the function vaCopy in libva 1.12. If it fails, or
it's not available, a GstVaFilter is tried to be instantiated with the
allocator's parameters, and if succeed, it's used for copying the
source surface.

This is required for dmabuf surfaces with drm modifier.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1023>
2021-10-10 17:03:29 +00:00
Víctor Manuel Jáquez Leal
f1e2eb4f1e va: filter: Enable to pass VASurfaceID in GstVaSample.
Initially GstVaSample processed its GstBuffer member to get the
VASurfaceID. But it might cases where we already have the VASurfaceID
to process by the filter.

This patch enables the possibility to pass the surfaces rather than
the buffers. In order to validate the surfaces a function to check
surfaces were added.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1023>
2021-10-10 17:03:29 +00:00
Víctor Manuel Jáquez Leal
14156f8270 va: Split VA memory handling in different files.
Take out the VA memory wrappers from gstvallocator.c to an external
file exposing the functions.

This is going to be needed for the copy helper object.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1023>
2021-10-10 17:03:29 +00:00
Víctor Manuel Jáquez Leal
1be43e76cc va: allocator: Add missing header file.
Added stdint.h because uintptr_t is used.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1023>
2021-10-10 17:03:29 +00:00
Víctor Manuel Jáquez Leal
2947bd6ef1 va: display: Add gst_va_display_has_vpp()
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1023>
2021-10-10 17:03:29 +00:00
Benjamin Gaignard
7e9e17ebbe v4l2codecs: Align v4l2-controls header with kernel 5.15-rc3
Update v4l2-controls to be aligned with kernel 5.15-rc3.
Fix VP8 decoder to use the correct field name.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1081>
2021-10-10 15:50:57 +00:00
Jordan Petridis
c26d840f65 ci: remove outdated rule for gstreamer-full-minimal
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1065>
2021-10-10 15:01:37 +00:00
Jordan Petridis
cfe2bf8239 ci: update rules that pointed to gst-ci subproject
The files are now moved into ci/ at the root of the repo.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1065>
2021-10-10 15:01:37 +00:00
Jan Schmidt
71c3141672 uridecodebin3/urisourcebin: Reusability fixes
Improvements to uridecodebin3 and urisourcebin so that they are
reusable across a PAUSED->READY->PAUSED transition.

Disconnect and release decodebin3 request pads when urisourcebin
removes src pads.

In urisourcebin, make sure to remove src pads that are exposed
directly (raw pads and static typefind srcpads) when
cleaning up.

Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/768

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1100>
2021-10-10 11:55:19 +00:00
Jan Schmidt
e06ac494b8 playbin3: Always register 'playbin3' element.
If the USE_PLAYBIN3=1 env var is set, we want to replace
playbin with playbin3, but separate to that, we always
want to register the 'playbin3' element so that applications
which explicitly use playbin3 work regardless of the env var.

This fixes `USE_PLAYBIN3=1 gst-validate-launcher`, for example.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1102>
2021-10-10 07:28:17 +00:00
Seungha Yang
0d96e43c91 mediafoundation: mfvideoenc: Use DXGI adapter LUID
Make use of new DXGI adapter LUID based device context sharing.
Note that we were using DXGI adapter LUID to open MFT already.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1098>
2021-10-10 03:23:58 +09:00
Seungha Yang
5707e487cf d3d11: d3d11decoder: Use DXGI adapter LUID
... instead of index of DXGI adapter.

The order of IDXGIAdapter1 enumerated via IDXGIFactory1::EnumAdapters1
can be varying even there's no rebooting in case that GPU preference order
is updated by user (for example, it can be done by using NVIDIA Control Panel
in case of multi-GPU laptop system) and eGPU is another possible case.

So, for an element which requires fixed target GPU requirement,
index based device enumeration is unreliable.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1098>
2021-10-10 03:23:58 +09:00