Commit graph

887 commits

Author SHA1 Message Date
Wojciech Kapsa
8d4916df84 decklink: fix 10 bit RGB (r210) format auto detection
Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/2391

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4332>
2023-04-04 20:37:09 +03:00
Seungha Yang
47fda2c51c d3d11screencapturesrc: Add "window-capture-mode" property
... to support capturing only window's client area

Fixes: https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/2425
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4324>
2023-04-03 15:06:47 +00:00
Aleksandr Slobodeniuk
e683000573 d3d11videosink: fix race conditions in win32 window
One race condition is the fact that the window object
can be destroyed while running some routine in the UI
thread (such as resizing). To avoid that situation we make
UI thread hold a reference on the window object while it's
running.
Other probpematic case is when the window handle is reused:
if we stop and start the pipeline very fast,
so the sink creates a new window object that is going to use
the same window handle as the previous one.
And finally the case when the pipeline is stopped immediatelly
right after starting, this one is also handled in this commit.

NOTE: a unit test that reproduces this cases have been added
in the previous commit.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4260>
2023-04-03 11:19:11 +00:00
Seungha Yang
7755cd2f7a d3d11videosink: Enhancement for initial window size decision
Use AdjustWindowRect() method to calculate window size so that
video scene can be rendered on client area without black borders

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4323>
2023-04-02 00:31:58 +09:00
Tim-Philipp Müller
330836db8e taglist, plugins: fix compiler warnings with GLib >= 2.76
Fix compiler warnings about not using the return value when
freeing the GString segment with g_string_free(.., FALSE):

    ignoring return value of ‘g_string_free_and_steal’ declared with attribute ‘warn_unused_result’

which we get with newer GLib versions. These were all harmless.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4273>
2023-03-27 07:37:11 +00:00
Víctor Manuel Jáquez Leal
292d6cdbed vaencoder: remove display reference in decode picture
Since it's possible to grab the VA display from the GstBuffer and
GstMemory, there's no need to keep a reference to it in
GstVaEncodePicture.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3066>
2023-03-24 14:05:15 +00:00
Víctor Manuel Jáquez Leal
494169aad4 vadecoder: remove display reference in decode picture
Since it's possible to grab the VA display from the GstBuffer and
GstMemory, there's no need to keep a reference to it in
GstVaDecodePicture.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3066>
2023-03-24 14:05:15 +00:00
Stéphane Cerveau
e88e8527ed sys: avoid double definition of symbol MEDIASUBTYPE_I420
Namespace the symbol MEDIASUBTYPE_I420 to avoid double definition
across dshow and mediafoundation plugins.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4246>
2023-03-23 00:56:04 +00:00
Seungha Yang
96555c7ee9 nvh264encoder: Fix template caps
It should include progressive as well

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4236>
2023-03-22 23:40:58 +00:00
Tong Wu
ebc9780c5f msdkdec: delete use_video_memory
Since msdkdec uses video pool as the output buffer pool at all time. The
use_video_memory variable is not useful anymore. Now delete it.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4088>
2023-03-22 05:07:19 +00:00
Tong Wu
8105d2044d msdkdec: expand retry times to 1s
One-frame sleep time is not enough to wait until there is a surface
unlocked from downstream. Now expand it to 1s and add a return when
fail.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4088>
2023-03-22 05:07:19 +00:00
Tong Wu
123c8d14c1 msdkallocator_d3d: add gst_msdk_frame_free callback function
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4088>
2023-03-22 05:07:19 +00:00
Tong Wu
abe4d0046a msdkdec: acquire buffer from video pool on Windows
Video memory is available on Windows. This patch is to make the buffers
acquired from d3d11 video pool.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4088>
2023-03-22 05:07:19 +00:00
Tong Wu
d2902be9eb msdkdec: add thiz->ds_has_known_allocator for d3d11
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4088>
2023-03-22 05:07:19 +00:00
Tong Wu
245df2778e msdkallocator_d3d: add alloc callback function for d3d allocator
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4088>
2023-03-22 05:07:19 +00:00
Tong Wu
b3e13df8c1 msdkdec: add d3d11 pool during negotiation
Enable use_video_memory for Windows and add d3d11 pool.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4088>
2023-03-22 05:07:19 +00:00
Tong Wu
2b9cda928b msdkdec: add d3d11 caps for srcpad
Set decoder srcpad with D3D11Memory.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4088>
2023-03-22 05:07:19 +00:00
Aleksandr Slobodeniuk
1f834eaacb d3d11convert: add "method" property
It allows to select the sampling method, same
as "method" property of videoconvert.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4205>
2023-03-21 12:08:54 +00:00
Aleksandr Slobodeniuk
4c9d4d30cb d3d11convert: protect 'add-borders' with mutex
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4205>
2023-03-21 12:08:54 +00:00
Mengkejiergeli Ba
9e3faf69f2 msdkvpp: Pass null formats when create va allocator for RGB565
Fix https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/1780

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4136>
2023-03-21 05:42:34 +00:00
Víctor Manuel Jáquez Leal
e794fcaa1c va: add driver description in element metadata
In the same spirit of libva-win32 elements this patch shows the driver of each
element in gst-inspect, giving more information to the user. This driver
description is parsed from vaQueryVendorString from mesa and intel drivers,
while copied as is for others. Also appends the render node for multi gpu
systems.

Fixes #2349

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4204>
2023-03-20 15:27:25 +00:00
Adrien De Coninck
ab69e24d9e ksdeviceprovider: Fix leak in gst_dshow_device_provider_start
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4224>
2023-03-20 09:50:37 +00:00
Adrien De Coninck
0aea6a86ac dshowdeviceprovider: Fix leak in gst_dshow_device_provider_start
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4224>
2023-03-20 09:50:37 +00:00
Seungha Yang
3bbfab1cf3 va: Return default device from device-path property getter
Otherwise application would not be able to know matching element
for wanted device. Typical use case of the read-only device path
(DXGI Adapter LUID, CUDA device index, etc) property is that
application enumerates physical devices and then selects matching
GStreamer element (in null state) via device path property.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4220>
2023-03-19 17:50:43 +00:00
Sebastian Dröge
ccad9a7338 plugins: Fix various trivial clang compiler warnings
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4210>
2023-03-18 16:16:55 +02:00
Seungha Yang
fed252cabd nvencoder: Fix CQP option setting
... and zero initialize LUID and CUDA device list to address
coverity issue

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4215>
2023-03-17 18:30:19 +00:00
Tim-Philipp Müller
81716a1097 gst-plugins-bad: re-indent with GNU indent 2.2.12
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4182>
2023-03-17 03:18:54 +00:00
Seungha Yang
fba06cfc76 wasapi2: Fix potential crash on device activation failure
The activation object is live in COM thread already and therefore
self refcount hack is pointless.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4194>
2023-03-16 19:30:27 +00:00
Seungha Yang
e47f08395f d3d11videosink: Fix tearing in case of fullscreen mode
DXGI_SWAP_CHAIN_FLAG_ALLOW_TEARING and DXGI_PRESENT_ALLOW_TEARING should
be used only if required, when user wants Vsync off for example.

Fixes: https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/2376
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4178>
2023-03-15 22:56:02 +00:00
Teng, Jin Chung
83364c5729 msdkh264enc: Adding BGRx format DMABuf support
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4167>
2023-03-15 15:06:57 +00:00
Seungha Yang
a1bd4afb8a d3d11compositor: Fix composition error on release_pad()
Composition might be still in progress while it's being released

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4169>
2023-03-15 04:50:49 +00:00
Seungha Yang
fe63034dd4 va: Don't error out on plugin registration
Keep enumerate devices and don't return FALSE on plugin_init()

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4149>
2023-03-15 01:37:03 +00:00
Nirbheek Chauhan
2d6da02653 applemedia: Consolidate GstVideoFormat <-> CVPixelFormat conversion
In the process we have changed the color value range from video-range
to full-range, which is probably what people want in the first place.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4135>
2023-03-14 23:35:16 +00:00
Nicolas Dufresne
37f2d2ac42 kmsallocator: Port to the new DRM Dumb Allocator
This ports the KMS allocator to use the DRM Dumb allocator from the allocators
library.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3801>
2023-03-14 21:50:57 +00:00
Sebastian Dröge
fe580cacb8 androidmedia: Add support for AV1
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4156>
2023-03-14 11:26:30 +00:00
Nirbheek Chauhan
3b9ce6cb54 avfvideosrc: GL texture cache also supports YUY2 on macOS
BGRA gives black frames, and everything else fails to negotiate.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4134>
2023-03-14 00:00:24 +00:00
Nirbheek Chauhan
a8ed817d30 avfvideosrc: Use frame duration instead of frame rate
These days you're can use minFrameDuration and maxFrameDuration which
are CMTime with fractional values. That way we don't need to convert
between double and fractions in a really weird way.

This fixes really odd fractional values exposed in caps, like:

2000000/76923, 1000000/37037, 5000000/178571, 10000000/344827, 10000000/333333

Which are actually just 26/1, 27/1, 28/1, 29/1, 30/1

We can also delete a lot of outdated code for iOS versions older than
7.0 by using newer APIs.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4134>
2023-03-14 00:00:24 +00:00
Seungha Yang
7624871b00 va: Update "device-path" property description for Windows
DRM does not make sense on Windows

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4114>
2023-03-10 13:57:47 +00:00
Seungha Yang
7bc6ba63b2 va: Add Windows specific element type/feature naming support
Adapter LUID will be changed per boot. Use different naming rule on Windows

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4114>
2023-03-10 13:57:47 +00:00
Seungha Yang
c1946c0209 va: Add support for Win32 backend
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4114>
2023-03-10 13:57:47 +00:00
Seungha Yang
bc8db7bc3e va: Drop all GSlice bits
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4114>
2023-03-10 13:57:47 +00:00
Seungha Yang
b6e45d0de8 vavp8dec: Fix return type of decode_picture()
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4113>
2023-03-06 13:39:20 +00:00
Seungha Yang
c5ae00f58c vajpegdec: Hide gst_jpeg_decoder_get_type() symbol
It's not a public symbol yet

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4113>
2023-03-06 13:39:20 +00:00
Seungha Yang
fbf143b0fd vabaseenc: Fix return type of encode_frame vfunc
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4113>
2023-03-06 13:39:19 +00:00
Seungha Yang
2f98234287 va: Fix struct empty initialization syntax
"struct Foo bar; bar = {};" is not a valid syntax. Also remove use
of __typeof__ which is GCC specific

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4113>
2023-03-06 13:39:19 +00:00
Seungha Yang
b5fb709be7 qsvh265dec: Use gst_h265_parser_parse_decoder_config_record()
Stop duplicating code and use newly added parsing method instead

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2759>
2023-03-06 12:50:41 +00:00
Yinhang Liu
89a6ce105b msdkenc: Fix scale ratio for frame duration
For the calculation of frame duration, the numerator
should be FrameRateExtD, and the denominator should be
FrameRateExtN.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4119>
2023-03-06 13:57:01 +08:00
Piotr Brzeziński
3c739b9b76 vtdec: Correctly retrieve reorder queue length from SPS
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4057>
2023-03-03 19:26:11 +00:00
Yinhang Liu
5c47002d99 msdkvpp: correct the fixated caps for src pad
In src pad, fixate othercaps instead of the NULL result caps

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3999>
2023-03-02 07:21:10 +00:00
Jan Schmidt
47e97251af avfvideosrc: Fix description and trailing whitespace
Minor fix to mention that the element is also useful on MacOS,
and remove some trailing whitespace

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4083>
2023-03-01 20:05:32 +00:00