Seungha Yang
ac265bc4f9
d3d11overlaycompositor: Avoid heap allocation per upload
...
Don't allocate list per upload
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5580 >
2023-11-01 15:41:08 +00:00
Seungha Yang
107edc0c07
d3d11videosink: Add redraw-on-update property
...
If users update geometry related properties very frequently
for a stream to be animated, redrawing on every update
can make rendering choppy or can be a performance bottleneck.
To address the issue, adding a property to control the behavior
of redrawing scene when geometry related properties are updated.
Also, do not resize swapchain on such property update, since
re-allocating backbuffer and multi-sampled render target is
unnecessary in that case.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5575 >
2023-10-30 11:15:35 +00:00
Seungha Yang
795e1bac34
d3d11videosink: Fix window switching in case of fullscreen mode
...
Other Windows applications allow window switching even when
an application window is in fullscreen mode. Also fixing
regression introduced in 15248d8b84
which makes restored window is always located at topmost
since we do not call SetWindowPos() anymore when restoring
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5574 >
2023-10-29 22:45:17 +09:00
Seungha Yang
e7069984df
d3d11videosink: Add sampling-method property
...
Identical to "method" property in d3d11convert element
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5572 >
2023-10-28 23:12:30 +09:00
Seungha Yang
b16665dc75
d3d11convert: Add support for sampling with anisotropic filter
...
Anisotropic filtering might produce better quality than linear filtering
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5572 >
2023-10-28 22:56:28 +09:00
Seungha Yang
af31b46992
d3d11convert: Add support for transform
...
Adding 3D rotation and scale transform support to d3d11convert element
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5572 >
2023-10-28 22:12:17 +09:00
Seungha Yang
1813b4e3d9
d3d11: Move transform matrix related method to utils
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5572 >
2023-10-28 22:12:17 +09:00
Seungha Yang
3a2a31d18b
d3d11overlaycompositor: Set rasterizer state
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5572 >
2023-10-28 22:12:17 +09:00
Seungha Yang
4dfdb6ec68
d3d11screencapturesrc: Set rasterizer state
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5572 >
2023-10-28 22:12:17 +09:00
Seungha Yang
5389cc2cc3
d3d11compositor: Set rasterizer state
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5572 >
2023-10-28 22:12:17 +09:00
Seungha Yang
1a82c9b9ab
d3d11testsrc: Set rasterizer state
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5572 >
2023-10-28 22:12:17 +09:00
Seungha Yang
e13612162b
d3d11screencapturesrc: Use DirectXMath struct and C++ mutex
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5572 >
2023-10-28 22:11:53 +09:00
Seungha Yang
63bb0b8de7
d3d11videosink: Add support for transform and MSAA
...
Adding properties for 3D rotation with arbitrary angle
and scaling. And adding Multi Sampling Anti-Aliasing rendering
support to smooth borders if arbitrary angle is applied
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5532 >
2023-10-28 09:58:16 +00:00
Seungha Yang
0b45548f18
d3d11videosink: Fix typo
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5532 >
2023-10-28 09:58:16 +00:00
Seungha Yang
745a73eece
wasapi2: Don't use global volume control object
...
ISimpleAudioVolume controls volume of corresponding audio session
and there would be only single input/output audio session
in case of share-mode, which means that it controls audio volume of the
process. Instead, use IAudioStreamVolume interface which controls
volume of the stream.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5549 >
2023-10-27 18:11:51 +00:00
Seungha Yang
bdc0f177f0
d3d11screencapturesrc: Fix mouse cursor blending
...
Ignore alpha component of source (mouse cursor texture)
when blending alpha channel, otherwise the background area of source
(which has zeros) will be written to render target. Then it will result
in black rectangle if output texture is converted to premultiplied alpha
texture
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5566 >
2023-10-27 16:33:04 +00:00
Sebastian Dröge
e6ff644bac
aja: Move clang-format configuration from the top-level to the plugin subdirectory
...
This shouldn't have been left at the top-level but was forgotten to be
moved when merging the repository histories.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5558 >
2023-10-27 11:44:36 +00:00
Sebastian Dröge
1b117e666b
aja: Add basic documentation
...
Also remove the `gst-inspect-1.0` output from the README.md. This is
listed in the actual documentation and more up to date there.
2023-10-26 09:36:10 +03:00
Sebastian Dröge
59f4146bdc
aja: Integrate AJA plugin into the build system
...
Co-Authored-By: Nirbheek Chauhan <nirbheek@centricular.com>
2023-10-26 09:36:09 +03:00
Sebastian Dröge
d2d947380e
Merge AJA audio/video source/sink plugin
...
Original location is https://github.com/centricular/gst-aja
2023-10-26 09:35:52 +03:00
Sebastian Dröge
f1a1dadbf3
Prepare for merging into GStreamer
2023-10-26 09:27:46 +03:00
Seungha Yang
2aa841e74b
mfvideoencoder: Fix typo in template caps
...
Fixes: https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/3058
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5554 >
2023-10-25 23:19:51 +09:00
Adrien De Coninck
65365caa21
d3d11videosink: post "have-window-handle" element message on the bus
...
* when window_id is not user-provided and window_type==GST_D3D11_WINDOW_NATIVE_TYPE_HWND
* allows user to retrieve internally created window handle
* for custom positionning
* for custom icons
* ...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5544 >
2023-10-24 16:32:36 +02:00
David Rosca
8aac08506a
va: Use vaMapBuffer2
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5467 >
2023-10-23 19:40:16 +00:00
Piotr Brzeziński
e79b308f82
vtdec: Fix deadlock when attempting to negotiate
...
This was wrongly calling the base class method, which unnecessairly took the stream lock, already taken by
handle_frame(). The drain() call in negotiate() would then wait for the output loop to pause, while that loop
is stuck waiting to take the stream lock, thus causing a deadlock.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5521 >
2023-10-20 13:50:16 +02:00
Nicolas Dufresne
41f478e97d
v4l2codecs: h265: Fix entry_point_offsets array leak
...
This array was being leaked.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5499 >
2023-10-17 15:06:26 -04:00
Seungha Yang
e2790d635c
d3d11screencapturesrc: Fix HWND capture mode
...
Use per-monitor-aware context to cover different DPI settings per
monitor
Fixes: https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/2425
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5485 >
2023-10-16 01:02:36 +09:00
Seungha Yang
c5d60cee01
d3d12decoder: Hide non-default device from docs
...
... and add since marker
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5481 >
2023-10-14 12:32:46 +00:00
Seungha Yang
8a35c8a2a5
d3d11compositor: Fix typo in property description
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5481 >
2023-10-14 12:32:46 +00:00
Seungha Yang
0a05ba3f62
nvencoder: Add support for new preset/tune/multi-pass options
...
Adding new P1 ~ P7 presets and deprecate old preset values.
Also adding tune and multi-pass properties.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5428 >
2023-10-14 11:03:40 +00:00
Rahul T R
6fbe4d55c4
kmssink: Add TIDSS auto-detection
...
Add Texas Instruments TIDSS display controller into list of
auto-detected modules.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5469 >
2023-10-12 18:25:50 +00:00
Seungha Yang
ed29c23e86
d3d12, dwrite, va: Fix various msys2 build error/warning
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5454 >
2023-10-12 10:53:58 +00:00
Mengkejiergeli Ba
c14f4cda0c
msdkvpp: Use filter flag to handle passthrough for tone mapping
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5449 >
2023-10-12 05:02:37 +00:00
Seungha Yang
c2ed8759c8
d3d11videosink: Don't use DXGI_ALPHA_MODE_PREMULTIPLIED for HWND swapchain
...
It's allowed only for a swapchain type which does composition
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5464 >
2023-10-11 22:22:56 +00:00
Seungha Yang
7b564619cf
d3d11videosink: Fix rendering with initial fullscreen state
...
Change fullscreen mode once the swapchain is fully configured
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5462 >
2023-10-11 21:39:11 +00:00
Seungha Yang
15248d8b84
d3d11videosink: Fix toggling between fullscreen and maximized
...
Use GetWindowPlacement() and SetWindowPlacement() APIs
to remember and restore window status, such as maximized, position,
restore position, etc.
Fixes: https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/3016
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5462 >
2023-10-11 21:39:11 +00:00
Seungha Yang
f52ecb9607
d3d11converter: Add support for HLSL precompile and bytecode caching
...
Precompile pixel shaders for simple conversion path
(without gamma/primaries conversion) in case of MSVC build.
Even if runtime compile is required (cross-compiled or complex conversion
path), do it only once and reuse the compiled bytecode.
This precompile/caching can save about 95% of time taken by
gst_d3d11_converter_new() call.
Fixes: https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/3004
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5457 >
2023-10-11 18:40:46 +00:00
Seungha Yang
83a576e854
d3d11: Reuse sampler object
...
The linear sampler object can be reused
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5457 >
2023-10-11 18:40:46 +00:00
Seungha Yang
92cc5722c8
d3d11: Pass HLSL source size to compile function
...
The string size is known at build time
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5457 >
2023-10-11 18:40:46 +00:00
Seungha Yang
bfdea297d2
d3d11converter: Set alpha-mode using config
...
... and disallow runtime alpha-mode update for now
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5457 >
2023-10-11 18:40:46 +00:00
Seungha Yang
8fe26c8a10
d3d11: Simplify HLSL build
...
Unify source/header/entrypoint names
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5457 >
2023-10-11 18:40:46 +00:00
Nicolas Dufresne
88fd9908fe
v4l2codecs: Fix tiled formats stride conversion
...
While adding arbitrary tile support, a round up operation was badly
converter. This caused the Y component of the stride to be 0. This
eventually lead to a crash in glupoad preceded by the following
assertion.
gst_gl_buffer_allocation_params_new: assertion 'alloc_size > 0' failed
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5458 >
2023-10-11 14:13:53 +00:00
Seungha Yang
3536b7f3a6
decklink: Fix broken COM string conversion
...
WideCharToMultiByte return is the string length without null terminate
character if passed "cchWideChar" does not include the null terminate
character size. Instead of passing the exact string length, pass -1 so that
the API can understand the input string is null terminated already and
returned value from the API includes the character.
Fixes: https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/3023
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5444 >
2023-10-09 20:10:25 +09:00
Michael Tretter
c020dab393
uvcsink: use the pad's current caps to update caps_changed
...
The caps that were sent by the caps event can be retrieved from the sinkpad
using gst_pad_get_current_caps(). This is more reliable than using cur_caps as
we know exactly which caps upstream selected when the UVC host didn't select a
format, yet.
This further allows to simplify the check, if the uvcsink has to wait for the
caps event before switching to the internal v4l2sink.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4994 >
2023-10-06 15:55:23 +00:00
Michael Tretter
733b4d9597
uvcsink: use event function instead of probe
...
The probe passes all events except the EVENT_CAPS. Installing and removing the
probe doesn't provide any additional value.
Install an event function and always handle EVENT_CAPS. Use the caps_changed
field, to decide, if the element has to do anything special on a EVENT_CAPS.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4994 >
2023-10-06 15:55:23 +00:00
Michael Tretter
1732f8c728
uvcsink: refactor gst_uvc_sink_update_streaming
...
Move the sanity checks to the beginning of the function. Make the actual effect
of the function more obvious and reset the flags in the end.
This should make it easier to understand what this function is doing.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4994 >
2023-10-06 15:55:23 +00:00
Michael Tretter
6637343980
uvcsink: extract helper function for updating the stream state
...
The uvcsink may switch to the v4l2sink after a STREAMON either on a caps event
or on a caps query.
Extract the code that handles the STREAMON into a helper function, as this is
the same code.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4994 >
2023-10-06 15:55:23 +00:00
Michael Tretter
24daf9ea3d
uvcsink: extract common code to reset caps_changed
...
The caps_changed flag must be reset for streamon and streamoff. Extract it to a
common path.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4994 >
2023-10-06 15:55:23 +00:00
Michael Tretter
a9eef25717
uvcsink: remove separate function for buffer probe installation
...
The probe that installs the buffer probe is already on the correct pad. There is
no need for a separate function to install the probe.
While at it, change the signature of the probe functions to GstPadProbeCallback
to avoid the cast when installing the probes.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4994 >
2023-10-06 15:55:23 +00:00
Michael Tretter
eac9f60608
uvcsink: extract common code in idle_probe
...
The RECONFIGURE event has to be sent in streamon and streamoff. Extract the
common code to a separate branch to make it easier to understand.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4994 >
2023-10-06 15:55:23 +00:00