platform/upstream/gstreamer.git
4 years agonvh264sldec: Remove useless double space
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>

4 years agonvcodec: Add H265 stateless codec implementation
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>

4 years agonvcodec: Move common methods to nvdecoder
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>

4 years agonvh264sldec: Declare OpenGL related objects unconditionally
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>

4 years agonvh264sldec: Fix for possible wrong device selction
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>

4 years agomeson: Add missing pc file for gstphotography
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>

4 years agomeson: Add missing pkgconfig files for gsttranscoder
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>

4 years agointerlace: Re-indentation
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>

4 years agointerlace: Don't change field-pattern on PAUSED or PLAYING state
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>

4 years agointerlace: Don't fail negotiation if capsfilters decide framerate
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>

4 years agointerlace: Restrict passthrough conditions
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>

4 years agointerlace: Add field switching mode for 2:2 field pattern
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>

4 years agointerlace: Only half the framerate for 1:1 field pattern
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>

4 years agointerlace: Add FIXME comment about false passthrough bug
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>

4 years agodocs: Update plugins cache
Thibault Saunier [Tue, 23 Jun 2020 16:30:51 +0000 (12:30 -0400)]
docs: Update plugins cache

4 years agoopenmpt: Namespace enum GType names
Thibault Saunier [Tue, 23 Jun 2020 15:36:15 +0000 (11:36 -0400)]
openmpt: Namespace enum GType names

4 years agodocs: Unmark wrongly marked plugin API types
Thibault Saunier [Tue, 23 Jun 2020 15:33:45 +0000 (11:33 -0400)]
docs: Unmark wrongly marked plugin API types

4 years agodocs: Document basecamerabinsrc
Thibault Saunier [Tue, 23 Jun 2020 14:03:04 +0000 (10:03 -0400)]
docs: Document basecamerabinsrc

4 years agodocs: mark more types as plugin API
Mathieu Duponchelle [Tue, 23 Jun 2020 00:51:48 +0000 (02:51 +0200)]
docs: mark more types as plugin API

4 years agoplugins_cache: add base classes
Mathieu Duponchelle [Mon, 22 Jun 2020 22:12:59 +0000 (00:12 +0200)]
plugins_cache: add base classes

4 years agomeson: mark plugins cache target as always stale
Mathieu Duponchelle [Mon, 22 Jun 2020 22:05:36 +0000 (00:05 +0200)]
meson: mark plugins cache target as always stale

4 years agodocs: mark more types as plugin API
Mathieu Duponchelle [Sat, 20 Jun 2020 23:32:50 +0000 (01:32 +0200)]
docs: mark more types as plugin API

4 years agodocs: generate documentation for libgstopencv
Mathieu Duponchelle [Sat, 20 Jun 2020 23:32:29 +0000 (01:32 +0200)]
docs: generate documentation for libgstopencv

4 years agodoc: Stop documenting properties from parents
Thibault Saunier [Fri, 19 Jun 2020 23:40:52 +0000 (19:40 -0400)]
doc: Stop documenting properties from parents

4 years agoaudiobuffersplit: Specify in the template caps that only interleaved audio is supported
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>

4 years agowebrtcbin: Don't call gst_ghost_pad_construct() anymore
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>

4 years agoRevert "h264parse: Include `interlace-mode` in caps"
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>

4 years agod3d11window_win32: Chain up mouse event to parent window
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>

4 years agodxgiscreencapsrc: Load HLSL compiler library using g_module_open
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>

4 years agodxgiscreencapsrc: Reorganize debug category usage
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>

4 years agowinscreencap: Remove trailing whitespaces
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>

4 years agod3d11device: Print supported DXGI format for debugging
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>

4 years agod3d11: Load HLSL compiler library using g_module_open
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>

4 years agod3d11shader: Add missing config.h include
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>

4 years agowebrtc: fix ice control mode when we offer initially
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>

4 years agomediafoundation: Add VP9 encoder element
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>

4 years agofdkaacenc: Add missing SURROUND mappings
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>

4 years agovulkan: log extension/layers available/enabled on instance/device creation
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>

4 years agovulkan/device: expose extension/layer choices
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>

4 years agovulkan/instance: privatise defult debug callback
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>

4 years agovulkan/instance: expose extension/layer choices
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>

4 years agovulkan/physical-device: dump some more information to logs
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>

4 years agovulkan/instance: add vulkan API version selection and checking
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>

4 years agovulkan/wayland: initialise debug category before debug logging
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>

4 years agonalutils: Improve slightly the error trace
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>

4 years agoRevert "errorignore: Added convert-error signal"
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>

4 years agoBack to development
Tim-Philipp Müller [Fri, 19 Jun 2020 23:28:22 +0000 (00:28 +0100)]
Back to development

4 years agoRelease 1.17.1
Tim-Philipp Müller [Fri, 19 Jun 2020 18:22:18 +0000 (19:22 +0100)]
Release 1.17.1

4 years agosrt: add "empty" subclasses for deprecated srt{client,server}{src,sink}
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>

4 years agox265: ignore tune property when diffing generated docs
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>

4 years agodocs: update plugins cache
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>

4 years agoMark more plugin GTypes as plugin API
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>

4 years agogst-project-maker: use $0 for the program name in usage and help text
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>

4 years agogst-project-maker: set up a meson project instead of an autotools one
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>

4 years agogst-project-maker: fix comment referring to plug-in instead of program
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>

4 years agogst-app-maker: fix program name and arguments in usage text and help text
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>

4 years agomfvideosrc: Add support for jpeg on Win32 application
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>

4 years agomfvideosrc: Fix wrong casting
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>

4 years agomfvideosrc: Add support YUY2 format for UWP
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>

4 years agomediafoundation: Drop IMFCaptureEngine implementation
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>

4 years agomssdemux: ignore unrecognized stream
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>

4 years agodvbsubenc: Add DVB Subtitle encoder
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>

4 years agod3d11: Don't assume response of context query has valid d3d11 device context
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>

4 years agod3d11decoder: Disable zero-copy for blacklisted device
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>

4 years agod3d11decoder: Adjust alignment constraint for Xbox device
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>

4 years agod3d11window: Do not configure video processor for Xbox device
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>

4 years agod3d11utils: Add a helper method for checking Xbox device
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>

4 years agod3d11videosink: Use GPU memory copy if possible
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>

4 years agod3d11videosink: Ensure shader resource view of fallback buffer
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>

4 years agod3d11window: Fix typo "configureed"
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>

4 years agowinscreencap: Add dxgiscreencapsrc element.
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>

4 years agomsdkdec: hold a reference for the surfaces locked by msdk
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>

4 years agovulkan/shaders: add explicit license headers
Matthew Waters [Fri, 12 Jun 2020 05:48:14 +0000 (15:48 +1000)]
vulkan/shaders: add explicit license headers

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1338>

4 years agovulkan/shaders: manually indent bin2array
Matthew Waters [Fri, 12 Jun 2020 05:47:01 +0000 (15:47 +1000)]
vulkan/shaders: manually indent bin2array

Looks much nicer with some semblance of code formatting

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1338>

4 years agocodecs: h265picture: Don't leak pic_list GArray
Seungha Yang [Thu, 11 Jun 2020 19:59:47 +0000 (04:59 +0900)]
codecs: h265picture: Don't leak pic_list GArray

Equivalent to the commit 7b8c071f9c4a675f6b53e373c346d9e1f866f818

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1337>

4 years agoyadif: remove plugin, there's now deinterlace method=yadif
Tim-Philipp Müller [Thu, 11 Jun 2020 18:35:29 +0000 (19:35 +0100)]
yadif: remove plugin, there's now deinterlace method=yadif

Plugin code was still the GPL version, and the
functionality has now been moved into the deinterlace
element in gst-plugins-good as method=yadif (and LGPL).

See https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/444
and https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/621

Closes https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/issues/216
Fixes https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/issues/463

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1336>

4 years agowasapi2: Fallback to IAudioClient interface if IAudioClient3 API is unavailable
Seungha Yang [Wed, 10 Jun 2020 16:47:14 +0000 (01:47 +0900)]
wasapi2: Fallback to IAudioClient interface if IAudioClient3 API is unavailable

When default device is selected, IAudioClient3 API doesn't look like
available.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1332>

4 years agointerlace: Fix crash with empty caps in setcaps
Vivia Nikolaidou [Thu, 11 Jun 2020 10:50:38 +0000 (13:50 +0300)]
interlace: Fix crash with empty caps in setcaps

If the src_peer_caps are EMPTY (e.g. negotiation failed somewhere), the
assertion inside gst_video_info_from_caps would fail and the whole
pipeline would crash. Check for gst_caps_is_empty before
gst_video_info_from_caps and gracefully fail if it's empty.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1333>

4 years agowasapi: Fix possible deadlock while downwards state change
Seungha Yang [Tue, 9 Jun 2020 13:38:28 +0000 (22:38 +0900)]
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>

4 years agodocs: Update plugins cache
Thibault Saunier [Tue, 9 Jun 2020 19:31:56 +0000 (15:31 -0400)]
docs: Update plugins cache

4 years agowaylandsink: add wl_registry.global_remove listener
Haihua Hu [Tue, 9 Jun 2020 02:53:17 +0000 (10:53 +0800)]
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>

4 years agosrt: doc: Add missing gst_type_mark_as_plugin_api
Thibault Saunier [Mon, 8 Jun 2020 18:56:31 +0000 (14:56 -0400)]
srt: doc: Add missing gst_type_mark_as_plugin_api

4 years agodocs: Mark lv2 runtime generated enums as plugins API types
Thibault Saunier [Mon, 8 Jun 2020 17:03:09 +0000 (13:03 -0400)]
docs: Mark lv2 runtime generated enums as plugins API types

4 years agodocs: Add some more plugin API types
Thibault Saunier [Mon, 8 Jun 2020 16:30:59 +0000 (12:30 -0400)]
docs: Add some more plugin API types

And allow creating vulkan device object without specifying an instance
so it can be introspected.

4 years agodocs: Update plugins cache
Thibault Saunier [Mon, 8 Jun 2020 13:52:30 +0000 (09:52 -0400)]
docs: Update plugins cache

4 years agov4l2slh264dec: Fix reading mode and start code type
Nicolas Dufresne [Tue, 9 Jun 2020 14:48:06 +0000 (10:48 -0400)]
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 037730a787c6cdeeee5779c1834315c1ca764505

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1330>

4 years agomftransform: Fix deadlock when MFT requests processing output twice
Seungha Yang [Mon, 8 Jun 2020 14:46:43 +0000 (23:46 +0900)]
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>

4 years agomftransform: Add some debug log
Seungha Yang [Mon, 8 Jun 2020 10:22:07 +0000 (19:22 +0900)]
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>

4 years agoadaptivedemux: Handle live duration queries
Edward Hervey [Tue, 19 May 2020 08:27:18 +0000 (10:27 +0200)]
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>

4 years agotests: wasapi2: Add unit test for reusing wasapisrc
Seungha Yang [Sun, 10 May 2020 16:53:11 +0000 (01:53 +0900)]
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>

4 years agowasapi2: Add device provider implementation
Seungha Yang [Wed, 27 May 2020 20:09:47 +0000 (05:09 +0900)]
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>

4 years agowasapi2: Introduce new WASAPI plugin
Seungha Yang [Mon, 25 May 2020 20:17:41 +0000 (05:17 +0900)]
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>

4 years agomfvideoenc: Set PAR to output IMFMediaType
Seungha Yang [Sat, 6 Jun 2020 12:15:34 +0000 (21:15 +0900)]
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>

4 years agomftransform: Don't try to drain if MFT is not running
Seungha Yang [Sat, 6 Jun 2020 12:01:24 +0000 (21:01 +0900)]
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>

4 years agoplugins: uddate gst_type_mark_as_plugin_api() calls
Mathieu Duponchelle [Fri, 5 Jun 2020 22:40:42 +0000 (00:40 +0200)]
plugins: uddate gst_type_mark_as_plugin_api() calls

4 years agod3d11overlaycompositor: Fix wrong Y position calculation
Seungha Yang [Fri, 5 Jun 2020 13:39:54 +0000 (22:39 +0900)]
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>

4 years agocurlsmtpsink: Use correct email date format
cketti [Thu, 4 Jun 2020 11:33:59 +0000 (13:33 +0200)]
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>

4 years agoccconverter: signal cea608 padding as invalid
Matthew Waters [Tue, 2 Jun 2020 08:07:10 +0000 (18:07 +1000)]
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>

4 years agoccconverter: also copy buffer metadata when draining
Matthew Waters [Tue, 2 Jun 2020 07:35:00 +0000 (17:35 +1000)]
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>

4 years agoccconverter: Output the limit hit in debug lines
Matthew Waters [Tue, 2 Jun 2020 07:33:07 +0000 (17:33 +1000)]
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>