platform/upstream/gstreamer.git
3 years agod3d11decoder: Do not hardcode the limit minimum resolution to 64
Seungha Yang [Fri, 26 Mar 2021 12:06:59 +0000 (21:06 +0900)]
d3d11decoder: Do not hardcode the limit minimum resolution to 64

Decoder should be able to support lower resolution than 64x64

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

3 years agod3d11videosink: Remove DirectWrite related dead code
Seungha Yang [Thu, 25 Mar 2021 12:17:07 +0000 (21:17 +0900)]
d3d11videosink: Remove DirectWrite related dead code

It's now not enabled since we moved core part to gst-libs

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

3 years agomfvideoenc: Don't pass 0/1 framerate to MFT
Seungha Yang [Wed, 24 Mar 2021 18:24:11 +0000 (03:24 +0900)]
mfvideoenc: Don't pass 0/1 framerate to MFT

Some MFT implementations do not accept 0/1 framerate and it will
result in encoder open failure. If framerate is unknown,
we will use arbitrary 25/1 framerate value.

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

3 years agod3d11decoder: Resurrect zero-copy for fixed-size DPB pool
Seungha Yang [Tue, 23 Mar 2021 04:48:09 +0000 (13:48 +0900)]
d3d11decoder: Resurrect zero-copy for fixed-size DPB pool

Enable zero-copy if downstream proposed pool and therefore decoder
can know the amount of buffer required by downstream.
Otherwise decoder will copy when our DPB pool has no sufficient
buffers for later decoding operation.

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

3 years agod3d11decoder: Implement array-of-texture DPB again
Seungha Yang [Sat, 20 Mar 2021 10:52:16 +0000 (19:52 +0900)]
d3d11decoder: Implement array-of-texture DPB again

Re-implementation of array-of-texture based on d3d11 memory pool.

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

3 years agod3d11: Implement memory pool
Seungha Yang [Thu, 18 Mar 2021 13:31:55 +0000 (22:31 +0900)]
d3d11: Implement memory pool

Major changes:
* GstD3D11Allocator: This allocator is now device-independent object
  which can allocate GstD3D11Memory object for any GstD3D11Device.
  User can get this object via gst_allocator_find(GST_D3D11_MEMORY_NAME)
* GstD3D11PoolAllocator: A new allocator implementation for texture pool.
  From now on GstD3D11BufferPool will make use of this memory pool allocator
  to avoid frequent texture reallocation. That usually happens because
  of buffer copy (gst_buffer_make_writable for example)

In addition to that, GstD3D11BufferPool will provide GstBuffer with
GstVideoMeta, because CPU access to a GstD3D11Memory without GstVideoMeta
is almost impossible since GPU drivers needs padding for stride alignment.

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

3 years agod3d11decoder: Temporarily remove zero-copy related code
Seungha Yang [Sat, 20 Mar 2021 13:11:49 +0000 (22:11 +0900)]
d3d11decoder: Temporarily remove zero-copy related code

We will re-implement it based on memory pool

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

3 years agova: postproc: Set one buffer in pools as minimum.
Víctor Manuel Jáquez Leal [Tue, 23 Mar 2021 08:33:49 +0000 (09:33 +0100)]
va: postproc: Set one buffer in pools as minimum.

Because some elements, such as videorate check that minimum are
different of maximum number of buffers in the proposed pool, since
they might hold one or more buffers.

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

3 years agoh2645parser: Catch overflows in AVC/HEVC NAL unit length calculations
Sebastian Dröge [Tue, 23 Mar 2021 17:19:14 +0000 (19:19 +0200)]
h2645parser: Catch overflows in AVC/HEVC NAL unit length calculations

Offset and size are stored as 32 bit guint and might overflow when
adding the nal_length_size, so let's avoid that.

For the size this would happen if the AVC/HEVC NAL unit size happens to
be stored in 4 bytes and is 4294967292 or higher, which is likely
corrupted data anyway.

For the offset this is something for the caller of these functions to
take care of but is unlikely to happen as it would require parsing on a
>4GB buffer.

Allowing these overflows causes all kinds of follow-up bugs in the
h2645parse elements, ranging from infinite loops and memory leaks to
potential memory corruptions.

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

3 years agozxing: allow per feature registration
Stéphane Cerveau [Thu, 25 Feb 2021 08:59:50 +0000 (09:59 +0100)]
zxing: allow per feature registration

Split plugin into features including
dynamic types which can be indiviually
registered during a static build.

More details here:

https://gitlab.freedesktop.org/gstreamer/gst-build/-/merge_requests/199
https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/661

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

3 years agozbar: allow per feature registration
Stéphane Cerveau [Thu, 25 Feb 2021 08:57:00 +0000 (09:57 +0100)]
zbar: allow per feature registration

Split plugin into features including
dynamic types which can be indiviually
registered during a static build.

More details here:

https://gitlab.freedesktop.org/gstreamer/gst-build/-/merge_requests/199
https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/661

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

3 years agox265: allow per feature registration
Stéphane Cerveau [Thu, 25 Feb 2021 08:51:52 +0000 (09:51 +0100)]
x265: allow per feature registration

Split plugin into features including
dynamic types which can be indiviually
registered during a static build.

More details here:

https://gitlab.freedesktop.org/gstreamer/gst-build/-/merge_requests/199
https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/661

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

3 years agowpe: allow per feature registration
Stéphane Cerveau [Thu, 25 Feb 2021 08:45:10 +0000 (09:45 +0100)]
wpe: allow per feature registration

Split plugin into features including
dynamic types which can be indiviually
registered during a static build.

More details here:

https://gitlab.freedesktop.org/gstreamer/gst-build/-/merge_requests/199
https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/661

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

3 years agowildmidi: allow per feature registration
Stéphane Cerveau [Thu, 25 Feb 2021 08:27:19 +0000 (09:27 +0100)]
wildmidi: allow per feature registration

Split plugin into features including
dynamic types which can be indiviually
registered during a static build.

More details here:

https://gitlab.freedesktop.org/gstreamer/gst-build/-/merge_requests/199
https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/661

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

3 years agowebrtcdsp: allow per feature registration
Stéphane Cerveau [Thu, 25 Feb 2021 07:18:54 +0000 (08:18 +0100)]
webrtcdsp: allow per feature registration

Split plugin into features including
dynamic types which can be indiviually
registered during a static build.

More details here:

https://gitlab.freedesktop.org/gstreamer/gst-build/-/merge_requests/199
https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/661

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

3 years agowebp: allow per feature registration
Stéphane Cerveau [Thu, 25 Feb 2021 07:04:42 +0000 (08:04 +0100)]
webp: allow per feature registration

Split plugin into features including
dynamic types which can be indiviually
registered during a static build.

More details here:

https://gitlab.freedesktop.org/gstreamer/gst-build/-/merge_requests/199
https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/661

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

3 years agowayland: allow per feature registration
Stéphane Cerveau [Wed, 24 Feb 2021 17:56:55 +0000 (18:56 +0100)]
wayland: allow per feature registration

Split plugin into features including
dynamic types which can be indiviually
registered during a static build.

More details here:

https://gitlab.freedesktop.org/gstreamer/gst-build/-/merge_requests/199
https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/661

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

3 years agovulkan: allow per feature registration
Stéphane Cerveau [Wed, 24 Feb 2021 17:45:15 +0000 (18:45 +0100)]
vulkan: allow per feature registration

Split plugin into features including
dynamic types which can be indiviually
registered during a static build.

More details here:

https://gitlab.freedesktop.org/gstreamer/gst-build/-/merge_requests/199
https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/661

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

3 years agovoamrwbenc: allow per feature registration
Stéphane Cerveau [Wed, 24 Feb 2021 16:34:50 +0000 (17:34 +0100)]
voamrwbenc: allow per feature registration

Split plugin into features including
dynamic types which can be indiviually
registered during a static build.

More details here:

https://gitlab.freedesktop.org/gstreamer/gst-build/-/merge_requests/199
https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/661

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

3 years agovoaacenc: allow per feature registration
Stéphane Cerveau [Wed, 24 Feb 2021 16:32:34 +0000 (17:32 +0100)]
voaacenc: allow per feature registration

Split plugin into features including
dynamic types which can be indiviually
registered during a static build.

More details here:

https://gitlab.freedesktop.org/gstreamer/gst-build/-/merge_requests/199
https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/661

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

3 years agottml: allow per feature registration
Stéphane Cerveau [Wed, 24 Feb 2021 12:07:30 +0000 (13:07 +0100)]
ttml: allow per feature registration

Split plugin into features including
dynamic types which can be indiviually
registered during a static build.

More details here:

https://gitlab.freedesktop.org/gstreamer/gst-build/-/merge_requests/199
https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/661

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

3 years agosrtp: allow per feature registration
Stéphane Cerveau [Wed, 24 Feb 2021 11:52:08 +0000 (12:52 +0100)]
srtp: allow per feature registration

Split plugin into features including
dynamic types which can be indiviually
registered during a static build.

More details here:

https://gitlab.freedesktop.org/gstreamer/gst-build/-/merge_requests/199
https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/661

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

3 years agosrt: allow per feature registration
Stéphane Cerveau [Wed, 24 Feb 2021 11:39:22 +0000 (12:39 +0100)]
srt: allow per feature registration

Split plugin into features including
dynamic types which can be indiviually
registered during a static build.

More details here:

https://gitlab.freedesktop.org/gstreamer/gst-build/-/merge_requests/199
https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/661

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

3 years agospandsp: allow per feature registration
Stéphane Cerveau [Fri, 19 Feb 2021 11:54:56 +0000 (12:54 +0100)]
spandsp: allow per feature registration

Split plugin into features including
dynamic types which can be indiviually
registered during a static build.

More details here:

https://gitlab.freedesktop.org/gstreamer/gst-build/-/merge_requests/199
https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/661

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

3 years agosoundtouch: allow per feature registration
Stéphane Cerveau [Fri, 19 Feb 2021 11:41:41 +0000 (12:41 +0100)]
soundtouch: allow per feature registration

Split plugin into features including
dynamic types which can be indiviually
registered during a static build.

More details here:

https://gitlab.freedesktop.org/gstreamer/gst-build/-/merge_requests/199
https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/661

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

3 years agosndfile: allow per feature registration
Stéphane Cerveau [Fri, 19 Feb 2021 11:30:50 +0000 (12:30 +0100)]
sndfile: allow per feature registration

Split plugin into features including
dynamic types which can be indiviually
registered during a static build.

More details here:

https://gitlab.freedesktop.org/gstreamer/gst-build/-/merge_requests/199
https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/661

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

3 years agosmoothstreaming: allow per feature registration
Stéphane Cerveau [Fri, 19 Feb 2021 11:18:39 +0000 (12:18 +0100)]
smoothstreaming: allow per feature registration

Split plugin into features including
dynamic types which can be indiviually
registered during a static build.

More details here:

https://gitlab.freedesktop.org/gstreamer/gst-build/-/merge_requests/199
https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/661

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

3 years agosctp: allow per feature registration
Stéphane Cerveau [Fri, 19 Feb 2021 11:14:53 +0000 (12:14 +0100)]
sctp: allow per feature registration

Split plugin into features including
dynamic types which can be indiviually
registered during a static build.

More details here:

https://gitlab.freedesktop.org/gstreamer/gst-build/-/merge_requests/199
https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/661

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

3 years agosbc: allow per feature registration
Stéphane Cerveau [Fri, 19 Feb 2021 11:09:18 +0000 (12:09 +0100)]
sbc: allow per feature registration

Split plugin into features including
dynamic types which can be indiviually
registered during a static build.

More details here:

https://gitlab.freedesktop.org/gstreamer/gst-build/-/merge_requests/199
https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/661

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

3 years agortmp: allow per feature registration
Stéphane Cerveau [Fri, 19 Feb 2021 11:00:13 +0000 (12:00 +0100)]
rtmp: allow per feature registration

Split plugin into features including
dynamic types which can be indiviually
registered during a static build.

More details here:

https://gitlab.freedesktop.org/gstreamer/gst-build/-/merge_requests/199
https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/661

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

3 years agorsvg: allow per feature registration
Stéphane Cerveau [Fri, 19 Feb 2021 10:53:12 +0000 (11:53 +0100)]
rsvg: allow per feature registration

Split plugin into features including
dynamic types which can be indiviually
registered during a static build.

More details here:

https://gitlab.freedesktop.org/gstreamer/gst-build/-/merge_requests/199
https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/661

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

3 years agoresindvd: allow per feature registration
Stéphane Cerveau [Fri, 19 Feb 2021 10:40:40 +0000 (11:40 +0100)]
resindvd: allow per feature registration

Split plugin into features including
dynamic types which can be indiviually
registered during a static build.

More details here:

https://gitlab.freedesktop.org/gstreamer/gst-build/-/merge_requests/199
https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/661

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

3 years agoqroverlay: allow per feature registration
Stéphane Cerveau [Thu, 18 Feb 2021 15:23:42 +0000 (16:23 +0100)]
qroverlay: allow per feature registration

Split plugin into features including
dynamic types which can be indiviually
registered during a static build.

More details here:

https://gitlab.freedesktop.org/gstreamer/gst-build/-/merge_requests/199
https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/661

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

3 years agoopus: allow per feature registration
Stéphane Cerveau [Thu, 18 Feb 2021 14:56:44 +0000 (15:56 +0100)]
opus: allow per feature registration

Split plugin into features including
dynamic types which can be indiviually
registered during a static build.

More details here:

https://gitlab.freedesktop.org/gstreamer/gst-build/-/merge_requests/199
https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/661

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

3 years agoopenni2: allow per feature registration
Stéphane Cerveau [Thu, 18 Feb 2021 14:48:12 +0000 (15:48 +0100)]
openni2: allow per feature registration

Split plugin into features including
dynamic types which can be indiviually
registered during a static build.

More details here:

https://gitlab.freedesktop.org/gstreamer/gst-build/-/merge_requests/199
https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/661

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

3 years agoopenmpt: allow per feature registration
Stéphane Cerveau [Thu, 18 Feb 2021 14:42:44 +0000 (15:42 +0100)]
openmpt: allow per feature registration

Split plugin into features including
dynamic types which can be indiviually
registered during a static build.

More details here:

https://gitlab.freedesktop.org/gstreamer/gst-build/-/merge_requests/199
https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/661

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

3 years agoopenjpeg: allow per feature registration
Stéphane Cerveau [Thu, 18 Feb 2021 14:30:06 +0000 (15:30 +0100)]
openjpeg: allow per feature registration

Split plugin into features including
dynamic types which can be indiviually
registered during a static build.

More details here:

https://gitlab.freedesktop.org/gstreamer/gst-build/-/merge_requests/199
https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/661

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

3 years agoopenh264: allow per feature registration
Stéphane Cerveau [Thu, 18 Feb 2021 14:21:40 +0000 (15:21 +0100)]
openh264: allow per feature registration

Split plugin into features including
dynamic types which can be indiviually
registered during a static build.

More details here:

https://gitlab.freedesktop.org/gstreamer/gst-build/-/merge_requests/199
https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/661

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

3 years agoopenexr: allow per feature registration
Stéphane Cerveau [Thu, 18 Feb 2021 13:08:34 +0000 (14:08 +0100)]
openexr: allow per feature registration

Split plugin into features including
dynamic types which can be indiviually
registered during a static build.

More details here:

https://gitlab.freedesktop.org/gstreamer/gst-build/-/merge_requests/199
https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/661

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

3 years agoopencv: allow per feature registration
Stéphane Cerveau [Thu, 18 Feb 2021 12:34:54 +0000 (13:34 +0100)]
opencv: allow per feature registration

Split plugin into features including
dynamic types which can be indiviually
registered during a static build.

More details here:

https://gitlab.freedesktop.org/gstreamer/gst-build/-/merge_requests/199
https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/661

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

3 years agoopenaptx: allow per feature registration
Stéphane Cerveau [Thu, 18 Feb 2021 09:58:28 +0000 (10:58 +0100)]
openaptx: allow per feature registration

Split plugin into features including
dynamic types which can be indiviually
registered during a static build.

More details here:

https://gitlab.freedesktop.org/gstreamer/gst-build/-/merge_requests/199
https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/661

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

3 years agoopenal: allow per feature registration
Stéphane Cerveau [Thu, 18 Feb 2021 09:52:51 +0000 (10:52 +0100)]
openal: allow per feature registration

Split plugin into features including
dynamic types which can be indiviually
registered during a static build.

More details here:

https://gitlab.freedesktop.org/gstreamer/gst-build/-/merge_requests/199
https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/661

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

3 years agoofa: allow per feature registration
Stéphane Cerveau [Thu, 18 Feb 2021 09:41:53 +0000 (10:41 +0100)]
ofa: allow per feature registration

Split plugin into features including
dynamic types which can be indiviually
registered during a static build.

More details here:

https://gitlab.freedesktop.org/gstreamer/gst-build/-/merge_requests/199
https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/661

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

3 years agoneon: allow per feature registration
Stéphane Cerveau [Thu, 18 Feb 2021 09:35:34 +0000 (10:35 +0100)]
neon: allow per feature registration

Split plugin into features including
dynamic types which can be indiviually
registered during a static build.

More details here:

https://gitlab.freedesktop.org/gstreamer/gst-build/-/merge_requests/199
https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/661

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

3 years agomusepack: allow per feature registration
Stéphane Cerveau [Thu, 18 Feb 2021 09:24:18 +0000 (10:24 +0100)]
musepack: allow per feature registration

Split plugin into features including
dynamic types which can be indiviually
registered during a static build.

More details here:

https://gitlab.freedesktop.org/gstreamer/gst-build/-/merge_requests/199
https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/661

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

3 years agomplex: allow per feature registration
Stéphane Cerveau [Thu, 18 Feb 2021 09:17:20 +0000 (10:17 +0100)]
mplex: allow per feature registration

Split plugin into features including
dynamic types which can be indiviually
registered during a static build.

More details here:

https://gitlab.freedesktop.org/gstreamer/gst-build/-/merge_requests/199
https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/661

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

3 years agompeg2enc: allow per feature registration
Stéphane Cerveau [Thu, 18 Feb 2021 09:14:38 +0000 (10:14 +0100)]
mpeg2enc: allow per feature registration

Split plugin into features including
dynamic types which can be indiviually
registered during a static build.

More details here:

https://gitlab.freedesktop.org/gstreamer/gst-build/-/merge_requests/199
https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/661

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

3 years agomodplug: allow per feature registration
Stéphane Cerveau [Thu, 18 Feb 2021 09:10:16 +0000 (10:10 +0100)]
modplug: allow per feature registration

Split plugin into features including
dynamic types which can be indiviually
registered during a static build.

More details here:

https://gitlab.freedesktop.org/gstreamer/gst-build/-/merge_requests/199
https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/661

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

3 years agomdns: allow per feature registration
Stéphane Cerveau [Thu, 18 Feb 2021 08:56:08 +0000 (09:56 +0100)]
mdns: allow per feature registration

Split plugin into features including
dynamic types which can be indiviually
registered during a static build.

More details here:

https://gitlab.freedesktop.org/gstreamer/gst-build/-/merge_requests/199
https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/661

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

3 years agolibmms: allow per feature registration
Stéphane Cerveau [Thu, 18 Feb 2021 08:52:08 +0000 (09:52 +0100)]
libmms: allow per feature registration

Split plugin into features including
dynamic types which can be indiviually
registered during a static build.

More details here:

https://gitlab.freedesktop.org/gstreamer/gst-build/-/merge_requests/199
https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/661

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

3 years agolibde265: allow per feature registration
Stéphane Cerveau [Thu, 18 Feb 2021 08:50:21 +0000 (09:50 +0100)]
libde265: allow per feature registration

Split plugin into features including
dynamic types which can be indiviually
registered during a static build.

More details here:

https://gitlab.freedesktop.org/gstreamer/gst-build/-/merge_requests/199
https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/661

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

3 years agoldac: allow per feature registration
Stéphane Cerveau [Thu, 18 Feb 2021 08:48:04 +0000 (09:48 +0100)]
ldac: allow per feature registration

Split plugin into features including
dynamic types which can be indiviually
registered during a static build.

More details here:

https://gitlab.freedesktop.org/gstreamer/gst-build/-/merge_requests/199
https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/661

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

3 years agokate: allow per feature registration
Stéphane Cerveau [Wed, 17 Feb 2021 17:38:16 +0000 (18:38 +0100)]
kate: allow per feature registration

Split plugin into features including
dynamic types which can be indiviually
registered during a static build.

More details here:

https://gitlab.freedesktop.org/gstreamer/gst-build/-/merge_requests/199
https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/661

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

3 years agoisac: allow per feature registration
Stéphane Cerveau [Wed, 17 Feb 2021 17:26:42 +0000 (18:26 +0100)]
isac: allow per feature registration

Split plugin into features including
dynamic types which can be indiviually
registered during a static build.

More details here:

https://gitlab.freedesktop.org/gstreamer/gst-build/-/merge_requests/199
https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/661

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

3 years agoiqa: allow per feature registration
Stéphane Cerveau [Wed, 17 Feb 2021 17:23:21 +0000 (18:23 +0100)]
iqa: allow per feature registration

Split plugin into features including
dynamic types which can be indiviually
registered during a static build.

More details here:

https://gitlab.freedesktop.org/gstreamer/gst-build/-/merge_requests/199
https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/661

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

3 years agohls: allow per feature registration
Stéphane Cerveau [Wed, 17 Feb 2021 17:17:08 +0000 (18:17 +0100)]
hls: allow per feature registration

Split plugin into features including
dynamic types which can be indiviually
registered during a static build.

More details here:

https://gitlab.freedesktop.org/gstreamer/gst-build/-/merge_requests/199
https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/661

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

3 years agogsm: allow per feature registration
Stéphane Cerveau [Wed, 17 Feb 2021 17:07:42 +0000 (18:07 +0100)]
gsm: allow per feature registration

Split plugin into features including
dynamic types which can be indiviually
registered during a static build.

More details here:

https://gitlab.freedesktop.org/gstreamer/gst-build/-/merge_requests/199
https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/661

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

3 years agogme: allow per feature registration
Stéphane Cerveau [Wed, 17 Feb 2021 17:04:20 +0000 (18:04 +0100)]
gme: allow per feature registration

Split plugin into features including
dynamic types which can be indiviually
registered during a static build.

More details here:

https://gitlab.freedesktop.org/gstreamer/gst-build/-/merge_requests/199
https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/661

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

3 years agofluidsynth: allow per feature registration
Stéphane Cerveau [Wed, 17 Feb 2021 17:01:05 +0000 (18:01 +0100)]
fluidsynth: allow per feature registration

Split plugin into features including
dynamic types which can be indiviually
registered during a static build.

More details here:

https://gitlab.freedesktop.org/gstreamer/gst-build/-/merge_requests/199
https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/661

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

3 years agofdkaac: allow per feature registration
Stéphane Cerveau [Wed, 17 Feb 2021 15:05:02 +0000 (16:05 +0100)]
fdkaac: allow per feature registration

Split plugin into features including
dynamic types which can be indiviually
registered during a static build.

More details here:

https://gitlab.freedesktop.org/gstreamer/gst-build/-/merge_requests/199
https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/661

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

3 years agofaad: allow per feature registration
Stéphane Cerveau [Wed, 17 Feb 2021 14:59:49 +0000 (15:59 +0100)]
faad: allow per feature registration

Split plugin into features including
dynamic types which can be indiviually
registered during a static build.

More details here:

https://gitlab.freedesktop.org/gstreamer/gst-build/-/merge_requests/199
https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/661

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

3 years agofaac: allow per feature registration
Stéphane Cerveau [Wed, 17 Feb 2021 14:59:36 +0000 (15:59 +0100)]
faac: allow per feature registration

Split plugin into features including
dynamic types which can be indiviually
registered during a static build.

More details here:

https://gitlab.freedesktop.org/gstreamer/gst-build/-/merge_requests/199
https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/661

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

3 years agodts: allow per feature registration
Stéphane Cerveau [Wed, 17 Feb 2021 14:35:10 +0000 (15:35 +0100)]
dts: allow per feature registration

Split plugin into features including
dynamic types which can be indiviually
registered during a static build.

More details here:

https://gitlab.freedesktop.org/gstreamer/gst-build/-/merge_requests/199
https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/661

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

3 years agodtls: allow per feature registration
Stéphane Cerveau [Wed, 17 Feb 2021 11:22:07 +0000 (12:22 +0100)]
dtls: allow per feature registration

Split plugin into features including
dynamic types which can be indiviually
registered during a static build.

More details here:

https://gitlab.freedesktop.org/gstreamer/gst-build/-/merge_requests/199
https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/661

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

3 years agodirectfb: allow per feature registration
Stéphane Cerveau [Wed, 17 Feb 2021 11:10:31 +0000 (12:10 +0100)]
directfb: allow per feature registration

Split plugin into features including
dynamic types which can be indiviually
registered during a static build.

More details here:

https://gitlab.freedesktop.org/gstreamer/gst-build/-/merge_requests/199
https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/661

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

3 years agodc1394: allow per feature registration
Stéphane Cerveau [Wed, 17 Feb 2021 11:07:48 +0000 (12:07 +0100)]
dc1394: allow per feature registration

Split plugin into features including
dynamic types which can be indiviually
registered during a static build.

More details here:

https://gitlab.freedesktop.org/gstreamer/gst-build/-/merge_requests/199
https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/661

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

3 years agodash: allow per feature registration
Stéphane Cerveau [Wed, 17 Feb 2021 11:03:05 +0000 (12:03 +0100)]
dash: allow per feature registration

Split plugin into features including
dynamic types which can be indiviually
registered during a static build.

More details here:

https://gitlab.freedesktop.org/gstreamer/gst-build/-/merge_requests/199
https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/661

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

3 years agocurl: allow per feature registration
Stéphane Cerveau [Wed, 17 Feb 2021 10:55:14 +0000 (11:55 +0100)]
curl: allow per feature registration

Split plugin into features including
dynamic types which can be indiviually
registered during a static build.

More details here:

https://gitlab.freedesktop.org/gstreamer/gst-build/-/merge_requests/199
https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/661

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

3 years agocolormanagement: allow per feature registration
Stéphane Cerveau [Wed, 17 Feb 2021 10:43:33 +0000 (11:43 +0100)]
colormanagement: allow per feature registration

Split plugin into features including
dynamic types which can be indiviually
registered during a static build.

More details here:

https://gitlab.freedesktop.org/gstreamer/gst-build/-/merge_requests/199
https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/661

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

3 years agoclosedcaption: allow per feature registration
Stéphane Cerveau [Wed, 17 Feb 2021 10:31:35 +0000 (11:31 +0100)]
closedcaption: allow per feature registration

Split plugin into features including
dynamic types which can be indiviually
registered during a static build.

More details here:

https://gitlab.freedesktop.org/gstreamer/gst-build/-/merge_requests/199
https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/661

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

3 years agochromaprint: allow per feature registration
Stéphane Cerveau [Wed, 17 Feb 2021 09:23:15 +0000 (10:23 +0100)]
chromaprint: allow per feature registration

Split plugin into features including
dynamic types which can be indiviually
registered during a static build.

More details here:

https://gitlab.freedesktop.org/gstreamer/gst-build/-/merge_requests/199
https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/661

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

3 years agobz2: allow per feature registration
Stéphane Cerveau [Wed, 17 Feb 2021 09:13:45 +0000 (10:13 +0100)]
bz2: allow per feature registration

Split plugin into features including
dynamic types which can be indiviually
registered during a static build.

More details here:

https://gitlab.freedesktop.org/gstreamer/gst-build/-/merge_requests/199
https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/661

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

3 years agobs2b: allow per feature registration
Stéphane Cerveau [Wed, 17 Feb 2021 09:10:39 +0000 (10:10 +0100)]
bs2b: allow per feature registration

Split plugin into features including
dynamic types which can be indiviually
registered during a static build.

More details here:

https://gitlab.freedesktop.org/gstreamer/gst-build/-/merge_requests/199
https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/661

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

3 years agoavtp: allow per feature registration
Stéphane Cerveau [Wed, 17 Feb 2021 09:05:20 +0000 (10:05 +0100)]
avtp: allow per feature registration

Split plugin into features including
dynamic types which can be indiviually
registered during a static build.

More details here:

https://gitlab.freedesktop.org/gstreamer/gst-build/-/merge_requests/199
https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/661

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

3 years agoassrender: allow per feature registration
Stéphane Cerveau [Wed, 17 Feb 2021 08:45:04 +0000 (09:45 +0100)]
assrender: allow per feature registration

Split plugin into features including
dynamic types which can be indiviually
registered during a static build.

More details here:

https://gitlab.freedesktop.org/gstreamer/gst-build/-/merge_requests/199
https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/661

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

3 years agoaom: allow per feature registration
Julian Bouzas [Mon, 17 Aug 2020 13:52:11 +0000 (09:52 -0400)]
aom: allow per feature registration

Split plugin into features including
dynamic types which can be indiviually
registered during a static build.

More details here:

https://gitlab.freedesktop.org/gstreamer/gst-build/-/merge_requests/199
https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/661

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

3 years agod3d11decoder: Enable high precision clock if needed
Seungha Yang [Tue, 23 Mar 2021 07:26:13 +0000 (16:26 +0900)]
d3d11decoder: Enable high precision clock if needed

We've been doing retry with 1ms sleep if DecoderBeginFrame()
returned E_PENDING which means application should call
DecoderBeginFrame() again because GPU is busy.
The 1ms sleep() during retry would result in usually about 15ms delay
in reality because of bad clock precision on Windows.
To improve throughput performance, this commit will enable
high precision clock only for NVIDIA platform since
DecoderBeginFrame() call on the other GPU vendors seems to
succeed without retry.

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

3 years agompegpsdemux: fix accurate seek
Stéphane Cerveau [Wed, 3 Mar 2021 15:03:07 +0000 (16:03 +0100)]
mpegpsdemux: fix accurate seek

In an accurate seek, the segment start should be
the same as the one requested in the seek.
The start should be kept as the one from the
segment if its inferior.

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

3 years agompegpsdemux: Keep seqnum events
Stéphane Cerveau [Wed, 3 Mar 2021 13:11:21 +0000 (14:11 +0100)]
mpegpsdemux: Keep seqnum events

Keep the same seqnum of the new segment events for each
of the streams.
Keep the segment to send the EOS event.
Keep the seek seqnum for segment and flush event.

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

3 years agompegpsdemux: avoid early EOS
Stéphane Cerveau [Mon, 1 Mar 2021 15:23:09 +0000 (16:23 +0100)]
mpegpsdemux: avoid early EOS

In a case of a scr different from 0, after a seek,
the src_segment.stop has been updated with the duration
not including the base_time (scr). The segment position
needs to be tested upon segment.stop + base_time (scr)
to check for an EOS.

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

3 years agova: postproc: disable passthrough as soon as possible
Víctor Manuel Jáquez Leal [Fri, 19 Mar 2021 15:17:41 +0000 (16:17 +0100)]
va: postproc: disable passthrough as soon as possible

After the VA filter creation, when changing the element's state from NULL
to READY, immediatly checks for any filter operation requested by the user.
If any, the passthrough mode is disabled early, so there's no need for a
future renegotiation.

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

3 years agova: postproc: rename function to gst_va_vpp_update_passthrough
Víctor Manuel Jáquez Leal [Fri, 19 Mar 2021 15:14:08 +0000 (16:14 +0100)]
va: postproc: rename function to gst_va_vpp_update_passthrough

Since it's widely used, a proper name will reflect its importance.

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

3 years agogst: don't use volatile to mean atomic
Matthew Waters [Mon, 22 Mar 2021 03:34:36 +0000 (14:34 +1100)]
gst: don't use volatile to mean atomic

volatile is not sufficient to provide atomic guarantees and real atomics
should be used instead.  GCC 11 has started warning about using volatile
with atomic operations.

https://gitlab.gnome.org/GNOME/glib/-/merge_requests/1719

Discovered in https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/issues/868

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

3 years agomfvideoenc: Enable Direct3D multi-thread protection
Seungha Yang [Sat, 20 Mar 2021 07:26:21 +0000 (16:26 +0900)]
mfvideoenc: Enable Direct3D multi-thread protection

As documented by MS. See also
https://docs.microsoft.com/en-us/windows/win32/medfound/supporting-direct3d-11-video-decoding-in-media-foundation#open-a-device-handle

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

3 years agoRevert "d3d11: Enable native multi-thread protection layer and make use of it"
Seungha Yang [Sat, 20 Mar 2021 07:15:35 +0000 (16:15 +0900)]
Revert "d3d11: Enable native multi-thread protection layer and make use of it"

This reverts commit 872b7f503c49442e559f6a381416c6a84b76a3c6.

Native multi-thread protection layer seems to be consuming more CPU
resource than application side protection approach in some cases

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

3 years agotests/webrtc: check for more sdp things across the board
Matthew Waters [Fri, 19 Mar 2021 05:36:41 +0000 (16:36 +1100)]
tests/webrtc: check for more sdp things across the board

e.g.

- test for a=setup:$val and direction attributes in all tests
- test number of media sections
- test number of formats in each m= section (for audio/video)
- test no duplicate formats

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

3 years agogs: add source and sink for Google Cloud Storage
Julien [Tue, 23 Jun 2020 19:41:27 +0000 (12:41 -0700)]
gs: add source and sink for Google Cloud Storage

Useful when having a service that runs a GStreamer pipeline
or application in Google Cloud to avoid storing the inputs
and outputs in the running container or service. For example
when analyzing a video from a Google Cloud Storage bucket
and extracting images or converting the video and then uploading
the results into another Google Cloud Storage bucket.

- gssrc allows to read from a file located in Google Cloud
Storage and it supports seeking.
- gssink allows to write to a file located in Google Cloud
Storage. There are 2 modes, one similar to multifilesink and
the other similar to filesink.

Example:
  gst-launch-1.0 gssrc location=gs://mybucket/videos/sample.mp4 ! decodebin ! glimagesink
  gst-launch-1.0 playbin uri=gs://mybucket/videos/sample.mp4
  gst-launch-1.0 videotestsrc num-buffers=5 ! pngenc ! gssink object-name="img/img%05d.png" bucket-name="mybucket" next-file=buffer
  gst-launch-1.0 filesrc location=sample.mp4 ! gssink object-name="videos/video.mp4" bucket-name="mybucket" next-file=none

When running locally simply set GOOGLE_APPLICATION_CREDENTIALS. But
when running in Google Cloud Run or Google Cloud Engine, just set the
"service-account-email" property on each element.

Closes #1264

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

3 years agod3d11: Enable native multi-thread protection layer and make use of it
Seungha Yang [Wed, 17 Mar 2021 14:53:04 +0000 (23:53 +0900)]
d3d11: Enable native multi-thread protection layer and make use of it

... instead of our own GRecMutex locking. In this way, any other
Direct3D11 client (MediaFoundation for example) can safely call
any Direct3D11 API even when we are sharing our Direct3D11 device
with others.

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

3 years agoexamples: Add an mpegtsmux example of prog-map usage.
Jan Schmidt [Thu, 25 Feb 2021 16:28:29 +0000 (03:28 +1100)]
examples: Add an mpegtsmux example of prog-map usage.

Add an example of how to construct the prog-map structure for
the MPEG-TS muxers and assign streams to programs, and set PCR
and PMT PIDs.

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

3 years agompegtsmux: Add PMT_%d support to prog-map.
Jan Schmidt [Thu, 25 Feb 2021 15:53:33 +0000 (02:53 +1100)]
mpegtsmux: Add PMT_%d support to prog-map.

Support a PMT_%d field in the prog-map, that's optionally used
to set the PMT for each program in the mux.

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

3 years agompegtsmux: Don't write PCR until PAT/PMT are output.
Jan Schmidt [Fri, 12 Mar 2021 07:10:18 +0000 (18:10 +1100)]
mpegtsmux: Don't write PCR until PAT/PMT are output.

Make sure streams start cleanly with a PAT/PMT and defer the first PCR
output until after that.

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

3 years agotsmux: finalize PCR timing for complete accuracy
Mathieu Duponchelle [Thu, 11 Mar 2021 17:21:11 +0000 (18:21 +0100)]
tsmux: finalize PCR timing for complete accuracy

In order to always insert a PCR packet right on time, we need to
check whether one is needed when outputting any packet, not only
a packet for the PCR stream. Most of the PCR packets will remain
data-carrying packets, but as a last resort we may insert stuffing
packets on the PCR stream.

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

3 years agompegtsmux: Improve PCR/SI scheduling.
Jan Schmidt [Thu, 11 Mar 2021 07:05:25 +0000 (18:05 +1100)]
mpegtsmux: Improve PCR/SI scheduling.

Change PCR / SI scheduling so that instead of checking if
the current PCR is larger than the next target time, instead
check if the PCR of the next packet would be too late, so PCR
and SI are always scheduled earlier than the target, not later.

There are still cases where PCR can be written too late though,
because we don't check before each output packet.

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

3 years agotsmuxstream: Fix comment typo
Jan Schmidt [Thu, 11 Mar 2021 07:05:10 +0000 (18:05 +1100)]
tsmuxstream: Fix comment typo

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

3 years agocccombiner: implement scheduling
Mathieu Duponchelle [Tue, 9 Mar 2021 12:22:10 +0000 (13:22 +0100)]
cccombiner: implement scheduling

Prior to that, cccombiner's behaviour was essentially that of
a funnel: it strictly looked at input timestamps to associate
together video and caption buffers.

This patch instead exposes a "schedule" property, with a default
of TRUE, to control whether caption buffers should be smoothly
scheduled, in order to have exactly one per output video buffer.

This can involve rewriting input captions, for example when the
input is CDP sequence counters are rewritten, time codes are dropped
and potentially re-injected if the input video frame had a time code
meta.

Caption buffers may also get split up in order to assign captions to
the correct field when the input is interlaced.

This can also imply that the input will drift from synchronization,
when there isn't enough padding in the input stream to catch up. In
that case the element will start dropping old caption buffers once
the number of buffers in its internal queue reaches a certain limit
(configurable).

The property is exposed so that existing users of cccombiner can
revert back to the original behaviour, but should eventually be
removed, as that behaviour was simply inadequate.

This commit also disallows changing the input caption type, as
this would needlessly complicate implementation, and removes
the corresponding test.

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

3 years agod3d11: Use render-target and shader-resource bind flags by default
Seungha Yang [Wed, 17 Mar 2021 10:26:12 +0000 (19:26 +0900)]
d3d11: Use render-target and shader-resource bind flags by default

Even if bind flags is not needed by an element, other element
might need such bind flags.

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

3 years agova: vpp: Fix features lost in transform_caps().
He Junyan [Sun, 14 Mar 2021 16:04:21 +0000 (00:04 +0800)]
va: vpp: Fix features lost in transform_caps().

When we transform the caps from the sink to src, or vice versa, the
"caps" passed to us may only contain parts of the features. Which
makes our vpp lose some feature in caps and get a negotiation error.
The correct way should be:
Cleaning the format and resolution of that caps, but adding all VA,
DMA features to it, making it a full feature caps. Then, clipping it
with the pad template.

fixes: #1551

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

3 years agowpe: Ignore 'error-cancelled' 'failures'
Thibault Saunier [Mon, 15 Mar 2021 19:25:36 +0000 (16:25 -0300)]
wpe: Ignore 'error-cancelled' 'failures'

This happens when the user use the 'load-bytes' signal and nothing is wrong there

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

3 years agod3d11decoder: WARNING if ID3D11VideoDevice is unavailable, not ERROR
Seungha Yang [Tue, 16 Mar 2021 10:09:59 +0000 (19:09 +0900)]
d3d11decoder: WARNING if ID3D11VideoDevice is unavailable, not ERROR

gst_d3d11_decoder_new() method is also used for device capability
checking during plugin init. Although we are checking hardware
flag prior to that, it doesn't guarantee ID3D11VideoDevice interface.

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

3 years agomediafoundation: Fix resource leak
Seungha Yang [Tue, 16 Mar 2021 08:56:51 +0000 (17:56 +0900)]
mediafoundation: Fix resource leak

IMFActivate would hold its internal objects unless user call ShutdownObject(),
even if we release the IMFActivate. Here internal objects may
include Direct3D objects, such as texture, device handle for example.

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