Seungha Yang
1e55e07cb8
d3d11videosink: Fix for unhandled mouse double click events
...
Only window created with CS_DBLCLKS style can receive those mouse
double click events, so we need to use the style for internal/external
windows can get double click events.
Also, passthrough mouse events to parent window in the same message pumping
threads instead of manually forwarding each mouse event.
Fixes: https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/1172
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2286 >
2022-05-01 15:33:58 +00:00
Seungha Yang
0d65762411
d3d11window: Use ANSI version WIN32 API explicitly
...
We were using ANSI version APIs implicitly because UNICODE is not
defined by ourselves. But potentially it can be broken if user
defines UNICODE.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2286 >
2022-05-01 15:33:58 +00:00
Seungha Yang
3b5f1406f3
win32: Enable high-resolution timer for MinGW build
...
timeapi.h is missing in our MinGW toolchain. Include mmsystem.h
header instead, which defines struct and APIs in case of our MinGW
toolchain. Note that in case of native Windows10 SDK (MSVC build),
mmsystem.h will include timeapi.h
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2167 >
2022-04-16 10:00:04 +00:00
Seungha Yang
f8df11a2cc
d3d11converter: Fix for missing GRAY conversion
...
Add missing Y410 -> GRAY and GRAY -> semi-planar conversion
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1733 >
2022-02-17 12:46:56 +00:00
Seungha Yang
8cf99d687b
d3d11converter: Don't use FIXME_OBJECT for non-GstObject
...
... and print ERROR messages for unexpected input/output formats
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1733 >
2022-02-17 12:46:56 +00:00
Seungha Yang
b7e746392d
d3d11converter: Fix RGB to GRAY conversion
...
Fix typo in shader code
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1719 >
2022-02-16 03:25:59 +00:00
Seungha Yang
ea06439c39
d3d11decoder: Fix typo in doc
...
s/elemenet/element/g
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1598 >
2022-01-29 04:47:16 +09:00
Seungha Yang
7b1683f6b2
d3d11av1dec: Fix typo in debug message
...
Fixing copy and paste mistake, It's AV1 decoder not VP8
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1576 >
2022-01-27 03:11:33 +09:00
Seungha Yang
f97ab9edf7
d3d11deinterlace: Do not restrict minimum resolution to 64x64
...
The value 64 was completely arbitrary one, and this element
will be able to support smaller resolutions
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1528 >
2022-01-16 02:23:55 +09:00
Seungha Yang
e63a3a7f31
d3d11compositor: Don't try to read empty buffer
...
The queued buffer may not be readable buffer in case that
upstream sends GAP event or so.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1497 >
2022-01-13 20:27:50 +00:00
Seungha Yang
5fefc689a0
d3d11decoder: Negotiate again on the first output buffer
...
... unconditionally. There may be updated field in sinkpad caps
after the new_sequence() call (HDR related ones for example),
then we should signal the information to downstream.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1474 >
2021-12-30 11:09:45 +00:00
Seungha Yang
91484ce2ac
d3d11av1dec: Update sinkpad template for profile
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1456 >
2021-12-21 22:20:34 +09:00
Seungha Yang
1564567c3e
d3d11av1dec: Fix for Cdef param
...
av1parser will increase the sec_strength values by 1 if parsed
values were equal to 3 as defined in spec. But DXVA wants unmodified
ones.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1455 >
2021-12-17 23:28:29 +09:00
Seungha Yang
146815bbb6
d3d11av1dec: Sync DXVA AV1 data structure with released header
...
Update AV1 data structure based on Windows 11 SDK header
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1455 >
2021-12-17 23:27:24 +09:00
Seungha Yang
f10867dfb5
d3d11videosink: Use only tested color space for swapchain
...
We are querying supported swapchain colorspace via
CheckColorSpaceSupport() but it doesn't seem to be reliable.
Use only tested full-range RGB formats which are:
- sRGB
- BT709 primaries with linear RGB
- BT2020 primaries with PQ gamma
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1433 >
2021-12-12 11:00:24 +00:00
Seungha Yang
e8c923ebde
d3d11window: Remove hack related to color space selection
...
Use input GstVideoColorPrimaries without any special case handling
otherwise rendered image color would be very wrong.
The hack was added to work around an issue that some Intel driver
couldn't handle wide color gamut image without HDR10 metadata, specifically PQ image.
But device capability can be checked via a method added in
https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1723
so there's no issue now.
Fixes: https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/issues/1175
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1430 >
2021-12-09 20:12:12 +09:00
Seungha Yang
1a12883993
d3d11window: Fix typo in debug message
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1430 >
2021-12-09 19:51:20 +09:00
Seungha Yang
e87791592e
d3d11vp9dec: Drop frames on non-keyframe format change
...
... in case of NVIDIA GPU
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1407 >
2021-12-02 19:19:59 +00:00
Seungha Yang
7fe08d8bed
d3d11: Stop doc for non-default decoder and deinterlacer elements
...
Just skip doc for non-default decoder/deinterlacer elements
since there are multiple element in case that system has
multiple GPUs.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1360 >
2021-11-19 13:38:19 +00:00
Wonchul Lee
ae7a365274
d3d11: Fix deadlock while doing unprepare
...
ShowWindow() could be blocked while doing gst_d3d11_window_win32_unprepare
when external window handle provided to d3d11videosink in multi-threaded
environment.
The condition that issue happened is, UI thread is waiting for a
background thread that changes d3d11videosink state to NULL, and the
background thread would try to send a window message to the queue.
The queue is already occupied by the UI thread, so the background
thread will be blocked.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1366 >
2021-11-19 13:42:53 +09:00
Seungha Yang
be9cf6c9cd
d3d11: d3d11{convert,scale}: Add add-borders property
...
Functionally identical to that of videoscale element.
When disabled, d3d11convert or d3d11scale element will scale
image without adding borders, meaning that display aspect ratio
will not be preserved.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1170 >
2021-10-17 12:36:28 +00:00
Seungha Yang
b3710aa68d
d3d11: Rename screen capture element
...
Old name "desktopdup" may confuse users. Now it's renamed to
"screencapture"
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1136 >
2021-10-14 15:15:56 +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
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
Seungha Yang
d8eff2623d
d3d11: d3d11device: Remove "allow-tearing" property
...
Plugin can query DXGI_FEATURE_PRESENT_ALLOW_TEARING without d3d11device
help
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1098 >
2021-10-10 01:01:44 +09:00
Seungha Yang
7286c8e302
d3d11: d3d11desktopdupsrc: Add support for non-D3D11 downstream element
...
By this commit, application doesn't need to configure d3d11download
element for software pipeline which will make things simpler
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1082 >
2021-10-08 16:13:46 +09:00
Seungha Yang
7c557c2d65
codecs: mpeg2decoder: Use GstFlowReturn everywhere
...
boolean return value is not sufficient for representing the reason
of error in most cases. For instance, any errors around new_sequence()
would mean negotiation error, not just *ERROR*.
And some subclasses will allocate buffer/memory/surface on new_picture()
but it could be failed because of expected error, likely flushing
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1019 >
2021-10-04 20:56:46 +00:00
Seungha Yang
e322745763
codecs: h264decoder: Use GstFlowReturn everywhere
...
boolean return value is not sufficient for representing the reason
of error in most cases. For instance, any errors around new_sequence()
would mean negotiation error, not just *ERROR*.
And some subclasses will allocate buffer/memory/surface on new_picture()
but it could be failed because of expected error, likely flushing
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1019 >
2021-10-04 20:56:46 +00:00
Seungha Yang
5b405d1585
codecs: h265decoder: Use GstFlowReturn everywhere
...
boolean return value is not sufficient for representing the reason
of error in most cases. For instance, any errors around new_sequence()
would mean negotiation error, not just *ERROR*.
And some subclasses will allocate buffer/memory/surface on new_picture()
but it could be failed because of expected error, likely flushing
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1019 >
2021-10-04 20:56:46 +00:00
Seungha Yang
6a756b9f46
d3d11: d3d11vp9dec: Fix use_prev_in_find_mv_refs value setting
...
"last_show_frame" should be updated based on
GstVp9FrameHeader::show_frame, not show_existing_frame
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1021 >
2021-10-03 02:25:50 +09:00
Seungha Yang
052983014e
d3d11videosink: Add support for crop meta
...
... when upstream element is d3d11.
Note that, if upstream element is not d3d11, crop meta is almost
pointless since d3d11videosink will upload video frame to GPU memory
in any case.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/933 >
2021-09-27 16:29:09 +00:00
Seungha Yang
0fa5a06ed9
d3d11videosink: Perform propose_allocation() even when we have no configured window
...
In order to support d3d11 device update, d3d11videosink will configure
window on the first buffer. So, there might not be configured
window when propose_allocation() is required.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/933 >
2021-09-27 16:29:09 +00:00
Thibault Saunier
019971a3c7
Move files from gst-plugins-bad into the "subprojects/gst-plugins-bad/" subdir
2021-09-24 16:14:36 -03:00