Stéphane Cerveau
add7878e14
bad: use of g_value_dup_string
...
Use helper method to get string from GValue.
2019-12-30 14:13:03 +00:00
Sebastian Dröge
e59962850a
dtlsenc: Don't warn on GST_FLOW_FLUSHING or GST_FLOW_EOS
...
Only warn if pushing a buffer returns an actual error to not pollute
logs with confusing warnings.
2019-12-30 11:09:46 +00:00
Sebastian Dröge
0dc783d719
timecodestamper: Refactor LTC audio waiting and properly handle live inputs
...
If one of the inputs is live, add a latency of 2 frames to the video
stream and wait on the clock for that much time to pass to allow for the
LTC audio to be ahead.
In case of live LTC, don't do any waiting but only ensure that we don't
overflow the LTC queue.
Also in non-live LTC audio mode, flush too old items from the LTC queue
if the video is actually ahead instead of potentially waiting forever.
This could've happened if there was a bigger gap in the video stream.
2019-12-30 09:36:23 +00:00
Seungha Yang
85233eb968
tests: Add simple d3d11colorconvert unit test
2019-12-28 05:43:44 +00:00
Seungha Yang
81dde0f5b8
d3d11: Aggregate d3d11 memory usage query for dynamic-usage type decision
...
Even if one of downstream d3d11 elements can support dynamic-usage memory,
another one might not support it. Also, to support dynamic-usage,
both upstream and downstream d3d11device must be the same object.
2019-12-28 05:43:44 +00:00
Seungha Yang
d731bcb18a
d3d11colorconvert: Remove device type dependent behavior
...
If d3d11colorconvert element is configured, do color space conversion
regardless of the device type whether it's S/W emulation or real H/W.
Since d3d11colorconvert is no more a child of d3d11videosinkbin,
we don't need this behavior. Note that previous code was added to
avoid color space conversion from d3d11videosink if no hardware
device is available (S/W emulation of d3d11 is too slow).
2019-12-28 05:43:44 +00:00
Seungha Yang
46186356ca
d3d11colorconverter: Fix unmatched lock/unlock pair
2019-12-28 05:43:44 +00:00
Seungha Yang
ab80c771df
d3d11upload: Don't hard overwrite caps features to support d3d11 memory passthrough
...
d3d11upload should be able to support upstream d3d11 memory, not only system memory.
Fix for following pipeline
d3d11upload ! "video/x-raw(memory:D3D11Memory)" ! d3d11videosink
2019-12-28 05:43:44 +00:00
Nicola Murino
a2cfd93891
opencv: allow compilation against 4.2.x
2019-12-26 22:43:35 +01:00
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