Commit graph

132 commits

Author SHA1 Message Date
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
f53bc227a8 d3dvideosink: Deactivate the fallback buffer pool when replacing it during caps changes
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
Sebastian Dröge
e51cd4fe2f gst: Add better support for static plugins 2013-04-15 15:59:22 +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
Sebastian Dröge
996e8912f2 d3dvideosink: Add compatibility #defines for older mingw headers
These were removed recently but these mingw headers are still
out there.
2012-12-27 14:09:51 +01:00
Sebastian Dröge
85690b802d d3dvideosink: Remove scary "while (object.refcount > 0) release (object);" code
If there is a memory leak, this isn't the way how it should be fixed.
2012-12-22 18:43:37 +01:00
Sebastian Dröge
038cf9eba0 d3dvideosink: Don't forget to return a value from ::propose_allocation() 2012-12-22 18:17:45 +01:00
Sebastian Dröge
53b2cdf335 d3dvideosink: Add support for the video meta 2012-12-22 18:17:04 +01:00
Sebastian Dröge
0642f3a143 d3dvideosink: Don't use "class" as variable name and don't use C99 comments 2012-12-22 18:13:48 +01:00
Sebastian Dröge
23265c8428 d3dvideosink: Only open system resources in in NULL->READY, not on object instantiation 2012-12-22 18:04:42 +01:00
Sebastian Dröge
827655ffb4 d3dvideosink: Properly copy frames to D3D with the right strides and everything
And only support color formats that are actually supported by the driver,
this allows proper zero-copy handling later and simplifies the code a lot.

Also simplify some other places, like the format mapping code.
2012-12-22 17:57:41 +01:00
Sebastian Dröge
c6763c2bbb d3dvideosink: Remove non-sense display PAR handling
This has to be implemented properly at some point
2012-12-22 16:26:52 +01:00
Sebastian Dröge
020da4c577 d3dvideosink: Fix caps leak 2012-12-22 16:20:13 +01:00
Sebastian Dröge
41e58ecf5f d3dvideosink: Fix duplicated format entry in the template caps 2012-12-22 12:09:30 +01:00
Sebastian Dröge
29b677fe9b d3dvideosink: Fix linking 2012-12-22 12:05:14 +01:00
Sebastian Dröge
de8f436b21 d3dvideosink: Fix some more compiler warnings 2012-12-22 11:58:21 +01:00
Sebastian Dröge
7e8c531621 d3dvideosink: Port remaining bits to new GLib threading API 2012-12-22 11:50:08 +01:00
Sebastian Dröge
4f28e50540 d3dvideosink: And remove the right declaration 2012-12-22 11:45:27 +01:00
Sebastian Dröge
52a62d73b1 d3dvideosink: Remove unused static declaration 2012-12-22 11:44:32 +01:00
Sebastian Dröge
345b5f0eb8 d3dvideosink: Remove unused variables 2012-12-22 11:43:21 +01:00
Sebastian Dröge
d2d19eb1e6 d3dvideosink: Update to new GLib threading API 2012-12-22 11:42:52 +01:00
Sebastian Dröge
9838e3748c d3dvideosink: Rename keep_aspect_ratio to force_aspect_ratio in the header too 2012-12-22 11:38:28 +01:00
Sebastian Dröge
5f3eefb611 d3dvideosink: Use G_PARAM_STATIC_STRINGS 2012-12-22 11:35:55 +01:00
Sebastian Dröge
872dc5feb6 d3dvideosink: Rename keep-aspect-ratio to force-aspect-ratio and default to TRUE
For consistency with other video sinks.
2012-12-22 11:34:43 +01:00
Sebastian Dröge
5ea516d735 d3dvideosink: Add files that had to be included in the last commit 2012-12-22 11:30:08 +01:00
Sebastian Dröge
479a54d18b d3dvideosink: Add $(GST_PLUGINS_BASE_CFLAGS) to CFLAGS 2012-12-22 11:28:19 +01:00
Roland Krikava
fe5f514049 d3dvideosink: Various improvements
* XOverlay set_render_rectangle support (Useful for rendering in QT QML)
* Video format negotiation (with preference ordering)
* Using Direct3D9 (No benefit to using newer D3D versions)
2012-12-22 11:24:28 +01:00
Sebastian Dröge
c636b45c9a d3dvideosink: Only include formats that are actually working 2012-12-21 16:11:49 +01:00
Sebastian Dröge
2b2112e6be d3dvideosink: Add the actually supported color formats to the template caps 2012-12-21 15:23:42 +01:00
Michael Esemplare
09512c5db1 d3dvideosink: fix compiler and linker flags
https://bugzilla.gnome.org/show_bug.cgi?id=690031
2012-12-11 20:58:42 +00:00
Andoni Morales Alastruey
689cef0fc7 d3dvideosink: fix redefinition of DECLARE_INTERFACE_IID
https://bugzilla.gnome.org/show_bug.cgi?id=688510
2012-11-20 11:10:25 +00:00
Tim-Philipp Müller
9e1b75fda3 Fix FSF address
https://bugzilla.gnome.org/show_bug.cgi?id=687520
2012-11-04 00:09:59 +00:00
Mark Nauwelaerts
4a843dbbac d3dvideosink: port to the new GLib thread API 2012-09-11 15:12:55 +02:00
Andoni Morales Alastruey
a55786274d d3dvideosink: avoid duplicated symbols in static links
Rename the DLL entry point the avoid duplicated symbols in static
links.
2012-08-07 19:04:01 +02:00
Andoni Morales Alastruey
beea4bd161 d3dvideosink: avoid duplicated symbols in static links
Rename the DLL entry point the avoid duplicated symbols in static
links.
2012-08-06 14:37:36 +02:00
Tim-Philipp Müller
4f6b3b7bbd sys: make video sinks default to force-aspect-ratio=true 2012-06-29 12:03:51 +01:00
Andoni Morales Alastruey
ad5b76a58d d3dvideosink: release the offscreen surface before the d3d device
The offscreen surface keeps a reference on the d3d device, so if the
device is released first we don't see the reference count debug message
going to 0 as it should be.
2012-06-26 09:40:29 +02:00
Andoni Morales Alastruey
53988c9a43 d3dvideosink: clean up element
Remove old commented code and uneeded extra indentation
2012-06-26 09:40:29 +02:00
Andoni Morales Alastruey
e1651e9b65 d3dvideosink: rework locking for devices lost 2012-06-26 09:39:36 +02:00
Andoni Morales Alastruey
bd68bd61da d3dvideosink: release and recreate the device in prepare_window 2012-06-26 09:39:36 +02:00
Andoni Morales Alastruey
830e8b6ec6 d3dvideosink: don't recreate the d3d device if it already exists 2012-06-15 14:09:39 +02:00
Andoni Morales Alastruey
39e0bf5260 d3dvideosink: don't create new internal windows if we already have one 2012-06-15 10:17:03 +02:00
Andoni Morales Alastruey
78caa53345 d3dvideosink: don't flush after a device lost 2012-05-31 11:09:16 +02:00
Руслан Ижбулатов
83123a98ae Port d3dvideosink to 0.11
Fixes #674817
2012-05-23 15:31:06 +02:00
Andoni Morales Alastruey
171321c5eb d3dvideosink: fix deadlock when the device is lost 2012-05-09 10:38:33 +02:00
Andoni Morales Alastruey
ade676879a d3dvideosink: remove trailing ';' from locks defines to make gst-indent happy 2012-05-09 09:50:57 +02:00
Sebastian Dröge
cda192b3b7 gst: Update for GST_PLUGIN_DEFINE() API changes 2012-04-05 18:02:56 +02:00
Sebastian Dröge
1318a97e0a gst: Update versioning 2012-04-04 14:44:34 +02:00
Sebastian Dröge
860ccd414d Merge remote-tracking branch 'origin/0.10'
Conflicts:
	NEWS
	RELEASE
	common
	configure.ac
	docs/libs/gst-plugins-bad-libs-sections.txt
	docs/plugins/gst-plugins-bad-plugins.args
	docs/plugins/gst-plugins-bad-plugins.hierarchy
	docs/plugins/gst-plugins-bad-plugins.interfaces
	docs/plugins/inspect/plugin-adpcmdec.xml
	docs/plugins/inspect/plugin-adpcmenc.xml
	docs/plugins/inspect/plugin-assrender.xml
	docs/plugins/inspect/plugin-audiovisualizers.xml
	docs/plugins/inspect/plugin-autoconvert.xml
	docs/plugins/inspect/plugin-bayer.xml
	docs/plugins/inspect/plugin-bz2.xml
	docs/plugins/inspect/plugin-camerabin2.xml
	docs/plugins/inspect/plugin-celt.xml
	docs/plugins/inspect/plugin-dataurisrc.xml
	docs/plugins/inspect/plugin-debugutilsbad.xml
	docs/plugins/inspect/plugin-dtmf.xml
	docs/plugins/inspect/plugin-dtsdec.xml
	docs/plugins/inspect/plugin-dvbsuboverlay.xml
	docs/plugins/inspect/plugin-dvdspu.xml
	docs/plugins/inspect/plugin-faac.xml
	docs/plugins/inspect/plugin-faad.xml
	docs/plugins/inspect/plugin-gsm.xml
	docs/plugins/inspect/plugin-h264parse.xml
	docs/plugins/inspect/plugin-mms.xml
	docs/plugins/inspect/plugin-modplug.xml
	docs/plugins/inspect/plugin-mpeg2enc.xml
	docs/plugins/inspect/plugin-mpegdemux2.xml
	docs/plugins/inspect/plugin-mpegtsdemux.xml
	docs/plugins/inspect/plugin-mpegvideoparse.xml
	docs/plugins/inspect/plugin-mplex.xml
	docs/plugins/inspect/plugin-pcapparse.xml
	docs/plugins/inspect/plugin-rawparse.xml
	docs/plugins/inspect/plugin-rtpmux.xml
	docs/plugins/inspect/plugin-rtpvp8.xml
	docs/plugins/inspect/plugin-scaletempo.xml
	docs/plugins/inspect/plugin-schro.xml
	docs/plugins/inspect/plugin-sdp.xml
	docs/plugins/inspect/plugin-segmentclip.xml
	docs/plugins/inspect/plugin-shm.xml
	docs/plugins/inspect/plugin-videomaxrate.xml
	docs/plugins/inspect/plugin-videoparsersbad.xml
	docs/plugins/inspect/plugin-vp8.xml
	docs/plugins/inspect/plugin-y4mdec.xml
	ext/celt/gstceltdec.c
	ext/dts/gstdtsdec.c
	ext/modplug/gstmodplug.cc
	ext/opus/gstopusenc.c
	gst-libs/gst/video/gstbasevideocodec.c
	gst-libs/gst/video/gstbasevideocodec.h
	gst-libs/gst/video/gstbasevideodecoder.c
	gst-libs/gst/video/gstbasevideodecoder.h
	gst-libs/gst/video/gstbasevideoencoder.c
	gst-libs/gst/video/gstbasevideoencoder.h
	gst/adpcmdec/Makefile.am
	gst/audiovisualizers/gstbaseaudiovisualizer.c
	gst/h264parse/gsth264parse.c
	gst/mpegdemux/mpegtsparse.c
	gst/mpegtsdemux/mpegtsbase.c
	gst/mpegtsdemux/mpegtspacketizer.c
	gst/mpegtsdemux/mpegtsparse.c
	gst/mpegtsdemux/tsdemux.c
	gst/mpegtsdemux/tsdemux.h
	gst/mxf/mxfdemux.c
	gst/rawparse/gstaudioparse.c
	gst/videoparsers/gsth263parse.c
	gst/videoparsers/gsth264parse.c
	sys/d3dvideosink/d3dvideosink.c
	sys/decklink/gstdecklinksink.cpp
	sys/dvb/gstdvbsrc.c
	sys/shm/gstshmsrc.c
	sys/vdpau/h264/gstvdph264dec.c
	sys/vdpau/mpeg/gstvdpmpegdec.c
	tests/examples/opencv/gst_element_print_properties.c
	win32/common/config.h
2012-03-29 17:41:53 +02:00
Carsten Kroll
6f3ea8e67b d3dvideosink: fix regression setting window handle in pause/play
https://bugzilla.gnome.org/show_bug.cgi?id=656905
2012-03-18 00:29:22 +00:00
Wim Taymans
c3c985cfe1 fix for caps _normalize changes 2012-03-12 12:23:34 +01:00
Руслан Ижбулатов
740c3101ac d3dvideosink: fix compiler warnings and build failure with mingw
shared.d3ddev was removed a while back, not sure how this still
compiles for anyone (tpm).

https://bugzilla.gnome.org/show_bug.cgi?id=653718
https://bugzilla.gnome.org/show_bug.cgi?id=670143
https://bugzilla.gnome.org/show_bug.cgi?id=656905
2012-03-03 17:47:26 +00:00
Andoni Morales Alastruey
4b48c43b31 d3dvideosink: add missing directx headers 2012-03-02 15:42:29 +01:00
Wim Taymans
1119f6ee41 Merge branch 'master' into 0.11
Conflicts:
	ext/chromaprint/gstchromaprint.c
	ext/mpeg2enc/Makefile.am
	ext/voaacenc/gstvoaacenc.c
	gst/dvbsuboverlay/gstdvbsuboverlay.c
	gst/mpegtsdemux/mpegtsbase.c
	gst/sdp/gstsdpdemux.c
	gst/videoparsers/gsth264parse.c
	sys/d3dvideosink/d3dvideosink.c
	tests/examples/camerabin/gst-camera-perf.c
	tests/examples/camerabin/gst-camerabin-test.c
	tests/examples/camerabin2/gst-camerabin2-test.c
	tests/examples/mxf/mxfdemux-structure.c
	tests/examples/scaletempo/demo-main.c
2012-02-10 16:46:50 +01:00
Wim Taymans
de1f89bf07 GST_FLOW_WRONG_STATE -> GST_FLOW_FLUSHING 2012-02-08 16:37:13 +01:00
Carsten Kroll
0c5037072a d3dvideosink: create a d3d device for each sink and use the default swap chain in connection with flushing the GPU and not recreating the swap chain this avoids tearing also use GST_xx_DEBUG macros where appropriate 2012-02-07 15:35:28 +01:00
Carsten Kroll
ab22a64a13 d3dvideosink: flush GPU before Present added alternate wait for vsync method based on GetRasterStatus 2012-02-07 15:35:10 +01:00
Carsten Kroll
ec603dc326 d3dvideosink: check for hardware capabilities, when negotiating 2012-02-07 15:34:46 +01:00
Carsten Kroll
56193e8f49 d3dvideosink: redraw last buffer when new window handle has been set. 2012-02-07 15:34:41 +01:00
Carsten Kroll
12407a13a0 d3dvideosink: added NV12 + enabled RGB support 2012-02-07 15:33:30 +01:00
Andoni Morales Alastruey
d3b1488fa7 d3dvideosink: Fix device initialization check 2012-02-07 12:37:40 +01:00
Vincent Penquerc'h
7521b597f4 various: fix pad template ref leaks
https://bugzilla.gnome.org/show_bug.cgi?id=662664
2011-11-28 13:08:27 +00:00
Raimo Järvi
59aaf71b0b d3dvideosink: Fix configure check and makefiles
Fixes bug #652035.
2011-06-25 18:08:45 -07:00
Levente Farkas
be87d62fde d3dvideosink: compile fix
Signed-off-by: David Schleef <ds@schleef.org>
2011-06-05 13:41:46 -07:00
David Schleef
655e511a5c d3dvideosink: Add plugin
Fixes #651782.  Patch from various authors, by way of ossbuild.
2011-06-04 19:01:16 -07:00