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
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
Seungha Yang
4eac9d0ae6
d3dvideosink: Fix warning for unhandled enum in switch
...
d3dhelpers.c:135:3: warning: enumeration value 'D3DFMT_D32_LOCKABLE' not handled in switch [-Wswitch]
2019-12-05 04:31:54 +00:00
Aaron Boxer
d3426cf15b
d3dvideosink: use parent buffer pool to release buffers
...
In certain cases, the sink's buffer pool will not call the parent's
release_buffer method, so the pool does not clean up properly
after the buffer is released.
2019-12-04 23:00:35 +00:00
Aaron Boxer
86b01bb291
d3dvideosink: support OverlayComposition for GPU overlay compositing
2019-11-06 01:05:33 +00:00
Aaron Boxer
6d3429af34
documentation: fixed a heap o' typos
2019-11-05 09:11:25 -05:00
Seungha Yang
736df5604f
d3dvideosink: Fix crash on WinProc handler
...
... caused by null pointer dereference. The d3dvideosink object might
not available yet on the handler.
2019-08-15 17:55:29 +09:00
Aaron Boxer
68ae46ae14
d3dhelpers.c: fix typo in debug output
2019-01-30 11:27:42 -05:00
Nirbheek Chauhan
09f814a00a
d3dvideosink: Remove unused variable
...
Fixes a compiler warning.
2018-11-13 09:55:56 +05:30
Seungha Yang
f4dc780168
d3dvideosink: Fix calculating buffer size of packed format
...
The Pitch (i.e., stride) of D3DLOCKED_RECT structure is already
respecting required stride value.
2018-11-06 11:51:39 +00:00
Seungha Yang
6c6d351665
d3dvideosink: Set actual buffer size to buffer pool
...
If configured size of buffer pool and actual buffer size are mismatched,
pool will do unwanted buffer resize.
Fixes #801
2018-11-06 11:51:39 +00:00
Seungha Yang
dee5201392
d3dvideosink: Use lock/cond to wait internal window construction
...
We can save one (or possibly more) sleep time by using lock/cond
2018-11-06 11:51:39 +00:00
Seungha Yang
b3279c3fce
d3dvideosink: Don't leak GThread object
...
Need to call g_thread_join() to avoid leak
2018-11-06 11:51:39 +00:00
Seungha Yang
2a3207bfc1
d3dvideosink: Remove white space
2018-11-06 11:51:39 +00:00
Sebastian Dröge
634cd87c76
gst: Clear floating flag in constructor of all GstObject subclasses that are not owned by any parent
...
https://bugzilla.gnome.org/show_bug.cgi?id=743062
2017-05-17 10:40:23 +03:00
Thibault Saunier
78022a6e0c
docs: Port all docstring to gtk-doc markdown
2017-04-12 12:57:57 -03:00
Scott D Phillips
c7ee3b5d5f
Remove 'return' from void
functions
...
https://bugzilla.gnome.org/show_bug.cgi?id=774293
2016-11-12 10:53:02 +02:00
Sebastian Dröge
dea792292e
d3dvideosink: Replace some more gst_caps_to_string() with GST_PTR_FORMAT
...
https://bugzilla.gnome.org/show_bug.cgi?id=768146
2016-06-28 19:27:09 +03:00
Sebastian Dröge
d8b1efe13a
d3dvideosink: Don't try to recreate swapchain while the window is minimized
...
It will fail and cause the sink to crash. Instead wait until the window is
visible again before checking if the swapchain really has to be recreated.
https://bugzilla.gnome.org/show_bug.cgi?id=741608
2015-11-30 19:53:28 +02:00
Fabio Cetrini
79f57e62dc
d3dvideosink: Avoid frame rendering while the window is completely hidden
...
https://bugzilla.gnome.org/show_bug.cgi?id=749856
2015-06-10 15:03:31 +02:00
Roman Nowicki
29098129be
d3dvideosink: release existing D3D swap chain on init
...
https://bugzilla.gnome.org/show_bug.cgi?id=745159
2015-02-25 16:19:57 +02:00
Sebastian Dröge
e36c27cd46
d3dvideosink: Don't initialize the render window swap chain while the device is lost and we're waiting for reset
...
https://bugzilla.gnome.org/show_bug.cgi?id=744615
2015-02-24 11:19:48 +02:00
Sebastian Dröge
d1d31dae6d
d3dvideosink: Deactivate the fallback pool and unref the fallback buffer when resetting
...
Otherwise we will still have a reference to the surface left, which would
prevent activating the sink again later. E.g. after we lost the device.
Hopefully fixes https://bugzilla.gnome.org/show_bug.cgi?id=744615
2015-02-18 12:45:22 +02:00
Sebastian Dröge
4ec87d9690
d3dvideosink: Open Direct3D devices in a threadsafe way
...
Otherwise we'll get crashes when using the device from multiple
threads, e.g. when using multiple sinks at once.
https://bugzilla.gnome.org/show_bug.cgi?id=707523
2014-07-15 13:30:16 +02:00
Sebastian Dröge
c134930dbe
d3dvideosink: Always lock the D3D surfaces in write mode
...
Locking them in readonly mode can give different stride to mapping
in write mode, which then causes rendering to be broken.
Happened on all (many?) NVIDIA GPUs.
Thanks to voskater15@gmail.com for hinting at the problem.
https://bugzilla.gnome.org/show_bug.cgi?id=712809
2014-07-03 19:10:26 +02:00
Sebastian Dröge
73c40a3132
d3dhelpers: Swap UV planes properly for YV12 as compared to I420
...
If we only do it in one place colors will look funny.
2014-07-03 19:06:26 +02:00
Sebastian Dröge
25974ac0a9
d3dvideosink: Don't leak all surfaces
...
This was broken when disabling the buffer pool exporting.
Also disable buffer pool a bit more efficient...
2014-07-02 10:33:15 +02:00
Sebastian Dröge
28d250ec3f
d3dvideosink: PostMessage() takes integers as last parameters, not pointers
2014-07-02 10:33:15 +02:00
Sebastian Dröge
677608bfb7
d3dvideosink: Remove unused variable
2014-07-02 10:33:15 +02:00
Eric Trousset
f54efc206f
d3dvideosink: Release D3D surfaces when shutting down the sink
...
https://bugzilla.gnome.org/show_bug.cgi?id=726026
2014-06-23 20:44:23 +02:00
Tim-Philipp Müller
3f1eb8ee71
d3dvideosink: post proper error message when window disappears
2014-04-08 17:52:12 +01:00
Sebastian Dröge
c84278ae04
d3dvideosink: Only pass a dest rectangle if set, otherwise pass NULL
...
Call with an uninitialized rectangle will cause errors.
https://bugzilla.gnome.org/show_bug.cgi?id=714998
2014-04-02 23:10:01 +02:00
Alexey Chernov
d96999328a
d3dvideosink: First destroy the window, then unregister the class
...
It's impossible to create another pipeline with d3dvideosink after disposing
the previous one due to some problem in d3dvideosink. The message is: "Unable
to register Direct3D hidden window class".
I've evaluated the problem and it's that UnregisterClass() in working thread is
called before DestroyWindow() and UnregisterClass() does nothing.
https://bugzilla.gnome.org/show_bug.cgi?id=722622
2014-01-21 09:45:07 +01:00
Andoni Morales Alastruey
ef7a8c2ca8
d3dvideosink: disable buffer pools
...
On a device lost, all the surfaces allocated in the
device need to be released before resetting the device,
which can't be done for the allocated buffers.
https://bugzilla.gnome.org/show_bug.cgi?id=706566
2013-09-02 18:21:11 +02:00
Andoni Morales Alastruey
7f18295321
d3dvideosink: use bilinear filter as much as possible
...
Use the bilinear scalling filter when the magnifier or the minifier
filters are avaible. Some graphics cards do not provide minifier filters
but we want to use it for upscalling if it's available
https://bugzilla.gnome.org/show_bug.cgi?id=697176
2013-04-04 11:39:45 +02:00
Sebastian Dröge
42965f5aa0
d3dvideosink: Make sure that all buffers in our pool contain our own memory
2013-03-27 09:09:59 +01:00
Sebastian Dröge
ff30417bd9
d3dvideosink: Add support for crop meta
2013-03-26 14:27:43 +01:00
Sebastian Dröge
81304a7956
d3dvideosink: Implement a buffer pool that shares D3D surfaces with upstream
2013-03-26 13:39:46 +01:00
Sebastian Dröge
abede65bbc
d3dvideosink: Allocate a new offscreen surface for every buffer
...
This is a preparation for implementing a buffer pool.
2013-03-26 13:39:46 +01:00