Seungha Yang
7ab51e85ab
wasapi: Fix possible deadlock while downwards state change
...
IAudioClient::Stop() doesn't seem to wake up the event handle,
then read() or write() could be blocked forever by WaitForSingleObject.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1329 >
2020-06-11 11:40:26 +00:00
Thibault Saunier
3e507dc073
docs: Update plugins cache
2020-06-10 10:40:56 -04:00
Haihua Hu
d77de13ca6
waylandsink: add wl_registry.global_remove listener
...
when hotplug display, wayland client will call this listener
to notify client do clean up. Temporarily set a dummy function
here to avoid app abort
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1327 >
2020-06-09 19:54:24 +00:00
Thibault Saunier
ebababae03
srt: doc: Add missing gst_type_mark_as_plugin_api
2020-06-09 12:28:13 -04:00
Thibault Saunier
af26b95c29
docs: Mark lv2 runtime generated enums as plugins API types
2020-06-09 12:28:13 -04:00
Thibault Saunier
60fba5f380
docs: Add some more plugin API types
...
And allow creating vulkan device object without specifying an instance
so it can be introspected.
2020-06-09 12:28:13 -04:00
Thibault Saunier
3a98a37375
docs: Update plugins cache
2020-06-09 12:28:13 -04:00
Nicolas Dufresne
483539f45c
v4l2slh264dec: Fix reading mode and start code type
...
These two controls are not pointer based, so we don't need to pass any size or
pointer and need to copy the values afterward. This fixes H264 decoding
regression with Hantro and RKVDEC drivers.
Fixes 037730a787
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1330 >
2020-06-09 10:52:44 -04:00
Seungha Yang
52a82f5b84
mftransform: Fix deadlock when MFT requests processing output twice
...
This sequence of event/data flow might happen
1) Initially we have one pending output event
1-1) Then, process the pending output data
2) No pending input event, then we should wait new pending input event
2-1) Wakeup by new pending event (but it's pending output event)
In above case, MFT will not report new pending input event
if pending output is not processed.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1325 >
2020-06-08 23:46:43 +09:00
Seungha Yang
309c679c43
mftransform: Add some debug log
...
Add some trace level log for debugging
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1325 >
2020-06-08 23:42:22 +09:00
Edward Hervey
9a335105f8
adaptivedemux: Handle live duration queries
...
Handle it the same way live sources would, that it by handling the query and
return an unknown duration.
Fixes #566
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1279 >
2020-06-08 08:44:27 +00:00
Seungha Yang
57c8ad1dbc
tests: wasapi2: Add unit test for reusing wasapisrc
...
Test state change between playing and null and playing again
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1264 >
2020-06-08 03:10:05 +00:00
Seungha Yang
a6a4267c7b
wasapi2: Add device provider implementation
...
Similar to device provider implementation of wasapi plugin,
this implementation supports only static probing.
But we can implement runtime device add/remove/update
monitoring using DeviceWatcher interface later.
See https://docs.microsoft.com/en-us/uwp/api/windows.devices.enumeration.devicewatcher
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1264 >
2020-06-08 03:10:05 +00:00
Seungha Yang
2778457678
wasapi2: Introduce new WASAPI plugin
...
Add a new wasapi implementation mainly to support UWP application.
Basically the core logic of this plugin is almost identical to
existing wasapi plugin, but main target is Windows 10 (+ UWP).
Since this plugin uses WinRT APIs, this plugin most likely might not
work Windows 8 or lower.
Compared with existing wasapi plugin, additional features of this plugin are
* Fully compatible with both Windows 10 desktop and UWP application
* Supports automatic stream routing (auto fallback when device was removed)
* Support device level mute/volume control
But some features of existing wasapi plugin are not implemented
in this plugin yet
* Exclusive streaming mode is not supported
* Loopback feature is not implemented
* Cross-compile is not possible with current mingw toolchain
(meaning that MSVC and Windows 10 SDK are required to build this plugin)
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1264 >
2020-06-08 03:10:05 +00:00
Seungha Yang
0f74785b8e
mfvideoenc: Set PAR to output IMFMediaType
...
We've set it to input IMFMediaType but not for output.
So, if PAR is not 1:1, the input IMFMediaType will be accepted
by MFT (default is 1:1).
The PAR of input/output IMFMediaType must be identical
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1322 >
2020-06-06 21:19:48 +09:00
Seungha Yang
cec6858401
mftransform: Don't try to drain if MFT is not running
...
Otherwise MFT will be blocked forever as no event can be generated by
IMFMediaEventGenerator.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1322 >
2020-06-06 21:03:05 +09:00
Mathieu Duponchelle
a048ce81d4
plugins: uddate gst_type_mark_as_plugin_api() calls
2020-06-06 00:40:42 +02:00
Seungha Yang
a38ac7a865
d3d11overlaycompositor: Fix wrong Y position calculation
...
The Y coordinate of vertex and screen/image are opposite
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1319 >
2020-06-05 13:47:49 +00:00
cketti
2408fbe92d
curlsmtpsink: Use correct email date format
...
See https://www.rfc-editor.org/rfc/rfc5322.html#section-3.3
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1317 >
2020-06-05 08:22:34 +00:00
Matthew Waters
8396e16f85
ccconverter: signal cea608 padding as invalid
...
Outputting a valid but null cea608 byte pair may cause some issues with
some checksum packets.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1318 >
2020-06-05 07:36:22 +00:00
Matthew Waters
bfd03537f0
ccconverter: also copy buffer metadata when draining
...
Fixes buffers without PTS/DTS/meta/etc when receiving an EOS with data
still stored in the internal scratch buffer.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1318 >
2020-06-05 07:36:22 +00:00
Matthew Waters
00bbaff371
ccconverter: Output the limit hit in debug lines
...
Fix two case of the input triplet limit not applying in cea608 -> cdp
conversion.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1318 >
2020-06-05 07:36:22 +00:00
Thibault Saunier
a7c8e5a010
doc: Require hotdoc >= 0.11.0
2020-06-04 13:33:16 -04:00
Thibault Saunier
d9ffa3b3b2
doc: Fix spelling of GstWebRTCICE
2020-06-04 13:33:16 -04:00
Sebastian Dröge
01bbcb3642
docs: Update gst_plugins_cache.json
2020-06-04 13:33:16 -04:00
Sebastian Dröge
a5b1e1e96d
clockselect: Don't register GstClockSelectClockId multiple times
2020-06-04 13:33:16 -04:00
Sebastian Dröge
74f2f733be
plugins: Use gst_type_mark_as_plugin_api() for all non-element plugin types
2020-06-04 13:33:16 -04:00
Peter Workman
b98712c44a
srtobject: continue polling or report error on failed receive
...
fixes #1277
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1260 >
2020-06-03 09:31:42 +00:00
Seungha Yang
c4a2fd7683
d3dvideosink: Use secondary rank
...
d3dvideosink will be replaced by d3d11videosink
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1311 >
2020-06-03 17:57:40 +09:00
Seungha Yang
116d7453cb
d3d11videosink: Assign primary rank
...
d3d11videosink has an advantage over d3dvideosink, such as
* Zero-copy playback with d3d11 decoders
* HDR rendering with 10-bit format/swapchain support
* UWP support
* Any system memory alignment/padding can be supported
* User can select target GPU device
And old d3dvideosink's functionality (e.g., navigation event, overlaycomposition)
can be covered by d3d11videosink
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1311 >
2020-06-03 17:57:41 +09:00
Sebastian Dröge
ab82893941
webrtc: Add Since: 1.18
markers to the new datachannel library API
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1315 >
2020-06-03 10:32:00 +03:00
Jan Alexander Steffens (heftig)
a1bc9d4319
srt: Make logging regarding callers more useful
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1273 >
2020-06-03 04:23:14 +00:00
Sebastian Dröge
b25d153c34
webrtc: Add GstWebRTCDataChannel to the library API
...
This makes it more discoverable for bindings and allows bindings to
generate static API for the signals and functions.
Fixes https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/issues/1168
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1313 >
2020-06-02 21:04:37 +00:00
Matthew Waters
a4d900332b
vulkanimagememory: fix use-after-free releasing a view
...
If the view has the last reference to the image, then
gst_clear_mini_object will destroy the image and the lock used in the
next line.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1314 >
2020-06-02 13:58:13 +10:00
Matthew Waters
dd44bc3a2d
vkimagememory: actually check the length of a ptr array
...
Not it's value is > 0 which should always be true.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1314 >
2020-06-02 13:58:13 +10:00
Ederson de Souza
bafdade207
avtp: Ensure that the avtp plugin is only built on Linux
...
It uses some Linux only features. This also prevents gst-build trying to
get libavtp on non-Linux environments.
2020-06-01 11:37:16 -07:00
Ederson de Souza
6caea9e19b
tests/avtp: Plug some (more) leaks
...
Some leaks were introduced in new tests - this patch fix them.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1312 >
2020-06-01 18:03:19 +00:00
Haihao Xiang
f685893ed2
msdkh265enc: add support 12-bit 420 encoding
...
P016 is used for 12-bit encoding in MediaSDK, so the Shift flag is set
in the mfx parameters
Sample pipeline:
gst-launch-1.0 videotestsrc ! video/x-raw,format=P012_LE ! msdkh265enc ! \
fakesink
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1174 >
2020-06-01 05:04:30 +00:00
Xu Guangxin
52be289847
msdkvpp: fix "failed to create new MSDK memory"
...
all msdk output surfaces come from out_alloc_resp, so the buffer count is not resizable.
we need set min_buffers, max_buffers to same size.
steps to reproduce
1. ffmpeg -f lavfi -i testsrc=duration=10:size=320x240:rate=30:decimals=3 -pix_fmt yuv420p -c:v libx265 ~/bits/hevc/test.265
2. GST_GL_PLATFORM=egl gst-launch-1.0 -v filesrc location=~/bits/hevc/test.265 ! h265parse ! msdkh265dec ! msdkvpp ! queue ! glimagesink
you will see error like this:
ERROR default gstmsdkvideomemory.c:77:gst_msdk_video_allocator_get_surface: failed to get surface available
ERROR msdkbufferpool gstmsdkbufferpool.c:270:gst_msdk_buffer_pool_alloc_buffer:<msdkbufferpool2> failed to create new MSDK memory
ERROR msdkvpp gstmsdkvpp.c:297:create_output_buffer:<msdkvpp0> failed to create output video buffer
ERROR msdkdec gstmsdkdec.c:699:gst_msdkdec_finish_task:<msdkh265dec0> Failed to finish frame
ERROR msdkdec gstmsdkdec.c:1085:gst_msdkdec_handle_frame:<msdkh265dec0> Failed to finish a task
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1278 >
2020-06-01 02:09:04 +00:00
Xu Guangxin
275518f661
msdkvpp: hold GstBuffer ref count for locked surfaces
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1278 >
2020-06-01 02:09:04 +00:00
Seungha Yang
12532cc8bb
mediafoundation: Use core dispatcher of current view instead of main view
...
Main view might be hidden depending on application's view tree.
In that case, ICoreApplication object doesn't return get_MainView() method
Note that nothing about this behavior was documented by Microsoft
https://docs.microsoft.com/en-us/uwp/api/windows.applicationmodel.core.coreapplication.mainview
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1310 >
2020-05-29 23:01:08 +09:00
Tim-Philipp Müller
00caf46e3f
vulkan: fix use of assert() with older meson versions
...
Follow-up to !1307
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1308 >
2020-05-28 22:50:00 +01:00
Tim-Philipp Müller
b75ad03313
vulkan: don't run tests or build lib if plugin isn't actually built
...
The unit tests only checked for vulkan_dep.found(), which can
be true if the libs are there but glslc was not found, in which
case the plugin wouldn't be built and the unit tests would fail
because of missing vulkan plugins.
Doesn't really make much sense to build the vulkan integration lib
either if we're not going to build the vulkan plugin, so just disable
both for now if glslc is not available.
Fixes #1301
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1307 >
2020-05-28 19:07:32 +01:00
Jan Alexander Steffens (heftig)
aad9cf8096
mpegtsdemux: tests: Test that tsparse doesn't drop padding
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1300 >
2020-05-28 16:41:30 +00:00
Jan Alexander Steffens (heftig)
23a2916afd
mpegtsdemux: Deliver all packets to tsparse
...
34af8ed66a
changed the code to use the
packetizer's packets instead of the incoming buffers, but mpegtsbase
didn't actually push all packets to the subclass. As a result, padding
(PID 0x1FFF) packets got lost.
Add a new boolean to toggle pushing unknown packets to mpegtsbase and
have mpegtsparse make use of it.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1300 >
2020-05-28 16:41:30 +00:00
Seungha Yang
2dc689c2c8
mediafoundation: Fix undeclared identifier error on UWP build
...
Some symbols are not available in case of UWP
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1306 >
2020-05-28 12:04:43 +00:00
Jan Schmidt
737cfc40de
avtp: Initialise strack structures to 0 in tests
...
Avoid valgrind warnings about accessing uninitialised memory
in the tests by initialisting structures to 0
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1305 >
2020-05-28 10:58:02 +00:00
Jan Schmidt
0e578b1096
avtp: Fix some leaks in the tests
...
Fix valgrind errors that area showing on the CI now
that AVTP elements are built.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1305 >
2020-05-28 10:58:02 +00:00
Matthew Waters
67ae885d4c
webrtc: handle an ice-lite remote offer
...
When the remote peer offers an ice-lite SDP, we need to configure our
ICE negotiation to be in controlling mode as the peer will not be.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1304 >
2020-05-28 19:57:45 +10:00
Stéphane Cerveau
06f3a0ed2c
codecparsers: fix typo in GstH265RegisteredUserData doc
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1303 >
2020-05-27 22:43:39 +00:00