Matthew Waters [Wed, 1 Jul 2020 09:41:33 +0000 (19:41 +1000)]
ccconverter: fix missing output framerate on the caps
A pipeline like this:
closedcaption/x-cea-708,format=cdp,framerate=30000/1001 ! ccconverter ! closedcaption/x-cea-708,format=cc_data
would produce a critical/assert:
GStreamer-CRITICAL **: 14:21:11.509: gst_util_fraction_multiply: assertion 'a_d != 0' failed
because there would be no framerate field on ccconverter's output.
Fixed by always fixating a framerate if the input has a framerate.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1393>
Jan Alexander Steffens (heftig) [Mon, 29 Jun 2020 18:25:27 +0000 (20:25 +0200)]
rtmp2: Set connect args like libavformat does
To improve our compatibility. Critically, a server might elide data for
codecs we don't advertise.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1384>
Jan Alexander Steffens (heftig) [Mon, 29 Jun 2020 17:47:16 +0000 (19:47 +0200)]
rtmp2: Add support for AGGREGATE messages
They're multiple frames (tags) of FLV data wrapped into a message.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1384>
Jan Alexander Steffens (heftig) [Mon, 29 Jun 2020 17:46:53 +0000 (19:46 +0200)]
rtmp2: Move FLV tag header parsing into rtmputils.c
To be shared with the AGGREGATE handling.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1384>
Jan Alexander Steffens (heftig) [Mon, 29 Jun 2020 18:57:06 +0000 (20:57 +0200)]
rtmp2: Mark our memory singleton as leakable
So it doesn't appear in the leaks tracer.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1384>
Jan Alexander Steffens (heftig) [Mon, 29 Jun 2020 17:46:06 +0000 (19:46 +0200)]
rtmp2: Remove GST_ERROR from rtmputils.c
This file does not have debug logging set up.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1384>
Tim-Philipp Müller [Wed, 1 Jul 2020 11:35:32 +0000 (12:35 +0100)]
avtp: documentation fixes
Unclear why hotdoc wants 'gstavtp' as the plugin name here,
that's just wrong.
Add since marker and mark private subclasses as plugin API
so hotdoc knows they belong to the plugin and aren't external.
Fix GstAvtpAafTstampMode get_type() function.
Tim-Philipp Müller [Wed, 1 Jul 2020 10:17:08 +0000 (11:17 +0100)]
docs: update plugin cache with avtp plugin
CI picks this up now because the wrap was re-added in gst-build.
Seungha Yang [Mon, 29 Jun 2020 21:23:07 +0000 (06:23 +0900)]
codecs: h264decoder: Fix for DPB size calculation
Some bitstreams might require more DPB size than that of what we've
calculated.
This change should've been part of initial commit of h264 stateless
codec implementation but it was missed.
See also https://chromium-review.googlesource.com/c/chromium/src/+/760276/
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1385>
Andreas Frisch [Thu, 25 Jun 2020 14:38:30 +0000 (16:38 +0200)]
mpegtsmux: Correctly set ISO-639 language descriptor
fixes #1340
Only 2 of the necessary 3 letters were copied because the teminating '\0'
needs to be counted, too - cf.
https://developer.gnome.org/glib/stable/glib-String-Utility-Functions.html#g-strlcat
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1375>
Olivier Crête [Tue, 23 Jun 2020 19:35:06 +0000 (15:35 -0400)]
webrtcbin: Expose "latency" property
This property sets the latency both on the rtpbin/rtpjittbuffer, but
also on the RTPStorage elements currently used by the FEC decoder.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1367>
Seungha Yang [Mon, 29 Jun 2020 17:48:50 +0000 (02:48 +0900)]
dxgiscreencapsrc: Add missing debug category init
This should've been addressed in the commit
90420620722d4490ecfb4ade046b95d214f993d9
but I was missed it.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1383>
Víctor Manuel Jáquez Leal [Sun, 14 Jun 2020 18:47:46 +0000 (20:47 +0200)]
codecs: h264picture: use g_array_remove_index_fast()
This algorithm is faster than the normal one. The problem is it
disorders the elements in the dpb, but it does not seem to mess
decoders.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1378>
Michael Olbrich [Sun, 28 Jun 2020 16:54:54 +0000 (18:54 +0200)]
wlvideoformat: fix typo in the format list
DRM_FORMAT_ARGB8888 was actually used twice in the list for different SHM /
Gstreamer formats. In this case DRM_FORMAT_ABGR8888 is the correct format.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1382>
Víctor Manuel Jáquez Leal [Sun, 22 Mar 2020 18:00:50 +0000 (19:00 +0100)]
va: VA-API H.264 decoder and infrastructure
New plugin with an element for H.264 decoding with VA-API. This novel
approach, different from gstreamer-vaapi, uses gstcodecs library for
state handling.
The code is expected to looks cleaner because it uses VA-API without
further layers or wrappers.
* It uses the first supported DRM device as default VA display (other
displays will be supported through user's GstContext)
* Requires libva >= 1.6
* No multiview/stereo profiles neither interlaced streams because
gstcodecs doesn't handle them yet
* It is incompatible with gstreamer-vaapi
* Even if memory:VAMemory is exposed, it is not handled yet by any
other element
* Caps templates are generated dynamically querying VAAPI, but YV12
and I420 are added for system memory caps because they seem to be
supported for all the drivers when downloading frames onto main
memory, as they are used by xvimagesink and others, avoiding color
conversion.
* Surfaces aren't bounded to context, so they can grow beyond the DBP
size, allowing smooth reverse playback.
* There isn't yet error handling and recovery.
* 10-bit H.264 streams aren't supported by libva.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1379>
Víctor Manuel Jáquez Leal [Sat, 27 Jun 2020 11:18:34 +0000 (13:18 +0200)]
codecs: h264decoder: update max_dpb_frames only if VUI is present
There are some streams, with HRD, where the the calculated
max_dpb_frames is zero (max_dpb_mbs is less than size mb). In order to
get the dbp size it is required to rely on the VUI parameters if they
are present.
According to the spec Annex E.2.1
**max_dec_frame_buffering** specifies the required size of the HRD
decoded picture buffer (DPB) in units of frame buffers. It is a
requirement of bitstream conformance that the coded video sequence
shall not require a decoded picture buffer with size of more than
Max(1, max_dec_frame_buffering) frame buffers to enable the output of
decoded pictures at the output times specified by dpb_output_delay of
the picture timing SEI messages. The value of max_dec_frame_buffering
shall be greater than or equal to max_num_ref_frames. An upper bound
for the value of max_dec_frame_buffering is specified by the level
limits in clauses A.3.1, A.3.2, G.10.2.1, and H.10.2.
When the max_dec_frame_buffering syntax element is not present, the
value of max_dec_frame_buffering shall be inferred as follows:
– If profile_idc is equal to 44, 86, 100, 110, 122, or 244 and
constraint_set3_flag is equal to 1, the value of
max_dec_frame_buffering shall be inferred to be equal to 0.
– Otherwise (profile_idc is not equal to 44, 86, 100, 110, 122, or 244
or constraint_set3_flag is equal to 0), the value of
max_dec_frame_buffering shall be inferred to be equal to MaxDpbFrames.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1381>
Sebastian Dröge [Fri, 26 Jun 2020 07:20:04 +0000 (10:20 +0300)]
gstdtlsconnection: Propagate errors from key export to the caller
Otherwise the DTLS connection silently does nothing instead of reporting
an error via the elements.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1156>
Miguel Paris [Wed, 1 Apr 2020 16:08:45 +0000 (18:08 +0200)]
dtlsconnection: do not set keys_exported flag if actually not exported
keys_exported flag should be set only if keys are actually exported.
For that the next conditions are needed:
1 - SSL_export_keying_material on success
2 - SSL_get_selected_srtp_profile returns a valid profile
3 - The profile ID is SRTP_AES128_CM_SHA1_80 or SRTP_AES128_CM_SHA1_32
Also don't crash if NULL is returned as profile.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1156>
Seungha Yang [Thu, 25 Jun 2020 10:41:52 +0000 (19:41 +0900)]
d3d11h265dec: Fix possible invalid memory access
The number of element to copy should be num_tile_columns_minus1
and num_tile_rows_minus1.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1374>
Seungha Yang [Thu, 25 Jun 2020 10:26:45 +0000 (19:26 +0900)]
nvh265sldec: Fix possible invalid memory access
Fix Coverity issues.
CID 1464959, 1464960, 1464961, 1464962
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1374>
Vivia Nikolaidou [Thu, 25 Jun 2020 13:05:39 +0000 (16:05 +0300)]
interlace: Make caps writable before modifying them
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1373>
Sebastian Dröge [Wed, 24 Jun 2020 13:34:20 +0000 (16:34 +0300)]
ccextractor: Push a GAP event if we have a caption pad but a video buffer did not contain any captions
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1371>
Sebastian Dröge [Wed, 24 Jun 2020 10:33:39 +0000 (13:33 +0300)]
ccextractor: Add property to remove caption meta from the outgoing video buffers
This is disabled by default to keep backwards compatibility.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1371>
Seungha Yang [Mon, 15 Jun 2020 19:41:14 +0000 (04:41 +0900)]
d3d11videosink: Disable d3d11videosink depending on supported feature level
Current shader code is not compatible with HLSL profile "ps_4_0_level_9_3"
or lower. So d3dcompiler cannot compile our shader code in that case.
Note that VirtualBox is one known driver which doesn't support currently
implemented shader code.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1343>
Mathieu Duponchelle [Wed, 24 Jun 2020 19:18:15 +0000 (19:18 +0000)]
mxfvanc: document new sink pad template
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1368>
Sebastian Dröge [Tue, 23 Jun 2020 20:40:38 +0000 (23:40 +0300)]
mxfdemux/mux: Add support for CEA-708 CDP from S436 essence tracks
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1368>
Kevin King [Tue, 23 Jun 2020 22:31:51 +0000 (15:31 -0700)]
avfvideosrc: wait for permissions request dialog callback
otherwise gstreamer gives up on transitioning the pipeline before the
user has accepted
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1370>
Vivia Nikolaidou [Fri, 19 Jun 2020 11:30:04 +0000 (14:30 +0300)]
interlace: Switch field-pattern on the fly
The frame rate interlace uses changes when we change field-pattern, so
we need to issue a reconfigure event.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1364>
Seungha Yang [Mon, 22 Jun 2020 11:15:13 +0000 (20:15 +0900)]
nvh264sldec: Remove useless double space
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1357>
Seungha Yang [Fri, 19 Jun 2020 20:57:59 +0000 (05:57 +0900)]
nvcodec: Add H265 stateless codec implementation
Add a new GstCodecs based H265 decoder element
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1357>
Seungha Yang [Thu, 18 Jun 2020 19:50:26 +0000 (04:50 +0900)]
nvcodec: Move common methods to nvdecoder
... and remove all #ifdef from nvh264sldec implementation.
New helper methods will take care of OpenGL specific ones.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1357>
Seungha Yang [Thu, 18 Jun 2020 19:36:15 +0000 (04:36 +0900)]
nvh264sldec: Declare OpenGL related objects unconditionally
GstGLDisplay and GstGLContext are subclass of GstObject so we can
remove #ifdef for such object. This is prework for nvh265sldec.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1357>
Seungha Yang [Thu, 18 Jun 2020 19:10:48 +0000 (04:10 +0900)]
nvh264sldec: Fix for possible wrong device selction
decoder should select assigned CUDA device id
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1357>
Nirbheek Chauhan [Tue, 23 Jun 2020 14:01:42 +0000 (19:31 +0530)]
meson: Add missing pc file for gstphotography
This is supposed to be used by apps like Cheese, and is a public
library.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1365>
Nirbheek Chauhan [Tue, 23 Jun 2020 13:33:12 +0000 (19:03 +0530)]
meson: Add missing pkgconfig files for gsttranscoder
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1365>
Vivia Nikolaidou [Fri, 19 Jun 2020 07:50:12 +0000 (10:50 +0300)]
interlace: Re-indentation
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1349>
Vivia Nikolaidou [Thu, 18 Jun 2020 20:52:01 +0000 (23:52 +0300)]
interlace: Don't change field-pattern on PAUSED or PLAYING state
It would otherwise change the caps the element produces and cause the
element to misbehave
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1349>
Vivia Nikolaidou [Thu, 18 Jun 2020 19:56:57 +0000 (22:56 +0300)]
interlace: Don't fail negotiation if capsfilters decide framerate
Try to negotiate if the framerates on either sides of the interlace are
decided using capsfilters and the framerates are correct. Otherwise the
following pipelines would fail to negotiate:
gst-launch-1.0 videotestsrc !
video/x-raw,framerate=24/1,interlace-mode=progressive ! interlace
field-pattern=2 ! video/x-raw,framerate =30/1 ! fakesink
gst-launch-1.0 videotestsrc !
video/x-raw,framerate=60/1,interlace-mode=progressive ! interlace
field-pattern=0 ! video/x-raw,framerate=30/1 ! fakesink
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1349>
Vivia Nikolaidou [Thu, 18 Jun 2020 19:15:08 +0000 (22:15 +0300)]
interlace: Restrict passthrough conditions
Don't do passthrough if interleave-mode=mixed or if we have one of the
telecine modes
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1349>
Vivia Nikolaidou [Thu, 18 Jun 2020 18:10:56 +0000 (21:10 +0300)]
interlace: Add field switching mode for 2:2 field pattern
In the 2:2 field pattern, interlace can switch from bottom-field-first
to top-field-first.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1349>
Vivia Nikolaidou [Thu, 18 Jun 2020 18:11:17 +0000 (21:11 +0300)]
interlace: Only half the framerate for 1:1 field pattern
Keep the framerate for 2:2 field pattern, and completely remove it from
the caps for all others. Otherwise, negotiation will fail if caps on
both sides of the element specify a framerate.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1349>
Vivia Nikolaidou [Thu, 18 Jun 2020 17:41:35 +0000 (20:41 +0300)]
interlace: Add FIXME comment about false passthrough bug
If interlace-mode is missing from upstream caps, we can falsely do
passthrough when in fact we'd have to switch fields.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1349>
Thibault Saunier [Tue, 23 Jun 2020 16:30:51 +0000 (12:30 -0400)]
docs: Update plugins cache
Thibault Saunier [Tue, 23 Jun 2020 15:36:15 +0000 (11:36 -0400)]
openmpt: Namespace enum GType names
Thibault Saunier [Tue, 23 Jun 2020 15:33:45 +0000 (11:33 -0400)]
docs: Unmark wrongly marked plugin API types
Thibault Saunier [Tue, 23 Jun 2020 14:03:04 +0000 (10:03 -0400)]
docs: Document basecamerabinsrc
Mathieu Duponchelle [Tue, 23 Jun 2020 00:51:48 +0000 (02:51 +0200)]
docs: mark more types as plugin API
Mathieu Duponchelle [Mon, 22 Jun 2020 22:12:59 +0000 (00:12 +0200)]
plugins_cache: add base classes
Mathieu Duponchelle [Mon, 22 Jun 2020 22:05:36 +0000 (00:05 +0200)]
meson: mark plugins cache target as always stale
Mathieu Duponchelle [Sat, 20 Jun 2020 23:32:50 +0000 (01:32 +0200)]
docs: mark more types as plugin API
Mathieu Duponchelle [Sat, 20 Jun 2020 23:32:29 +0000 (01:32 +0200)]
docs: generate documentation for libgstopencv
Thibault Saunier [Fri, 19 Jun 2020 23:40:52 +0000 (19:40 -0400)]
doc: Stop documenting properties from parents
Sebastian Dröge [Tue, 23 Jun 2020 06:50:46 +0000 (09:50 +0300)]
audiobuffersplit: Specify in the template caps that only interleaved audio is supported
Needs special support for non-interleaved audio and e.g. use the
GstPlanarAudioAdapter.
See https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/issues/779
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1363>
Sebastian Dröge [Mon, 22 Jun 2020 09:32:50 +0000 (12:32 +0300)]
webrtcbin: Don't call gst_ghost_pad_construct() anymore
It's deprecated, unneeded and doesn't do anything anymore.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1360>
Vivia Nikolaidou [Thu, 18 Jun 2020 18:21:26 +0000 (21:21 +0300)]
Revert "h264parse: Include `interlace-mode` in caps"
This reverts commit
b75a61342f4ea039d922a966f36b02cd9d9c3ad8.
The parser would only set the mode to progressive or mixed, missing the
cases where it should have been interleaved. Interleaved is more
difficult to detect because in h264 it happens per frame. On the other
hand, h264 decoders detect the interlacing information per-frame and set
the caps correctly. By giving potentially incorrect interlacing
information in the parser already, it's being enforced downstream even
after decoding, breaking some use cases (e.g. an encoder can't properly
mark the stream as TFF or BFF). On the other hand, there's no valid use
case for having interlacing information on the caps at the parsing
stage, so after a lot of discussion, it was decided to revert this.
Initial commit message:
=========================
Those are the rules:
In the SPS:
* if frame_mbs_only_flag=1 => all frame progressive
* if frame_mbs_only_flag=0 => field_pic_flag defines if each frame is
progressive or interlaced, thus the mode is 'mixed' in GStreamer
terms.
https://bugzilla.gnome.org/show_bug.cgi?id=779309
=========================
Fixes #1313
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1335>
Seungha Yang [Mon, 22 Jun 2020 09:42:45 +0000 (18:42 +0900)]
d3d11window_win32: Chain up mouse event to parent window
Unlike key event, mouse event will not be chained up to parent window
by DefWindowProc
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1361>
Seungha Yang [Fri, 19 Jun 2020 13:14:29 +0000 (22:14 +0900)]
dxgiscreencapsrc: Load HLSL compiler library using g_module_open
Depending on OS version, available d3dcompiler library name is different.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1355>
Seungha Yang [Fri, 19 Jun 2020 14:02:45 +0000 (23:02 +0900)]
dxgiscreencapsrc: Reorganize debug category usage
Use the same debug category in all dxgiscreencap related source code
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1355>
Seungha Yang [Fri, 19 Jun 2020 12:43:15 +0000 (21:43 +0900)]
winscreencap: Remove trailing whitespaces
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1355>
Seungha Yang [Fri, 19 Jun 2020 12:34:32 +0000 (21:34 +0900)]
d3d11device: Print supported DXGI format for debugging
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1355>
Seungha Yang [Fri, 19 Jun 2020 12:24:59 +0000 (21:24 +0900)]
d3d11: Load HLSL compiler library using g_module_open
Depending on OS version, available d3dcompiler library name is different.
But for UWP, we can still use the current way
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1355>
Seungha Yang [Fri, 19 Jun 2020 11:40:24 +0000 (20:40 +0900)]
d3d11shader: Add missing config.h include
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1355>
Matthew Waters [Sun, 21 Jun 2020 06:02:43 +0000 (16:02 +1000)]
webrtc: fix ice control mode when we offer initially
An initial offer means we have a local description not a remote
description.
Fixes https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/issues/1332
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1358>
Seungha Yang [Sun, 24 May 2020 15:15:14 +0000 (00:15 +0900)]
mediafoundation: Add VP9 encoder element
Some Intel GPUs support hardware accelerated VP9 encoding and
Microsoft provides software VP9 encoding implementation as well.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1295>
Vivia Nikolaidou [Thu, 18 Jun 2020 09:15:09 +0000 (12:15 +0300)]
fdkaacenc: Add missing SURROUND mappings
SURROUND is more to spec according to the FIXME comments, so add this.
Also add SIDE for 5 and 5.1 because of ffmpeg compatibility, because the
following pipeline downmixes to mono otherwise:
gst-launch-1.0 audiotestsrc num-buffers=1 ! audio/x-raw, channels=6 !
avenc_ac3 ! avdec_ac3 ! audioconvert ! fdkaacenc ! fakesink -v
Fixes #1327
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1352>
Matthew Waters [Sun, 14 Jun 2020 15:38:03 +0000 (01:38 +1000)]
vulkan: log extension/layers available/enabled on instance/device creation
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1341>
Matthew Waters [Sun, 14 Jun 2020 15:26:08 +0000 (01:26 +1000)]
vulkan/device: expose extension/layer choices
Extensions and layers can be enabled before calling
gst_vulkan_device_open(). The available extensions are stored in
GstVulkanPhysicalDevice.
Defaults are still the same.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1341>
Matthew Waters [Sun, 14 Jun 2020 11:04:37 +0000 (21:04 +1000)]
vulkan/instance: privatise defult debug callback
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1341>
Matthew Waters [Sun, 14 Jun 2020 11:00:06 +0000 (21:00 +1000)]
vulkan/instance: expose extension/layer choices
Extensions and layers can be enabled before calling
gst_vulkan_instance_open() but after calling
gst_vulkan_instance_fill_info().
Use the list of available extensions to better choose a default display
implementation to use based on the available Vulkan extensions for surface
output.
Defaults are still the same.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1341>
Matthew Waters [Sat, 13 Jun 2020 07:40:02 +0000 (17:40 +1000)]
vulkan/physical-device: dump some more information to logs
Also dump the Vulkan 1.1 and Vulkan 1.2 device properties/features
where supported.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1341>
Matthew Waters [Sat, 13 Jun 2020 07:31:07 +0000 (17:31 +1000)]
vulkan/instance: add vulkan API version selection and checking
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1341>
Matthew Waters [Sat, 13 Jun 2020 07:29:57 +0000 (17:29 +1000)]
vulkan/wayland: initialise debug category before debug logging
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1341>
Nicolas Dufresne [Fri, 19 Jun 2020 16:15:53 +0000 (12:15 -0400)]
nalutils: Improve slightly the error trace
Until now, bound check would simply trace the values and the range. This
enhances the trace by also tracing the name of the variable that was to be set
or read. This is not magically perfect in all cases, but greatly speed the
debugging work. Here's an example before and after this change:
Before: gst_h264_parser_parse_slice_hdr: value not in allowed range. value: 819183, range -87-77
After: gst_h264_parser_parse_slice_hdr: value for 'slice->slice_qp_delta' not in allowed range. value: 819183, range -87-77
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1356>
Jan Alexander Steffens (heftig) [Thu, 12 Dec 2019 11:58:24 +0000 (12:58 +0100)]
Revert "errorignore: Added convert-error signal"
The introduced API has [some problems][1] and [a better solution][2] was
found that made the feature obsolete.
This reverts commit
f7626c1f2ac14a34991723df6c28f54af38fcbc4.
[1]: https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/merge_requests/736#note_357702
[2]: https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/merge_requests/736#note_238830
https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/merge_requests/916
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/916>
Tim-Philipp Müller [Fri, 19 Jun 2020 23:28:22 +0000 (00:28 +0100)]
Back to development
Tim-Philipp Müller [Fri, 19 Jun 2020 18:22:18 +0000 (19:22 +0100)]
Release 1.17.1
Tim-Philipp Müller [Fri, 19 Jun 2020 16:20:02 +0000 (17:20 +0100)]
srt: add "empty" subclasses for deprecated srt{client,server}{src,sink}
The doc system gets confused when we register the exact same
class as multiple elements, so make a subclass for each.
Also wrap registration of deprecated elements with #ifndef GST_REMOVE_DEPRECATED.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1354>
Tim-Philipp Müller [Fri, 19 Jun 2020 14:31:04 +0000 (15:31 +0100)]
x265: ignore tune property when diffing generated docs
Unfortunately it means those tune enums don't show up in
the docs then, but if that's how it's gotta be..
(Problem at hand is that on Tim's machine x265enc gets an
tune=animation and on the CI machine this doesn't show up.)
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1354>
Tim-Philipp Müller [Fri, 19 Jun 2020 12:08:10 +0000 (13:08 +0100)]
docs: update plugins cache
Add some more plugins, update for new markers.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1354>
Tim-Philipp Müller [Fri, 19 Jun 2020 12:05:38 +0000 (13:05 +0100)]
Mark more plugin GTypes as plugin API
To appease the CI gods.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1354>
Antonio Ospite [Wed, 17 Jun 2020 07:31:09 +0000 (09:31 +0200)]
gst-project-maker: use $0 for the program name in usage and help text
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/184>
Antonio Ospite [Fri, 17 Jan 2020 16:49:47 +0000 (17:49 +0100)]
gst-project-maker: set up a meson project instead of an autotools one
Now that autotools has been removed generate a meson project template in
gst-project-maker.
There are some differences with the autotools project
1. gstreamer-controller-1.0 is not added to the default dependencies.
2. The '-Wall' option is not set explicitly, meson can handle that.
3. The flags in GST_PLUGIN_LDFLAGS have not been ported to meson as
they are not necessary anymore.
The generated project requires meson 0.53.0 for the 'fs' module. It's up
to the user to remove that part in case compatibility with older
versions of meson is desired.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/184>
Antonio Ospite [Fri, 1 Feb 2019 16:05:23 +0000 (17:05 +0100)]
gst-project-maker: fix comment referring to plug-in instead of program
Fix the comment in $basedir/tools/Makefile.am which wrongly refers to
plug-in while the file in tool/ is about the executable program.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/184>
Antonio Ospite [Fri, 1 Feb 2019 16:04:19 +0000 (17:04 +0100)]
gst-app-maker: fix program name and arguments in usage text and help text
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/184>
Seungha Yang [Mon, 15 Jun 2020 15:12:03 +0000 (00:12 +0900)]
mfvideosrc: Add support for jpeg on Win32 application
Enable reading jpeg data from webcam if it's supported.
Note that this would be enabled only for Win32.
For UWP, we need to research more about how to support jpeg.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1342>
Seungha Yang [Mon, 15 Jun 2020 15:11:03 +0000 (00:11 +0900)]
mfvideosrc: Fix wrong casting
Don't cast ISoftwareBitmap to IMFMediaBuffer
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1342>
Seungha Yang [Sat, 13 Jun 2020 19:12:42 +0000 (04:12 +0900)]
mfvideosrc: Add support YUY2 format for UWP
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1342>
Seungha Yang [Sat, 13 Jun 2020 18:13:04 +0000 (03:13 +0900)]
mediafoundation: Drop IMFCaptureEngine implementation
It was introduced for later use of its enhanced feature over IMFSourceReader
such as taking photo with video preview, audio/video capturing at
the same time, etc. But currently it's not our use case, and it would
be maintenance burden.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1342>
Hosang Lee [Wed, 17 Jun 2020 01:57:00 +0000 (10:57 +0900)]
mssdemux: ignore unrecognized stream
Only create pads for steams with caps that can be recognized
from the fourcc.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1348>
Jan Schmidt [Tue, 7 Apr 2020 11:47:22 +0000 (21:47 +1000)]
dvbsubenc: Add DVB Subtitle encoder
Add an element that converts AYUV video frames to a DVB
subpicture stream.
It's fairly simple for now. Later it would be good to support
input via a stream that contains only GstVideoOverlayComposition
meta.
The element searches each input video frame for the largest
sub-region containing non-transparent pixels and encodes that
as a single DVB subpicture region. It can also do palette
reduction of the input frames using code taken from
libimagequant.
There are various FIXME for potential improvements for now, but
it works.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1227>
Seungha Yang [Tue, 16 Jun 2020 10:26:13 +0000 (19:26 +0900)]
d3d11: Don't assume response of context query has valid d3d11 device context
Peer elements should return FALSE if d3d11 device context is unavailable
but it might happen for some reason (e.g., wrong implementation or so)
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1347>
Seungha Yang [Mon, 15 Jun 2020 12:10:09 +0000 (21:10 +0900)]
d3d11decoder: Disable zero-copy for blacklisted device
Should enable it for verified devices. For now, Xbox is blacklisted
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1339>
Seungha Yang [Fri, 12 Jun 2020 11:34:49 +0000 (20:34 +0900)]
d3d11decoder: Adjust alignment constraint for Xbox device
XBox doesn't seem to support 128 bytes alignment for 4K HEVC
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1339>
Seungha Yang [Fri, 12 Jun 2020 11:18:53 +0000 (20:18 +0900)]
d3d11window: Do not configure video processor for Xbox device
Disable video processor for Xbox until it's verified
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1339>
Seungha Yang [Fri, 12 Jun 2020 10:07:07 +0000 (19:07 +0900)]
d3d11utils: Add a helper method for checking Xbox device
Required for some cases to work around device specific issue
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1339>
Seungha Yang [Fri, 12 Jun 2020 11:11:29 +0000 (20:11 +0900)]
d3d11videosink: Use GPU memory copy if possible
Even if fallback buffer is required (e.g., shader resource view is unavailable),
use direct GPU memory copy if possible. It must be much faster than
system memory copy approach.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1339>
Seungha Yang [Fri, 12 Jun 2020 10:44:01 +0000 (19:44 +0900)]
d3d11videosink: Ensure shader resource view of fallback buffer
SRV must be configured for color conversion
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1339>
Seungha Yang [Fri, 12 Jun 2020 10:08:34 +0000 (19:08 +0900)]
d3d11window: Fix typo "configureed"
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1339>
Jun-ichi OKADA [Thu, 21 Nov 2019 04:50:21 +0000 (13:50 +0900)]
winscreencap: Add dxgiscreencapsrc element.
This element uses the Desktop Duplication API to capture the desktop screen at high speed.
It supports Windows 8 or later.
It has the following features compared to other elements:
* Runs faster.
* It works in High DPI environment.
* Draws an accurate mouse cursor.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/863>
Xu Guangxin [Thu, 14 May 2020 03:03:49 +0000 (11:03 +0800)]
msdkdec: hold a reference for the surfaces locked by msdk
previous code releases GstBuffer too earlier. so we will see
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:<msdkbufferpool0> failed to create new MSDK memory
We need to hold GstBuffer reference for msdk if the surfaced locked by msdk.
step to reproduce.
1. ffmpeg -f lavfi -i testsrc=duration=10:size=320x240:rate=30 -pix_fmt yuv420p -c:v libx265 test.265
2. GST_GL_PLATFORM=egl gst-launch-1.0 -v filesrc location=test.265 ! h265parse ! msdkh265dec ! queue ! glimagesink
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1277>