platform/upstream/gstreamer.git
18 months agogdkpixbufoverlay: fix docs - changing images at runtime is supported
Tim-Philipp Müller [Tue, 15 Nov 2022 13:38:18 +0000 (13:38 +0000)]
gdkpixbufoverlay: fix docs - changing images at runtime is supported

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3415>

18 months agovideodecoder: Consider having output data when the subclass drops a frame
Sebastian Dröge [Mon, 14 Nov 2022 18:38:09 +0000 (20:38 +0200)]
videodecoder: Consider having output data when the subclass drops a frame

The subclass might drop a frame for QoS reasons (e.g. vpxdec) and if all
frames are dropped because of that it wouldn't make sense to post an
error message on EOS.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3408>

18 months agocodectimestamper: Remove duplicated GstSegment struct
Seungha Yang [Tue, 15 Nov 2022 18:15:44 +0000 (03:15 +0900)]
codectimestamper: Remove duplicated GstSegment struct

Use the one in priv struct. And use gst_segment_is_equal()
to compare GstSegment

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3380>

18 months agoh264/5timestamper: provide a workaround for h264/5parse producing pts=NONE buffers
Matthew Waters [Wed, 9 Nov 2022 07:03:48 +0000 (18:03 +1100)]
h264/5timestamper: provide a workaround for h264/5parse producing pts=NONE buffers

A workaround for
https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/649
and
https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/287
which is hard to change baseparse behaviour for both video and audio
parsers.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3380>

18 months agortpjitterbuffer: Unlock timer waits on flushing
Edward Hervey [Sun, 13 Nov 2022 07:38:25 +0000 (08:38 +0100)]
rtpjitterbuffer: Unlock timer waits on flushing

If there is a pending EOS wait for example, we would never unblock on flushing

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3401>

18 months agoinspect: Print default value of ValueArray properties
Thibault Saunier [Wed, 9 Nov 2022 19:57:15 +0000 (16:57 -0300)]
inspect: Print default value of ValueArray properties

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3377>

18 months agonvcodec: Update plugin cache
Seungha Yang [Fri, 11 Nov 2022 21:16:59 +0000 (06:16 +0900)]
nvcodec: Update plugin cache

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3389>

18 months agotests: cudaconvert: Update test code
Seungha Yang [Fri, 11 Nov 2022 20:45:15 +0000 (05:45 +0900)]
tests: cudaconvert: Update test code

Adding more formats, and rescale test with borders

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3389>

18 months agocudaconvertscale, cudascale: Add "add-borders" property and support 8bits RGB planar...
Seungha Yang [Fri, 11 Nov 2022 19:48:50 +0000 (04:48 +0900)]
cudaconvertscale, cudascale: Add "add-borders" property and support 8bits RGB planar formats

Adding "add-borders" property which is identical to that of
videoscale and this will be enabled by default.
And adding RGBP/BGRP/GBR/GBRA format support.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3389>

18 months agocuda: Rewrite colorspace/rescale object
Seungha Yang [Fri, 11 Nov 2022 19:06:32 +0000 (04:06 +0900)]
cuda: Rewrite colorspace/rescale object

Rewriting GstCudaConverter object, since the old implementation was not
well organized and it's hard to add new features.
Moreover, the conversion operations were not very optimized.

Major change of this implementation:
* Remove redundant intermediate conversion operations such as
  any RGB -> ARGB(64) conversion or any YUV -> Y444 (or 16bits Y444).
  That's not required most of cases. The only required case is
  converting 24bits (such as RGB/BGR) packed format to 32bits format
  because CUDA texture object does not support sampling 24bits format
* Use normalized sample fetching (i.e., [0, 1] range float value)
  and also normalized coordinates system for CUDA texture.
  It's consistent with the other graphics APIs such as Direct3D
  and OpenGL, that makes sampling operations much easier.
* Support a kind of viewport and adopt math for colorspace conversion
  from GstD3D11 implementation

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3389>

18 months agocudaupload,cudadownload: Add support for planar 8bits RGB formats
Seungha Yang [Thu, 10 Nov 2022 10:38:03 +0000 (19:38 +0900)]
cudaupload,cudadownload: Add support for planar 8bits RGB formats

Defines RGBP, BGRP, and GBR formats, which have the same memory
layout as already supported Y444. And defines GBRA format as well
which needs just one additional alpha plane

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3389>

18 months agocudacontext: Store texture alignment
Seungha Yang [Thu, 10 Nov 2022 11:47:44 +0000 (20:47 +0900)]
cudacontext: Store texture alignment

it was missed in the previous refactoring

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3389>

18 months agocudaconvert, cudascale: Port to GstCudaBaseCovert baseclass
Seungha Yang [Fri, 11 Nov 2022 19:01:08 +0000 (04:01 +0900)]
cudaconvert, cudascale: Port to GstCudaBaseCovert baseclass

Don't need to hold duplicated code in the source tree

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3389>

18 months agocuda: Add convertscale element
Seungha Yang [Wed, 9 Nov 2022 12:31:01 +0000 (21:31 +0900)]
cuda: Add convertscale element

GstCudaConverter object can do colorspace conversion and scale at once.
Adding new element "cudaconvertscale" to do that, this can
save unnecessary GPU operation if colorspace conversion and
rescale is required for given input stream format.

Most of codes are taken from d3d11convert element

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3389>

18 months agotypefindhelper: Use the new GstTypeFind * API
Sanchayan Maity [Mon, 31 Oct 2022 13:39:06 +0000 (19:09 +0530)]
typefindhelper: Use the new GstTypeFind * API

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3296>

18 months agotypefindhelper: Introduce a new API for working with a GstTypeFind *
Sanchayan Maity [Mon, 31 Oct 2022 13:03:19 +0000 (18:33 +0530)]
typefindhelper: Introduce a new API for working with a GstTypeFind *

Introduce a new API that can return a GstTypeFind * with helper functions
and data set around buffer data.

While at it, drop factory field from GstTypeFindBufHelper. While it was
useful for logging, it was not passed through function arguments and keeping
it for logging would require an additional API increasing the API surface
and making it harder to use.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3296>

18 months agotypefindhelper: Add helpers to improve type finding given the caps
Sanchayan Maity [Tue, 15 Nov 2022 09:15:56 +0000 (14:45 +0530)]
typefindhelper: Add helpers to improve type finding given the caps

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3296>

18 months agotypefindhelper: Update annotation for function parameters
Sanchayan Maity [Sun, 30 Oct 2022 07:37:14 +0000 (13:07 +0530)]
typefindhelper: Update annotation for function parameters

Fix the nullable/optional situation. allow-none is deprecated and
replaced by either or both of the others.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3296>

18 months agovalidate-scenario: Avoid timeouts on EOS
Edward Hervey [Mon, 14 Nov 2022 06:27:28 +0000 (07:27 +0100)]
validate-scenario: Avoid timeouts on EOS

If there is an EOS and the next action is waiting for a playback time, execute
it since we are guaranteed the position won't change anymore.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3403>

18 months agogstplay: add warning message details check before post it
Elliot Chen [Thu, 10 Nov 2022 06:39:12 +0000 (14:39 +0800)]
gstplay: add warning message details check before post it

For some warning message which has no detail data, need check to avoid printing critical log.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3382>

18 months agotests: Add DASH MPD baseURL with query test
Rafał Dzięgiel [Thu, 14 Oct 2021 09:56:58 +0000 (11:56 +0200)]
tests: Add DASH MPD baseURL with query test

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1147>

18 months agompdparser: Fix missing baseURL query
Rafał Dzięgiel [Thu, 14 Oct 2021 08:12:51 +0000 (10:12 +0200)]
mpdparser: Fix missing baseURL query

When no initializationURL or mediaURL, return baseURL that also
contains original URI query if available. This fixes a problem
where URI query was being omitted in the HTTP requests.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1147>

18 months agompdparser: Be consistent about returning duplicated URL
Rafał Dzięgiel [Thu, 14 Oct 2021 08:09:31 +0000 (10:09 +0200)]
mpdparser: Be consistent about returning duplicated URL

Instead of returning a "const gchar" or a "gchar" that should not be freed, always
return a duplicated string as those functions were used together with g_strdup anyway.

This is needed to prepare support for returning modified strings in next commit.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1147>

18 months agompdparser: Return correct mediaURL value
Rafał Dzięgiel [Thu, 14 Oct 2021 08:18:40 +0000 (10:18 +0200)]
mpdparser: Return correct mediaURL value

This fixes a problem where get_mediaURL was returning NULL when segmentURL
was unavailable instead of baseURL as a fallback.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1147>

18 months agod3d11converter: Fix YUY2 conversion error
Seungha Yang [Sat, 12 Nov 2022 17:08:15 +0000 (02:08 +0900)]
d3d11converter: Fix YUY2 conversion error

Always configure shader conversion path, then fallback to the
shader path if processor is not available

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3392>

18 months agod3d11: Add support for planar RGB formats
Seungha Yang [Sat, 12 Nov 2022 13:55:52 +0000 (22:55 +0900)]
d3d11: Add support for planar RGB formats

Adding RGBP, BGRP, GBR, GBR_10LE, GBR_12LE, GBRA, GBRA_10LE, and
GBRA_12LE format support

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3392>

18 months agod3d11screencapturesrc: Update plugin cache
Seungha Yang [Sat, 12 Nov 2022 17:28:42 +0000 (02:28 +0900)]
d3d11screencapturesrc: Update plugin cache

Missed in
https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3360

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3392>

18 months agooggdemux: Don't leak incoming EOS event
Edward Hervey [Mon, 14 Nov 2022 06:26:25 +0000 (07:26 +0100)]
oggdemux: Don't leak incoming EOS event

If we're going to drop it ... then do drop it :)

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3400>

18 months agomatroskademux: Handle element's duration query.
Víctor Manuel Jáquez Leal [Mon, 14 Nov 2022 11:51:19 +0000 (12:51 +0100)]
matroskademux: Handle element's duration query.

This is small regression from commit f7abd81a.

When calling `gst_element_query()` no pad is associated with that query, but the
current code always forwards the query to the associated pad, which is NULL in
previous case. This patch checks for the pad before forwarding the query.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3404>

18 months agoaesdec: Fix padding removal for per-buffer-padding=FALSE
Jan Schmidt [Mon, 14 Nov 2022 13:11:15 +0000 (00:11 +1100)]
aesdec: Fix padding removal for per-buffer-padding=FALSE

When per-buffer-padding is FALSE, the OpenSSL context needs
to be told to remove any padding at the end of the ciphertext

Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/1243

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3406>

18 months agoadaptivedemux2: Fix parent object leak
Rafał Dzięgiel [Sun, 13 Nov 2022 11:18:54 +0000 (12:18 +0100)]
adaptivedemux2: Fix parent object leak

gst_object_get_parent() method is transfer-full, thus unref is needed

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3396>

18 months agopbutils/encoding-profile: Streamline cleanup
Edward Hervey [Sat, 12 Nov 2022 10:35:58 +0000 (11:35 +0100)]
pbutils/encoding-profile: Streamline cleanup

Cleanup all local variables in one place, and ensure failure cases go through there.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3390>

18 months agoavvidenc: Don't leak AVPacket on EOF
Edward Hervey [Sat, 12 Nov 2022 08:54:31 +0000 (09:54 +0100)]
avvidenc: Don't leak AVPacket on EOF

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3390>

18 months agoavcfg: Don't leak the support GArray when registering flag/enums
Edward Hervey [Sat, 12 Nov 2022 08:53:14 +0000 (09:53 +0100)]
avcfg: Don't leak the support GArray when registering flag/enums

* Only create it if we are attempting to put values in it
* If we sucessfully registered the values, only free the GArray
* IF we didn't, also free the backing memory

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3390>

18 months agotranscodebin: Use const arguments for clarity
Edward Hervey [Sat, 12 Nov 2022 08:16:36 +0000 (09:16 +0100)]
transcodebin: Use const arguments for clarity

And rename it when it classhes with existing local variable

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3390>

18 months agotranscodebin: Don't leak GstStream
Edward Hervey [Sat, 12 Nov 2022 08:15:23 +0000 (09:15 +0100)]
transcodebin: Don't leak GstStream

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3390>

18 months agotranscode: Don't leak caps
Edward Hervey [Sat, 12 Nov 2022 07:35:27 +0000 (08:35 +0100)]
transcode: Don't leak caps

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3390>

18 months agotranscode: Don't leak timer
Edward Hervey [Sat, 12 Nov 2022 07:35:12 +0000 (08:35 +0100)]
transcode: Don't leak timer

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3390>

18 months agovalidate-scenario: Don't leak GFile
Edward Hervey [Sat, 12 Nov 2022 07:18:42 +0000 (08:18 +0100)]
validate-scenario: Don't leak GFile

And use specific variables for clarity in loops.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3390>

18 months agovalidate: Don't leak discoverer information
Edward Hervey [Sat, 12 Nov 2022 09:40:22 +0000 (10:40 +0100)]
validate: Don't leak discoverer information

The various streaminfo were being overwritten without being unreffed first

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3390>

18 months agompegtsbase: Don't leak GList
Edward Hervey [Fri, 11 Nov 2022 13:37:17 +0000 (14:37 +0100)]
mpegtsbase: Don't leak GList

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3390>

18 months agovalidate: Don't deinit too early
Edward Hervey [Fri, 11 Nov 2022 13:19:15 +0000 (14:19 +0100)]
validate: Don't deinit too early

If we are going to use the validate functions ... do that *before*
deinit'ing.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3390>

18 months agostreamsynchronizer: Don't leak the syncstream object
Edward Hervey [Fri, 11 Nov 2022 13:18:21 +0000 (14:18 +0100)]
streamsynchronizer: Don't leak the syncstream object

It was leaked when breaking out early when handling GST_EVENT_STREAM_START

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3390>

18 months agouritranscodebin: Don't leak uris, profile, sinkpad and filters
Edward Hervey [Sat, 12 Nov 2022 09:04:39 +0000 (10:04 +0100)]
uritranscodebin: Don't leak uris, profile, sinkpad and filters

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3390>

18 months agotranscodebin: Don't leak profile
Edward Hervey [Sat, 12 Nov 2022 09:04:26 +0000 (10:04 +0100)]
transcodebin: Don't leak profile

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3390>

18 months agotranscodebin: Actually free the TranscodingStream structure
Edward Hervey [Sat, 12 Nov 2022 09:03:48 +0000 (10:03 +0100)]
transcodebin: Actually free the TranscodingStream structure

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3390>

18 months agotranscoder: Don't leak API bus and GMainLoop
Edward Hervey [Sat, 12 Nov 2022 09:02:53 +0000 (10:02 +0100)]
transcoder: Don't leak API bus and GMainLoop

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3390>

18 months agoavvidenc: Don't leak filename
Edward Hervey [Sat, 12 Nov 2022 09:02:15 +0000 (10:02 +0100)]
avvidenc: Don't leak filename

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3390>

18 months agoencodebasebin: Don't leak muxer pad
Edward Hervey [Sat, 12 Nov 2022 09:00:01 +0000 (10:00 +0100)]
encodebasebin: Don't leak muxer pad

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3390>

18 months agopbutils/encoding-profile: Don't leak string array
Edward Hervey [Sat, 12 Nov 2022 08:58:41 +0000 (09:58 +0100)]
pbutils/encoding-profile: Don't leak string array

It was never freed

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3390>

18 months agostreams: Reset stream id field on finalize
Edward Hervey [Sat, 12 Nov 2022 08:57:18 +0000 (09:57 +0100)]
streams: Reset stream id field on finalize

If debugging is activated, the parent class finalize might attempt to read it

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3390>

18 months agomeson: d3d11: Clarify the message for WGC support check
Seungha Yang [Wed, 9 Nov 2022 18:23:53 +0000 (03:23 +0900)]
meson: d3d11: Clarify the message for WGC support check

Even Windows10 SDK seems to have required symbols depending on installed
SDK version

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3376>

18 months agod3d11screencapturesrc: Fix build error with MSVC x86
Seungha Yang [Wed, 9 Nov 2022 17:49:38 +0000 (02:49 +0900)]
d3d11screencapturesrc: Fix build error with MSVC x86

Delete the code for now. Note that the code block is unnecessary already

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3375>

18 months agoUpdated the Pango broken link
Taruntej Kanakamalla [Thu, 7 Jul 2022 06:55:14 +0000 (06:55 +0000)]
Updated the Pango broken link

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2723>

18 months agoUpdated the GObject tutorial link
Taruntej Kanakamalla [Thu, 7 Jul 2022 06:21:07 +0000 (06:21 +0000)]
Updated the GObject tutorial link

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2723>

18 months agorawvideoparse: Fix support for sub-sampled tile
Nicolas Dufresne [Thu, 10 Nov 2022 14:49:41 +0000 (09:49 -0500)]
rawvideoparse: Fix support for sub-sampled tile

This element was missed as it does not use the new helpers to calculate the
plane size. The code is relatively simple though, so adding support for
subsample tiles was easy enough.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3385>

18 months agowebrtc/datachannel: handle error messages from appsrc/sink
Matthew Waters [Thu, 10 Nov 2022 03:31:43 +0000 (14:31 +1100)]
webrtc/datachannel: handle error messages from appsrc/sink

Fixes a possible race where closing a data channel may produce e.g.
not-linked errors.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3381>

18 months agosctpdec: fix stream reset (src pad removal) if no data is ever received
Matthew Waters [Thu, 10 Nov 2022 03:22:30 +0000 (14:22 +1100)]
sctpdec: fix stream reset (src pad removal) if no data is ever received

If we don't receive any data from usrsctp, then there will be no src pad
for the stream id and the stream reset will fail to remove the relevant
src pad.  Workaround by first attempting to add the relevant src pad, then
almost immediately removing it.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3381>

18 months agotest: Correct the test suite name of the h264 and h265 bitwriter.
He Junyan [Tue, 19 Jul 2022 09:42:12 +0000 (17:42 +0800)]
test: Correct the test suite name of the h264 and h265 bitwriter.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3384>

18 months agovideocrop, videobox: Simplify navigation event handling and support touch events
Colin Kinloch [Mon, 10 Oct 2022 18:58:12 +0000 (19:58 +0100)]
videocrop, videobox: Simplify navigation event handling and support touch events

Signed-off-by: Colin Kinloch <colin.kinloch@collabora.com>
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3053>

18 months agova: Fix vapostproc navigation event co-ordinate mapping
Colin Kinloch [Fri, 23 Sep 2022 18:29:31 +0000 (19:29 +0100)]
va: Fix vapostproc navigation event co-ordinate mapping

Signed-off-by: Colin Kinloch <colin.kinloch@collabora.com>
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3053>

18 months agovaapi: Use gst_video_orientation_from_tag to parse orientation
Colin Kinloch [Tue, 20 Sep 2022 16:39:39 +0000 (17:39 +0100)]
vaapi: Use gst_video_orientation_from_tag to parse orientation

Signed-off-by: Colin Kinloch <colin.kinloch@collabora.com>
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3053>

18 months agovideoflip: Use gst_video_orientation_from_tag to parse orientation
Colin Kinloch [Mon, 19 Sep 2022 17:06:44 +0000 (18:06 +0100)]
videoflip: Use gst_video_orientation_from_tag to parse orientation

Signed-off-by: Colin Kinloch <colin.kinloch@collabora.com>
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3053>

18 months agova: Use gst_video_orientation_from_tag to parse orientation
Colin Kinloch [Mon, 19 Sep 2022 17:05:28 +0000 (18:05 +0100)]
va: Use gst_video_orientation_from_tag to parse orientation

Signed-off-by: Colin Kinloch <colin.kinloch@collabora.com>
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3053>

18 months agomsdkvpp: delete the macros to make video memory work on Windows
Tong Wu [Wed, 7 Sep 2022 08:26:22 +0000 (16:26 +0800)]
msdkvpp: delete the macros to make video memory work on Windows

Since gst_msdk_import_to_msdk_surface has been implemented for d3d11, we
delete the macros to make it work on Windows.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3231>

18 months agomsdkvpp: modify the way of copying system memory to msdk surface
Tong Wu [Wed, 7 Sep 2022 07:29:37 +0000 (15:29 +0800)]
msdkvpp: modify the way of copying system memory to msdk surface

Replace video_copy with memcpy to fix the issue when the sizes of the
src frame and dst frame don't match. Moreover, for Windows, you have to
do the copy first and call gst_msdk_import_to_msdk_surface later.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3231>

18 months agomsdkvpp: add d3d11 support during negotiation
Tong Wu [Wed, 7 Sep 2022 02:55:57 +0000 (10:55 +0800)]
msdkvpp: add d3d11 support during negotiation

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3231>

18 months agomsdkvpp: add d3d11 video memory to sink and src caps
Tong Wu [Fri, 2 Sep 2022 08:03:09 +0000 (16:03 +0800)]
msdkvpp: add d3d11 video memory to sink and src caps

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3231>

18 months agomsdkvpp: delete use_sinkpad_va and use_srcpad_va
Tong Wu [Wed, 7 Sep 2022 02:44:16 +0000 (10:44 +0800)]
msdkvpp: delete use_sinkpad_va and use_srcpad_va

This two variables are no longer useful. Delete them for now.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3231>

18 months agomsdkenc: modify the way of copying system memory to msdk surface
Tong Wu [Fri, 26 Aug 2022 08:19:33 +0000 (16:19 +0800)]
msdkenc: modify the way of copying system memory to msdk surface

Replace video_copy with memcpy to fix the issue when the sizes of the
src frame and dst frame don't match. Moreover, for Windows, you have to
do the copy first and call gst_msdk_import_to_msdk_surface later.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3231>

18 months agomsdkallocator_d3d: add d3d11 video memory and import it to msdk surface
Tong Wu [Mon, 17 Oct 2022 09:01:18 +0000 (17:01 +0800)]
msdkallocator_d3d: add d3d11 video memory and import it to msdk surface

This patch introduces d3d11 texture and index to GstMsdkMemoryID and
implements gst_msdk_import_to_msdk_surface in order to wrap the surface
to mfxMemId.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3231>

18 months agomsdkallocator_d3d: implement GetHDL callback function
Tong Wu [Fri, 26 Aug 2022 06:13:36 +0000 (14:13 +0800)]
msdkallocator_d3d: implement GetHDL callback function

During encoding process, oneVPL runtime will call GetHDL callback function.
This patch implements this function for the use of msdk.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3231>

18 months agomsdkallocator: add a parameter to function gst_msdk_import_to_msdk_surface
Tong Wu [Mon, 17 Oct 2022 08:48:15 +0000 (16:48 +0800)]
msdkallocator: add a parameter to function gst_msdk_import_to_msdk_surface

Add a flags parameter to function gst_msdk_import_to_msdk_surface and
move the function declaration to gstmsdkallcator.h to prepare for adding
Windows implementation.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3231>

18 months agomsdkenc: add d3d11 pool during negotiation
Tong Wu [Fri, 19 Aug 2022 05:51:11 +0000 (13:51 +0800)]
msdkenc: add d3d11 pool during negotiation

This patch adds Windows specific set_format and propose_allocation
functions to enable creating d3d11 pools during negotiation.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3231>

18 months agomsdkenc: add D3D11 caps for msdkenc
Tong Wu [Fri, 19 Aug 2022 05:40:05 +0000 (13:40 +0800)]
msdkenc: add D3D11 caps for msdkenc

This patch adds D3D11 feature to sink factory for msdkenc.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3231>

18 months agoMSDK: Introduce d3d11 device to MSDK context
Tong Wu [Sat, 7 May 2022 09:10:34 +0000 (17:10 +0800)]
MSDK: Introduce d3d11 device to MSDK context

Currently MSDK context does not support d3d11va. Now introduce d3d11va
device to MSDK context, making it able to create msdk session with d3d11
device and to easily share with upstream and donwstream.

Add environment variable to enable user to choose GPU device in multi-GPU
environment. This variable is only valid when there's no context
returned by upstream or downstream. Otherwise it will use the device
that created by upstream or downstream.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3231>

18 months agoMSDK: Add gst d3d11 lib into MSDK's dependency
Tong Wu [Sat, 7 May 2022 08:28:50 +0000 (16:28 +0800)]
MSDK: Add gst d3d11 lib into MSDK's dependency

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3231>

18 months agovafilter: Log out processed surfaces for debug.
Víctor Manuel Jáquez Leal [Wed, 9 Nov 2022 13:59:41 +0000 (14:59 +0100)]
vafilter: Log out processed surfaces for debug.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3373>

18 months agovadeinterlace, vapostproc: Drop output buffer if process failed.
Víctor Manuel Jáquez Leal [Wed, 9 Nov 2022 13:53:30 +0000 (14:53 +0100)]
vadeinterlace, vapostproc: Drop output buffer if process failed.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3373>

18 months agodebugutils: videocodectestsink: add support for more formats
Daniel [Mon, 7 Nov 2022 19:32:50 +0000 (16:32 -0300)]
debugutils: videocodectestsink: add support for more formats

Add support for more formats so as to run the libvpx high bit depth test suite.
This means the files under CONFIG_VP9_HIGHBITDEPTH

This also allows running the yuv444p 8bit file in the regular 8 bit vp9 suite.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3356>

18 months agogstplay: fix segmentation fault caused by subtitle info update
Elliot Chen [Thu, 10 Nov 2022 07:07:20 +0000 (15:07 +0800)]
gstplay: fix segmentation fault caused by subtitle info update

For subtitle stream played by subrui, gstplay will update subtitle
information before select the stream by using playbin3. Need check
the subtitle_sid value to avoid segmentation fault.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3383>

18 months agogst-rtsp-server: compile example for onvif backchannel testing
Christian Wick [Thu, 10 Nov 2022 08:00:32 +0000 (08:00 +0000)]
gst-rtsp-server: compile example for onvif backchannel testing

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3363>

18 months agortspsrc: Introduce new action signal `push-backchannel-sample` with correct ownership...
Christian Wick [Wed, 9 Nov 2022 12:04:08 +0000 (12:04 +0000)]
rtspsrc: Introduce new action signal `push-backchannel-sample` with correct ownership semantics

Signals are not supposed to take ownership of their arguments but only
borrow them for the scope of the signal emission.

The old action signal `push-backchannel-buffer` is now marked deprecated.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3363>

18 months agogssink: add 'content-type' property
Guillaume Desmottes [Wed, 9 Nov 2022 13:16:23 +0000 (14:16 +0100)]
gssink: add 'content-type' property

Useful when one wants to upload a video as `video/mp4` instead of
'video/quicktime` for example.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3371>

18 months agocccombiner: initial implementation of using CCBuffer helper
Matthew Waters [Wed, 1 Jun 2022 11:24:41 +0000 (21:24 +1000)]
cccombiner: initial implementation of using CCBuffer helper

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3211>

18 months agoclosedcaption: move CC buffering to helper object
Matthew Waters [Wed, 1 Jun 2022 07:47:55 +0000 (17:47 +1000)]
closedcaption: move CC buffering to helper object

Move most of the interesting code from ccconverter to this new helper
object.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3211>

18 months agoclosedcaption: move cdp->cc_data into shared location
Matthew Waters [Mon, 30 May 2022 11:39:13 +0000 (21:39 +1000)]
closedcaption: move cdp->cc_data into shared location

So it can be used by both ccconverter and cccombiner

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3211>

18 months agoclosedcaption: move cc_data->cdp to shared file
Matthew Waters [Fri, 13 May 2022 05:19:43 +0000 (15:19 +1000)]
closedcaption: move cc_data->cdp to shared file

Used by both ccconverter and cccombiner

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3211>

18 months agoccconverter: avoid different indent versions indenting !! differently.
Matthew Waters [Thu, 12 May 2022 03:22:00 +0000 (13:22 +1000)]
ccconverter: avoid different indent versions indenting !! differently.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3211>

18 months agoclosedcaption: move cdp framerate table to common file
Matthew Waters [Thu, 12 May 2022 03:19:58 +0000 (13:19 +1000)]
closedcaption: move cdp framerate table to common file

shared by both cccombiner and ccconverter

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3211>

18 months agocccombiner: don't assume a single cea608 data packet per buffer
Matthew Waters [Thu, 12 May 2022 03:15:19 +0000 (13:15 +1000)]
cccombiner: don't assume a single cea608 data packet per buffer

e.g. 24fps can have up to 3 and would include either two field0 or
field1 cea608 data.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3211>

18 months agoccconverter: drop data when overflow on extracting cea608 from cc_data
Matthew Waters [Fri, 6 May 2022 04:00:38 +0000 (14:00 +1000)]
ccconverter: drop data when overflow on extracting cea608 from cc_data

If the buffer overflows, then drop rather than causing a failure and
fropping the output buffer indefinitely.  This may have caused downstream to
be waiting for data the will never arrive.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3211>

18 months agoccconverter: fix framerate passthrough with malformed input
Matthew Waters [Thu, 5 May 2022 08:27:50 +0000 (18:27 +1000)]
ccconverter: fix framerate passthrough with malformed input

If an input is malformed (only produces cea608 field 1 cc_data) then
when in passthrough we would effectively be dropping every second cea608
on output as we would not store any unused cea608 data.

Fix by having all code paths go through the framerate conversion code
which will store and retrieve any relevant data across buffers.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3211>

18 months agoamfcodec: Fix typos
Seungha Yang [Wed, 9 Nov 2022 20:54:18 +0000 (05:54 +0900)]
amfcodec: Fix typos

Fixing typo surfrace -> surface

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3378>

18 months agomfvideosrc: Return S_OK from ISampleGrabberCB callback
Seungha Yang [Wed, 9 Nov 2022 21:03:45 +0000 (06:03 +0900)]
mfvideosrc: Return S_OK from ISampleGrabberCB callback

The Microsoft's ISampleGrabber implementation seems to be ignoring
the HRESULT return value from the callback though,
S_OK is the right HRESULT code.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3379>

18 months agogstgl: Fix handling of padded tile formats
Nicolas Dufresne [Tue, 8 Nov 2022 17:47:10 +0000 (17:47 +0000)]
gstgl: Fix handling of padded tile formats

When a tile format is padded and imported as DMABuf, the stride
contains the information about the actual width and height in
number of tiles. This information is needed by the detiling shader
in order accuratly calculate the location of pixels. To fix that,
we also copy the offset and strides into the otuput format and
the converter will ensure that the shader is recompiled whenever
the stride changes.

This fixes video corruptions observed when decoding on MT8195
with videos that aren't not aligned to 64bytes in width.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3365>

18 months agochildproxy: Fix documentation
Edward Hervey [Wed, 9 Nov 2022 08:28:37 +0000 (09:28 +0100)]
childproxy: Fix documentation

Warning: Gst: gst_child_proxy_get_child_by_name_recurse: unknown parameter
'parent' in documentation comment, should be 'child_proxy'

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3370>

18 months agovaapi: Add new dmabuf mem type when building caps
Mengkejiergeli Ba [Fri, 29 Oct 2021 07:08:38 +0000 (15:08 +0800)]
vaapi: Add new dmabuf mem type when building caps

Media-driver will return dmabuf mem type GST_VAAPI_BUFFER_MEMORY_TYPE_DMA_BUF2
on the latest platform like Gen12. To enable build caps using dmabuf, need to
add the check for this type at gst_vaapi_build_caps_from_format.

This patch is a portion from Junyan.He@intel.com
https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/393

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1287>

18 months agovaapipostproc: Enable to use DMABuf mem at sink and src pad
Mengkejiergeli Ba [Fri, 29 Oct 2021 06:31:14 +0000 (14:31 +0800)]
vaapipostproc: Enable to use DMABuf mem at sink and src pad

Enable DMABuf mem at both sink and src pad for vaapipostproc caps which
helps to apply DMABuf for more generic use cases: such as "! vaapih264dec !
video/x-raw(memory:DMABuf) ! vaapipostproc ! video/x-raw (memory:DMABuf)
! vaapih265enc"  . Or other mem converions like from DMABuf to VASurface
through vaapipostproc.

This patch is a portion from Junyan.He@intel.com
https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/393

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1287>

18 months agod3d11screencapturesrc: Specify PAR 1/1 to template caps
Seungha Yang [Tue, 8 Nov 2022 10:26:39 +0000 (19:26 +0900)]
d3d11screencapturesrc: Specify PAR 1/1 to template caps

... otherwise PAR can be wrongly signalled during the negotiation

Fixing below pipeline when desktop resolution is not 640x480
gst-launch-1.0.exe \
  d3d11screencapturesrc ! videoscale !
  video/x-raw,width=640,height=480,pixel-aspect-ratio=1/1 ! d3d11videosink

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3360>