Commit graph

3032 commits

Author SHA1 Message Date
Seungha Yang
c5e241932c amfcodec: Update plugin cache
Adding AV1 encoder documentation (added in 1.22) with various
new properties

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6084>
2024-02-10 01:18:27 +00:00
Jonas K Danielsson
87ab5adf7e meson: srt: make sure srt_dep is defined
Without this we will get errors when we try to build with srt disabled.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6082>
2024-02-09 17:45:29 +00:00
Xavier Claessens
561f8b71ee structure: Allow STRICT flag only in _serialize_full()
The STRICT flag makes _serialize() nullable which is an API break for
bindings. Forbid it and add _serialize_full() that accepts it and is
properly annotated.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5829>
2024-02-09 15:45:33 +00:00
Sebastian Dröge
2c8f232d79 sdpdemux: Add SDP message (aka session) attributes to the caps too
They apply to all medias, and if overridden by the specific media then
they would also be overridden just below in the created caps.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6079>
2024-02-09 14:54:29 +00:00
Seungha Yang
b4ee86d1e7 ksdeviceprovider: Fix crash while probing device caps
Ignore unexpected media type reported by driver, instead of abort

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6081>
2024-02-09 14:09:07 +00:00
Edward Hervey
a1cbe351ec musepack: Prefer using FFmpeg musepack decoder/demuxer
* Bump the rank of the musepack v7/v8 FFmpeg demuxers to SECONDARY
* Bump the rank of the musepack v7/v8 FFmpeg audio decoders to SECONDARY
* Demote the rank of the musepackdec element to MARGINAL

This is for two reasons:
* The musepack library is no longer maintained, whereas the FFmpeg
  implementation can/will receive fixes
* The `musepackdec` implementation was a all-in-one "parsing and decoding" blob
  which doesn't play nicely with decodebin3 and others

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

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6074>
2024-02-09 12:15:14 +00:00
Seungha Yang
d2d2ac43e8 ccconverter: Send gap event if generated output is empty
Sends a gap event if nothing to output for a given input buffer.
For example, an input buffer might not contain any caption data
for downstream requested field, then we need to inform downstream
of the case.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6073>
2024-02-09 11:03:21 +00:00
Guillaume Desmottes
550a21ccbe avdtpsink: post error message when failing to start
Subclasses are supposed to report errors messages if their start
implementation failed.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1678>
2024-02-09 10:09:13 +00:00
Marvin Schmidt
da6b28d90b wpe: Rename WPEView to GstWPEThreadedView
WebKit commit b12e7ed2ad3a ("[WPE] Upstream the new WPE platform API
https://bugs.webkit.org/show_bug.cgi?id=265286")[1] added a `WPEView` typedef
which clashes with our `WPEView` class.

Rename the `WPEView` class to `GstWPEThreadedView` to avoid the collision.
Also prefix the `WPEContextThread` class with `Gst` and rename the
source files to reflect the new class name and use lowercase while at it
for consistency

[1] b12e7ed2ad

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6065>
2024-02-08 20:06:08 +00:00
Carlos Rafael Giani
cea5d19665 switchbin: Rework gst_switch_bin_get_allowed_caps() to limit path lock
Previously, the path lock was held even while issuing caps queries to
other elements. This can lead to deadlocks in more complex pipelines.
Avoid this by reworking gst_switch_bin_get_allowed_caps() to acquire
references to switchbin paths and then releasing the path lock.
Subsequent operations in that function then act on the acquired
references, thus eliminating the need for holding the path lock for
the entirety of that function.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4632>
2024-02-08 18:33:29 +00:00
Carlos Rafael Giani
cfe484d983 switchbin: Always respond to caps query with all allowed caps
The caps query specifies _all_ caps that the element can handle, not just
caps from the current path element. If for example a switchbin has two
paths, with one having an element that handles video/x-h264, and another
path whose element handles video/x-raw, and the second path is the
current path, then the existing code would report only video/x-raw as
supported. Fix this by report all allowed caps, even if there is a
current path defined.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4632>
2024-02-08 18:33:29 +00:00
Carlos Rafael Giani
c994f27f34 switchbin: Update and improve documentation
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4632>
2024-02-08 18:33:29 +00:00
Carlos Rafael Giani
fcc3420929 switchbin: Forward filter caps to internal caps queries
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4632>
2024-02-08 18:33:29 +00:00
Carlos Rafael Giani
d0b9f9fc27 switchbin: Rework allowed-caps computation to allow for passthrough paths
The rationale is that a passthrough path (= one with no element) behaves
as if the switchbin's sink- and srcpad were one. In particular, internal
caps queries (needed for computing the allowed caps) then go to the peers
instead to path elements. Rework gst_switch_bin_get_allowed_caps () for
a clear handling of NULL path elements and for proper dataflow passthrough
and caps & accept-caps query handling.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4632>
2024-02-08 18:33:29 +00:00
Carlos Rafael Giani
0f279cdb86 switchbin: Improve filter caps application
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4632>
2024-02-08 18:33:29 +00:00
Carlos Rafael Giani
9429a69f1c switchbin: Remove leftover drop probe code bits
The drop probe was present in early switchbin versions to implement paths
that drop dataflow. However, this feature turned out to be too problematic
and thus was removed. Some bits remained though. This commit removes those
bits and clarifies that in the current switchbin version, a NULL path
element instead means passthrough.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4632>
2024-02-08 18:33:29 +00:00
Sebastian Dröge
3ca5a2554f ajasink: Add HANC/VANC ancillary data from GstAncillaryMeta
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5488>
2024-02-08 15:28:39 +00:00
Sebastian Dröge
efa7e70d16 ajasrc: Add GstAncillaryMeta for any HANC/VANC ancillary data that is captured
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5488>
2024-02-08 15:28:39 +00:00
Daniel Morin
afa41ec3bc analyticsoverlay: fix gst-launch exemple
- Adapt example to new onnx elements.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6062>
2024-02-07 22:39:57 +00:00
Seungha Yang
d444fe3fdc nvcodec: Update plugin cache
Updating plugin cache for IPC elements, JPEG encoder, and newly added
properties. Also removing Gst*SLDec which does not exist anymore
but renamed to Gst*Dec.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6070>
2024-02-07 22:06:39 +00:00
Sebastian Dröge
77a09c1781 analytics: Allow getting a related meta with ANY type
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6068>
2024-02-07 14:07:52 +00:00
Jan Schmidt
6f652ec8a1 tsdemux: Detect reaching the end of configured segment
If the current segment has a configured stop point, detect
when when pad timestamps proceed past that point and mark
them as EOS. Otherwise, tsdemux continues streaming
the whole input downstream (unless something downstream detects
and returns EOS for us)

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6023>
2024-02-07 07:36:02 +00:00
Jan Schmidt
61aefda664 tsdemux: Support segment seeking
Add support for segment seeks and posting segment-done for
seamless non-flushing looping

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6023>
2024-02-07 07:36:02 +00:00
Nirbheek Chauhan
f6f448bb80 meson: Fix several warnings in the build
Deprecations, incorrect options, etc.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6058>
2024-02-06 23:57:17 +00:00
Tim-Philipp Müller
2111d6f015 Back to development
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6066>
2024-02-06 18:29:31 +00:00
Tim-Philipp Müller
9255e397f0 Release 1.23.1 2024-02-06 16:43:27 +00:00
Tim-Philipp Müller
f1940077a2 codecparsers: av1bitwriter: fix Since marker
... and add them to the symbol index to make hotdoc happy
2024-02-06 16:37:13 +00:00
Tim-Philipp Müller
6651bb3ed8 codecparsers: document new GstH265Level and GstH264Level enums
... and add them to the symbol index to make hotdoc happy.
2024-02-06 16:37:13 +00:00
Tim-Philipp Müller
b9b249be48 va: fix g-i annotation
This parameter annotation is unknown :[allow-null-none] None
2024-02-06 16:37:12 +00:00
Nirbheek Chauhan
4822c9a1e2 y4mdec: Fix some debug log categories
Fatal errors should be logged as ERROR, extremely spammy messages
should be logged with TRACE

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5997>
2024-02-06 12:42:54 +00:00
Nirbheek Chauhan
56b16e5232 y4mdec: Parse extended headers written out by FFmpeg
References:
https://wiki.multimedia.cx/index.php/YUV4MPEG2
https://github.com/FFmpeg/FFmpeg/blob/eee3b7e2/libavformat/yuv4mpegenc.c#L74-L166

The primary purpose is to add high bit-depth y4m support, which is
commonly used for testing codecs.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5997>
2024-02-06 12:42:54 +00:00
Nirbheek Chauhan
968ebd26ab y4mdec: Simplify header parsing
Use string parsing instead of pointer arithmetic, which makes the code
easier to understand and less error-prone. This has no functional
changes, and is preparation for the next commit, which extends the
header parsing.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5997>
2024-02-06 12:42:54 +00:00
sergey radionov
ebc51e3253 nice: resolve result should go to nice helper thread
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5921>
2024-02-06 09:12:13 +00:00
Daniel Morin
8afc305fe2 onnx: fix, update tensor producer and consumers
- Propagate GstTensor.type becoming to GstTensor.data_type to tensor producer
  (onnx) and consumer (TensorDecoder)

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6061>
2024-02-05 22:27:59 -05:00
Olivier Crête
7271410391 analyticsoverlay: Don't error out on lack on dependency in auto mode
If the option is set to auto, it shouldn't fail if the dependency is missing.

Fixes #3266

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6060>
2024-02-05 14:59:06 -05:00
Sebastian Dröge
ddd9dcc559 ajasink: Remove workaround for NTV SDK bug that is fixed since a while
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6056>
2024-02-05 16:24:13 +00:00
Víctor Manuel Jáquez Leal
4949c6d153 vkh264dec: GST_USE_UNSTABLE_API for plugin compilation
The code to include H264 decoder base class header wrongly disabled the unstable
API  message. This patch fixes it by setting it as a compilation define of the
plugin.¡

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6055>
2024-02-05 14:25:38 +01:00
Víctor Manuel Jáquez Leal
2c660ee8f5 vkupload: remove unused parameter fetching
It's not required to create a vulkan buffer to fetch its size since all this
handled by internally by the allocator and it was never needed, so it looks like
dead code. Let's delete it.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6028>
2024-02-05 10:38:54 +00:00
sergey radionov
39f2afbd45 webrtcbin: it's better to have thread default main context
on thread bound to that main context.
fixes #3271

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6053>
2024-02-05 00:56:47 +00:00
Seungha Yang
35e5178f0e d3d12: Fix potential self thread join
Fence data could hold GstD3D12Device directly or indirectly.
Then if it's holding last refcount, the device object will
be released from the device object's internal thread,
and will try join self thread.
Delegates it to other global background thread to avoid
self thread joining.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6042>
2024-02-05 01:37:32 +09:00
Seungha Yang
1c0f224f05 d3d12memory: Remove unused method
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6042>
2024-02-03 23:22:58 +09:00
Olivier Crête
3325a10f57 onnx: Port SSD detector to C
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6001>
2024-02-02 18:47:52 -05:00
Olivier Crête
5e1291fd86 onnx: Only read labels file one and use GIO
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6001>
2024-02-02 18:43:22 -05:00
Olivier Crête
13de5160be onnx: Add more tensor data types
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6001>
2024-02-02 18:43:21 -05:00
Olivier Crête
e3d8168a5a onnx: Remove unecessary gst_tensor_meta_get_all_from_buffer
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6001>
2024-02-02 18:43:21 -05:00
Olivier Crête
2034f776bb onnx: Merge tensor into tensor meta file
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6001>
2024-02-02 18:43:21 -05:00
Loïc Le Page
eb416d5077 webpenc: add animation properties
- animation background color
- number of animation loops

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5994>
2024-02-02 17:23:08 +00:00
Loïc Le Page
05bd35f625 webpenc: don't allow changing resolution in animation mode
- fails on image resolution changes in animation mode
- fails with a log message on invalid color spaces

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5994>
2024-02-02 17:23:08 +00:00
Loïc Le Page
9fe504c423 webpenc: fix naming and libwebp API calls
- uniformize parameters naming
- call symetric init and clear functions systematically from libwebp API

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5994>
2024-02-02 17:23:08 +00:00
Mathieu Duponchelle
a6409525ef webpenc: add support for animated WebP
The libwebp API doesn't match very well with the GstVideoEncoder
API, as it only delivers an unframed bitstream once all pictures
have been processed, which means we can only push a single buffer
manually on our srcpad on finish().

Supporting animated webp is still valuable, and the feature is
behind an opt-in property.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5994>
2024-02-02 17:23:08 +00:00
Olivier Crête
351f823704 analytics: Always return a string from mtd_type_get_name()
It makes it easier to use in printf() style strings without worrying
about getting a NULL.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6035>
2024-02-02 15:49:56 +00:00
Jonas K Danielsson
7c4e6442db srt: Add basic check test of srt[src|sink]
Add some basic tests for the srtsrc and the srtsink and set us up for
more advanced tests down the road.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5440>
2024-02-02 15:08:02 +00:00
Jonas K Danielsson
e7ae5f0995 srt: Add more fields to application/x-srt-statistics
In order to see how many packets where retransmitted and how many was
dropped we add some new fields.

Please see https://github.com/Haivision/srt/blob/master/docs/API/statistics.md

For details about the new fields.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5322>
2024-02-02 13:57:26 +00:00
Heiko Becker
567a2a7f67 neon: Allow building against neon 0.33.x
From its NEWS file:

"API and ABI backwards-compatible with 0.27.x and later"

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6036>
2024-02-02 00:22:39 +01:00
Philippe Normand
1b01415c3b srtpenc: Fix potential leak
When attempting to process a buffer after the rtcp session was closed the output
buffer memory would remain referenced.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6029>
2024-01-31 18:46:59 +00:00
Daniel Morin
95464c8977 analyticsoverlay: add object-detection overlay
- Overlay analytics-meta-od attached to video buffer

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5768>
2024-01-31 16:15:06 +00:00
Daniel Morin
8122f623f6 analytics: Change indexes type from i32 -> gsize
- gst_analytics_cls_mtd_get_length() return a gsize, this type dicated index
  type for gst_analytics_cls_mtd_get_quark() and
  gst_analytics_cls_mtd_get_level().
- Minor cleanup/improvement on index validation.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6018>
2024-01-31 15:22:43 +00:00
Daniel Morin
f1d2147ba8 analytics: add test for OD confidence level retrieval
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6017>
2024-01-31 14:40:56 +00:00
Daniel Morin
42227d7de3 analytics: add api on OD to retrieve bbox confidence
- Add a specific api to retrieve bbox confidence level without having to
  retrieve it's location.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6017>
2024-01-31 14:40:56 +00:00
Seungha Yang
6dc902a962 nvcodec: Add JPEG encoder
Adding nvJPEG library based JPEG encoder element

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6021>
2024-01-31 12:51:28 +00:00
Seungha Yang
fc4b136ac8 nvcodec: Move runtime compiler check to plugin init function
Required information for other elements

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6021>
2024-01-31 12:51:28 +00:00
Thibault Saunier
5d4bf4c6a5 bad: Update plugins cache
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/899>
2024-01-31 11:00:24 +00:00
Thibault Saunier
4dcea207d9 auto: Reuse subbins instead of recreating them over and over
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/899>
2024-01-31 11:00:24 +00:00
Thibault Saunier
79612de803 autoconvert: Force raw memory when using videoconvertscale
videoconvertscale advertises `ANY` feature, but it supports it only
in passthrough. Our goal with autoconvert is to ensure that  conversion
is possible with the elements that are being plugged so we avoid
plugging `videoconvertscale` if the memory type is not system memory.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/899>
2024-01-31 11:00:24 +00:00
Thibault Saunier
9821c0ae96 autovideoconvert: Use cudaconvert for formats not allowed by glcolorconverts
There are some pixel formats supported by `cudaconvert` but not `glcolorconvert`
so prefer using `cudaconvert` for those cases rather than using
`videoconvertscale` and system memory

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/899>
2024-01-31 11:00:24 +00:00
Thibault Saunier
9908d11dab auto: Add an 'autovideoflip' element
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/899>
2024-01-31 11:00:24 +00:00
Thibault Saunier
aa7c49ded8 autoconvert: Accept new caps when they are exactly equal to previous ones
That basically was overlooked as the code was clearly intending to do that

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/899>
2024-01-31 11:00:24 +00:00
Thibault Saunier
e41e31f2ae auto: Add a gstautodeinterlace element
Which can do colorspace conversion if necessary.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/899>
2024-01-31 11:00:24 +00:00
Thibault Saunier
b0fdbcec64 autovideoconvert: Handle passing bin description instead of factories
This way we can build our own well know bins for conversion keeping the
code simple.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/899>
2024-01-31 11:00:24 +00:00
Thibault Saunier
292d8453d3 autoconvert: Factor out a new GstBaseAutoConvert class
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/899>
2024-01-31 11:00:23 +00:00
Thibault Saunier
f817afb865 auto: Expose colorspace and scaler elements for well know elements
And require Scaler in the class of elements to be plugged by
autovideoconvert

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/899>
2024-01-31 11:00:23 +00:00
Thibault Saunier
e153c558c7 autoconvert: Handle reconfiguring on the srcpad
Only upstream renegotiation was properly handled, we needed to answer
that when downstream forces a renegotiation we take into account the
new downstream restrictions.

And add tests for it

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/899>
2024-01-31 11:00:23 +00:00
Thibault Saunier
69db5b77d1 autoconvert: Remove unused elements from the bin
Instead of letting all the elements that were added into the bin,
add them only when strictly needed and removed them when we stop using
them.

With previous refactoring we are keeping them in our own hashmap in
amy case so we can keep reusing the same elements as before.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/899>
2024-01-31 11:00:23 +00:00
Thibault Saunier
8266f534a7 autovideoconvert: Ignore elements with rank == NONE
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/899>
2024-01-31 11:00:23 +00:00
Thibault Saunier
a0a9e9e3cf autoconvert: Fix the way we compare element types
We used to conside elements that were subclassses of another
element type as being the same (for example with videoconvertscale,
bother videoconvert and videoscale are subclasses of videoconvertscale
and that code was lost)

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/899>
2024-01-31 11:00:23 +00:00
Thibault Saunier
17029974e0 autoconvert: Stop using qdata and unsafe weak refs
We are still using internal pads that are not added to the bin
but we now have a subclass and avoid qdata and weak refs as
they are not MT safe.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/899>
2024-01-31 11:00:23 +00:00
Thibault Saunier
4cfe898f9b autovideoconvert: Make it a subclass of GstAutoConvert
Instead of a wrapper, making it much simpler.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/899>
2024-01-31 11:00:23 +00:00
Thibault Saunier
8be2ae303a autoconvert: Add a 'factory-names' property
Making the element more gst-launch friendly.

This also stop trying to handle usage of ->factories atomic and instead
use the object lock to handle them.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/899>
2024-01-31 11:00:23 +00:00
Thibault Saunier
1409826232 autoconvert: Remove not thread safe use of ->current_subelement
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/899>
2024-01-31 11:00:22 +00:00
Thibault Saunier
7fae06604e autoconvert: Stop using generic element name
It makes it harder to debug for no real benefice in the case

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/899>
2024-01-31 11:00:21 +00:00
Mengkejiergeli Ba
bf7f4eef20 msdk: Use gst_video_info_dma_drm_to_video_info to extract video info
Note that we need mappings for all drm_fourcc, otherwise we will get
GST_VIDEO_FORMAT_UNKNOWN for some formats...

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5991>
2024-01-31 06:24:13 +00:00
He Junyan
637d253e9f va: baseenc: Fix the wrong parameter order to call va_map_buffer()
The current gst_va_base_enc_copy_output_data() uses wrong parameter
order to call va_map_buffer().

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6020>
2024-01-30 15:50:23 +00:00
Seungha Yang
51162acc31 cuda: Report device open error
Call gst_cuda_result() with CUDA_ERROR_NO_DEVICE error code if
we could not open device, so that application can catch the error

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6006>
2024-01-30 14:30:41 +00:00
Seungha Yang
cd6d62ddf0 cuda: Use cuStreamDestroy_v2 API
Sync up with CUDA 11.x/12.0 header

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6006>
2024-01-30 14:30:41 +00:00
Seungha Yang
07ba225183 cudaipc: Add support for custom meta forwarding
Forward custom meta to peer ipcsrc elements

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6006>
2024-01-30 14:30:41 +00:00
Víctor Manuel Jáquez Leal
c760c72f7a vkformat: fetch correctly feature flags2
Feature flags2 are fetch through VkFormatProperties3KHR and needs more guards
checking.

Moved out all the feature flags fetching to another function for clarity.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6014>
2024-01-30 12:57:41 +00:00
Víctor Manuel Jáquez Leal
c24b47ecee vkformat: use VK_KHR_get_physical_device_properties2 to guard
and VK_KHR_format_feature_flags2 rather than a meaningless version handling.

Also the patch brings back the usage of features2 for video extensions, use KHR
version to support the guarded symbols.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6014>
2024-01-30 12:57:41 +00:00
Víctor Manuel Jáquez Leal
394aaa6a59 vulkan: early return if gst_buffer_pool_set_config() fails
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6013>
2024-01-30 11:58:04 +00:00
He Junyan
b4eb97101f va: Implement the vaav1enc plugin
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3015>
2024-01-30 08:24:26 +00:00
He Junyan
f4779f1fab va: baseenc: Extend the create_output_buffer() to accept prefix data
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3015>
2024-01-30 08:24:25 +00:00
He Junyan
726cc895d8 va: encoder: Add copy_output_data() helper function
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3015>
2024-01-30 08:24:25 +00:00
He Junyan
39144f612e va: encoder: extend prepare_output() virtual function
The output of VP9 and AV1 encoder is a little different from the H264
and H265 encoder, it may contain repeat frames and so the output frame
number may be more than the input. We need to call finish_subframe()
when some frame will be repeated later. So we need to extend the
current prepare_output() virtual function.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3015>
2024-01-30 08:24:25 +00:00
He Junyan
a278137f7e tests: Add the av1 bit code writer test case
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3015>
2024-01-30 08:24:25 +00:00
He Junyan
040042113e codecparsers: Implement the AV1 bit code writer
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3015>
2024-01-30 08:24:25 +00:00
He Junyan
e1d96d0669 codecparsers: av1: add ref_global_motion_params in frame header
In order to ease the AV1 bit writer to write the global_motion_params
when primary_ref_frame is enabled, we need to add this field to set
the global_motion_params of the reference frame.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3015>
2024-01-30 08:24:25 +00:00
He Junyan
14a5d936f8 codecparsers: av1: add expected_frame_id in frame header
We need it to ease the bit code writing of AV1 frame header.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3015>
2024-01-30 08:24:25 +00:00
Daniel Morin
73dedf9a51 h264parse: Remove un-needed check on SPS state
Fixes #3254
- Having SEI before SPS is not an issue anymore with AU boundary detection
based on backlog.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6004>
2024-01-30 01:22:32 +00:00
Robert Mader
9ee58825cc vaallocator: Allow non-linear modifiers for dummy mem_maps
A client may map dmabufs without the intention to either read or write
to the memory. One example is clients wanting to use the
`gst_video_frame_map()` helper function.

Thus, in order to make buffers from `GstVaDmabufAllocator` conveniently
usable, ignore the modifier check if the client specified neither
`GST_MAP_READ` nor `GST_MAP_WRITE`.

Also skip the `va_sync_surface()` call in that case, as it's likely only
needed for CPU reads/writes.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5965>
2024-01-29 17:10:50 +00:00
Nicolas Dufresne
0b38cb2320 vulkan: Fix clang compiler warning
clang does not like the array index assignment without the `=` sign in
it. This is a gnu extension I believe, and adding the sign is proper.
This fixes the following two warnings:

```
../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkvideo-private.c:32:40:
warning: use of GNU 'missing =' extension in designator [-Wgnu-designator]
  [GST_VK_VIDEO_EXTENSION_DECODE_H264] {
                                       ^
                                       =
../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkvideo-private.c:36:40:
warning: use of GNU 'missing =' extension in designator [-Wgnu-designator]
  [GST_VK_VIDEO_EXTENSION_DECODE_H265] {
                                       ^
                                       =
```

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5996>
2024-01-26 16:42:30 +00:00
Seungha Yang
1a7c85a261 qsvh264enc: Always specify field order
qsv runtime will report error when encoding interlaced stream
if session was initialized with unknown field order
but tff/bff is specified in per frame encoding parameter.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5835>
2024-01-25 14:25:16 +00:00