Seungha Yang
5298d95195
d3d11window: Make use of partial presentation with IDXGISwapChain1::Present1
...
Since we might draw on partial area of backbuffer in case of force-aspect-ratio,
presenting only updated area is more efficient way.
See also https://docs.microsoft.com/ko-kr/windows/win32/direct3ddxgi/dxgi-1-2-presentation-improvements
2019-12-24 20:10:54 +09:00
Seungha Yang
487a41d312
d3d11videosink: Add support for overlay composition
...
Add d3d11overlaycompositor object to draw overlay image
on render target using Blend method.
2019-12-24 19:00:45 +09:00
Seungha Yang
a5295509af
d3d11: Enable dxgi debug layer and always try to pop d3d11/dxgi debug message if possible
...
Note that dxgi and d3d11 sdk debug will be enabled on debug build
2019-12-24 19:00:40 +09:00
Seungha Yang
49bccf0433
nvcodec: Refactor plugin initialization
...
Create CUDA context per device, instead of per codec and encoder/decoder.
Allocating CUDA context is heavy operation so we should reuse it
as much as possible.
Fixes: https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/issues/1130
2019-12-24 08:10:14 +00:00
Seungha Yang
2a3205b294
vulkan/window/win32: Don't post any WinProc message to parent window
...
Posting any message to parent seems to be pointless. That might break
parent window.
Regardless of the posting, parent window can catch mouse event
and also any keyboard events will be handled by parent window by default.
2019-12-22 09:16:42 +00:00
Aaron Boxer
cd0c07e899
openjpegenc: add support for sub-frame encoding
...
Following the standard for low latency JPEG 2000 encoding
https://www.itu.int/rec/dologin_pub.asp?lang=e&id=T-REC-H.222.0-200701-S!Amd1!PDF-E&type=items
we divide the image into stripes of a specified height, and encode
each stripe as a self-contained JPEG 2000 image. This MR is based on
https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/merge_requests/429
2019-12-22 02:54:00 +00:00
Yeongjin Jeong
663aeb2131
svthevcenc: Add new SVT-HEVC encoder element
...
The SVT-HEVC (Scalable Video Technology[0] for HEVC) Encoder is an
open source video coding technology[1] that is highly optimized for
Intel Xeon Scalable processors and Intel Xeon D processors.
[0] https://01.org/svt
[1] https://github.com/OpenVisualCloud/SVT-HEVC
2019-12-20 15:43:55 +00:00
Yeongjin Jeong
3f2240498b
h265parser: Add simple GstH265Profile/string public utilites
...
It makes more simplifies the conversion between GstH265Profile and string.
2019-12-20 15:43:55 +00:00
Seungha Yang
0e013fe539
d3d11videosink: Use dynamic texture for fallback buffer
...
Upload CPU memory to texture directly by using dynamic usage texture.
This will reduce at least one step of staging copy per frame.
2019-12-20 19:21:02 +09:00
Seungha Yang
65cace22e2
d3d11colorconvert: Set TRANSFER_NEED_DOWNLOAD flag to output memory for later cpu access
...
Otherwise CPU cannot access texture via gst_memory_map()
2019-12-20 19:21:02 +09:00
Seungha Yang
18e13404a2
d3d11colorconvert: Use shader resource and render target bind flags together
...
The output of d3d11colorconvert would be used for rendering (i.e., shader resource)
2019-12-20 19:21:02 +09:00
Seungha Yang
62c8d19e01
d3d11window: Change aspect-ratio mode from window thread
...
Call DXGI API from window thread as much as possible
2019-12-20 19:21:02 +09:00
Seungha Yang
187cb02d52
examples: Add example for d3d11videosink
...
This is fork of win32-videooverlay in -base but more d3d11videosink specific one.
2019-12-20 19:21:02 +09:00
Seungha Yang
1b687d556a
d3d11videosink: Add support for full screen mode
...
borderless top-most style full screen mode support.
Basically fullscreen toggle mode is disabled by default. To enable it
use "fullscreen-toggle-mode" property to allow fullscreen mode change
by user input and/or property.
2019-12-20 19:21:02 +09:00
Seungha Yang
0788492461
d3d11: Use GRecMutex to protect immediate context and dxgi API call
...
In some cases, rendering and dxgi (e.g., swapchain) APIs should be
called from window message pump thread, but current design (dedicated d3d11 thread)
make it impossible. To solve it, change concurrency model to locking based one
from single-thread model.
2019-12-20 19:21:03 +09:00
Seungha Yang
a0a85cd80c
d3d11window: Prefer to use flip-sequential over discard
...
flip-sequential is more efficient than discard
2019-12-20 11:15:12 +09:00
Seungha Yang
1424de0a4a
d3d11window: Don't hold backbuffer interface
...
We don't need to hold it
2019-12-20 11:15:12 +09:00
Seungha Yang
32d618c677
d3d11window: Use CreateSwapChainForHwnd if available
...
That's recommended way from MS and CreateSwapChainForHwnd supports
more options than CreateSwapChain
2019-12-20 11:15:12 +09:00
Seungha Yang
9fd0b62f2d
d3d11: Use configuration file for dxgi header version check
2019-12-20 11:15:12 +09:00
Seungha Yang
23b47a7ec1
d3d11window: Use allow-tearing mode if device supports it
...
As the recommendation from MS.
2019-12-20 11:15:12 +09:00
Seungha Yang
72b6b3557d
d3d11window: Disable fullscreen mode change by alt + enter
...
Disable full screen mode change until proper handling is implemented
2019-12-20 11:15:12 +09:00
Seungha Yang
9dada90108
d3d11videosink: Remove resizing window hack and unify resizing flow
...
In earlier implementation of d3d11videosink where no shader was implemented,
the aspect ratio and render size were adjusted by manipulating the backbuffer size
with unintuitive formula. Since now we do color conversion and resize using
shader, we can remove the hack.
2019-12-20 11:15:12 +09:00
Seungha Yang
61cb6b2bbe
d3d11: Pass GstD3D11Memory object to ensure_{shader_resource,render_target}_view methods
...
The method name indicates it should be d3d11memory, so passing
GstD3D11Memory seems to make more sense than GstMemory.
2019-12-20 11:15:12 +09:00
Seungha Yang
7c041f1934
d3d11videosink: Don't specify crop meta to allocation query
...
d3d11videosink could not handle it for now
2019-12-20 11:15:12 +09:00
Nicolas Dufresne
416728f213
autoconvert: Fix lock-less exchange or free condition
...
Before this change, we would free the list we just have saved.
Fixes #1158
2019-12-19 22:35:18 +00:00
Francisco Javier Velázquez-García (francisv)
c7fe1e8164
gstsrtsink: Add wait-for-connection
property to srtsink
...
Add `wait-for-connection` property to `srtsink` element. This
property allows the element to process packets even when no clients
are connected.
2019-12-19 19:46:47 +00:00
Aaron Boxer
c8193b1615
d3dvideosink: hold class lock for entire duration of class destruction
...
This avoids a race condition currently when temporarily releasing the
lock and then re-acquiring.
2019-12-18 13:15:06 -05:00
Aaron Boxer
7cb6dbefba
d3dvideosink: improve concurrency on hidden window create/destroy
2019-12-18 13:15:06 -05:00
Aaron Boxer
eff0117b5a
d3dvideosink: use thread pool to handle events from hidden window event queue
...
window event queue now does not lock on the class lock, so we can now shut
it down without releasing the class lock, thus avoiding a potential race when
stopping the sink.
2019-12-18 13:15:06 -05:00
Aaron Boxer
027eb5ef20
d3dvideosink: improve concurrency on internal window create/destroy
...
Remove timeout and rely on condition variable instead to indicate thread
start.
2019-12-18 13:15:06 -05:00
Aaron Boxer
adfbce336a
d3dvideosink: only warn about HWND already set if new HWND is not NULL
2019-12-18 13:15:06 -05:00
Aaron Boxer
84403dbae3
d3dvideosink: add more null checks
2019-12-18 13:15:05 -05:00
Aaron Boxer
06862d7ff5
d3dvideosink: check ref count and device before resetting display
2019-12-18 13:15:05 -05:00
Aaron Boxer
85c1550b92
d3dvideosink: use class lock when checking d3d formats, and cache format list
2019-12-18 13:15:05 -05:00
Aaron Boxer
d7af30bab9
d3dvideosink: destroy device just before final d3d release call
...
and free overlays after swap chain is released
2019-12-18 13:15:05 -05:00
Aaron Boxer
5e3520a302
d3dvideosink: add two forward declarations
2019-12-18 13:15:05 -05:00
Aaron Boxer
49211bdf74
d3dvideosink: use class lock when setting pool config
2019-12-18 13:15:05 -05:00
Aaron Boxer
fb6c2e8533
d3dvideosink: use class lock when allocating pool buffer
2019-12-18 13:15:05 -05:00
Aaron Boxer
52254ad31c
d3dvideosink: use class lock when creating overlay textures
2019-12-18 13:15:05 -05:00
Aaron Boxer
51f823c98a
d3dvideosinnk: check d3d device exists before creating overlay vertex buffer
2019-12-18 13:15:05 -05:00
Aaron Boxer
8710eb0656
d3dvideosink: pass hidden window hwnd to GST_DEBUG, rather than NULL
2019-12-18 13:15:05 -05:00
Aaron Boxer
54ce3d5011
d3dvideosink: fix typo
2019-12-18 13:15:05 -05:00
Stéphane Cerveau
c6eb17be6e
h264parse: Align GST_H264_PROFILE_HIGH_422 to H264 standards
...
According to H264 ITU standards from 06/19, GST_H264_PROFILE_HIGH_422
(profile_idc = 122) with constraint_set1_flag = 0 and
constraint_set3_flag = 0 can be mapped to high-4:2:2 or high-4:4:4.
GST_H264_PROFILE_HIGH_422 with constraint_set1_flag = 0 and
constraint_set3_flag = 1 can be mapped to high-4:2:2, high-4:4:4,
high-4:2:2-intra or high-4:4:4-intra.
2019-12-18 03:03:40 +00:00
Olivier Crête
1f766a7145
Revert "videoparseutils: support two new EIA 608 closed caption formats"
...
This reverts commit f5c1c90122
.
2019-12-17 16:44:10 -05:00
Olivier Crête
fad9096647
Revert "ccextractor: support new CEA 608 formats"
...
This reverts commit 80dd7b2d3d
.
2019-12-17 16:43:54 -05:00
Aaron Boxer
80dd7b2d3d
ccextractor: support new CEA 608 formats
2019-12-17 18:26:35 +00:00
Aaron Boxer
f5c1c90122
videoparseutils: support two new EIA 608 closed caption formats
2019-12-17 18:26:35 +00:00
Wonchul Lee
8e79e53c6e
wlvideoformat: clean up video formats
...
It cleans up videoFormat by combining the wl_shm_formats and
drm_formats into a single table that represents the same format.
In addition, it adds NV61 format to the waylandsink.
2019-12-17 17:12:03 +00:00
Seungha Yang
64eb1d46b5
d3d11window: Always draw to internal window
...
... and use SetParent() WIN32 API when external window is used.
Depending on DXGI swap effect, the external window might not be
reusable by another backend. To preserve the external window's property
and setting, drawing to internal window seems to be safer way.
2019-12-16 22:24:29 +09:00
Seungha Yang
638c6d6931
d3d11window: Always set error reason to GError object
2019-12-16 18:21:02 +09:00