Commit graph

4064 commits

Author SHA1 Message Date
Nirbheek Chauhan
07e538c043 vtenc: Fix class hierarchy in an attempt to fix property docs
Also fix some convention-nits in the process.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8120>
2024-12-16 18:52:21 +00:00
Nirbheek Chauhan
e881817567 vtenc, osxaudio: Fix missing since markers
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8120>
2024-12-16 18:52:21 +00:00
Nirbheek Chauhan
0c93eaec4f vtenc: Mark rate-control enum as plugin API, and update cache
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8120>
2024-12-16 18:52:21 +00:00
Nirbheek Chauhan
21f221dad1 avfvideosrc: Add missing since markers for screen-crop properties
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8120>
2024-12-16 18:52:20 +00:00
Nirbheek Chauhan
88cb48108a docs: Update macOS plugin docs again
Contains the following updates:

* New properties on avfvideosrc: screen-crop-*
* H265 and H265 Alpha support in vtdec and vtenc (VideoToolbox)
* ProRes support in vtenc
* New properties on vtenc elements: rate-control, data-rate-limits,
  max-frame-delay
* New plugin atenc (AudioToolbox) with support for encoding AAC
* Plugin move: atdec moved from -bad to -good
* New property on osxaudio elements: unique-id
* OS X -> macOS

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8120>
2024-12-16 18:52:20 +00:00
Mathieu Duponchelle
7be4d09f14 cccombiner: expose new input-meta-processing type, force
In force mode, generated captions are discarded even if input video
buffers do not hold CC meta.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8091>
2024-12-16 15:43:20 +00:00
Nirbheek Chauhan
0c17efafa3 meson: Improve NVMM CUDA detection
1. Add some comments explaining what headers and libs are expected on
   what systems
2. Only look in default incdirs if no incdir is specified
3. Require libnvbufsurface.so on Jetson when cuda-nvmm=enabled
4. Require libatomic on Jetson when cuda-nvmm=enabled

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8021>
2024-12-16 14:47:23 +00:00
Seungha Yang
9962c57b5b d3d12: Suppress misleading leak report
Set may-be-leaked flag to child objects if needed,
since the parent object holding refcount of the child
will be leaked intentionally

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8152>
2024-12-16 09:47:21 +00:00
Seungha Yang
eac069b46d d3d12: Add d3d12deinterlace element
Adding D3D12 compute shader based deinterlace element
with YADIF filtering

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8140>
2024-12-14 12:09:23 +00:00
Seungha Yang
e3348ea402 d3dshader: Add YADIF deinterlacing compute shader code
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8140>
2024-12-14 12:09:23 +00:00
Oskar Fiedot
a3a7acdd0a analytics: add rotation to object detection mtd
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7938>
2024-12-11 11:54:15 +01:00
Philippe Normand
ed28bde0a6 webrtc: Simplify fmtp handling in codec stats
Parsing the whole caps as SDP media only to retrieve the fmtp field afterwards
seems a bit superfluous. By looking up the a-fmtp attribute directly the number
of allocations in this function gets down a bit.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8125>
2024-12-11 09:23:41 +00:00
Tim-Philipp Müller
7d793d8836 meson: unset GST_TRACERS for g-ir-scanner to avoid warnings
People might have GST_TRACERS=leaks set in their environment
by default, which will now trigger criticals during the build
when calling g-ir-scanner, because we unset GST_PLUGIN_SYSTEM_PATH
so that the scanner doesn't load any plugins.

Fixes #4093

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8121>
2024-12-10 23:07:06 +00:00
Víctor Manuel Jáquez Leal
060563c357 vkoperation: enable inline query only if it's a video operation
This commit enables the usage of inline queries, if and only if, the
provided
pNext structure, in gst_vulkan_opeation_enable_query(), chains a
VK_STRUCTURE_TYPE_VIDEO_PROFILE_INFO_KHR typed structure.

Also it guards "gstvkvideo-private.h" include

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8112>
2024-12-10 15:52:21 +00:00
Stéphane Cerveau
fd1946c26b vkvideo: add video_maintenance1 check
Add gst_vulkan_video_maintenance1_supported
to check if the video session needs
VK_VIDEO_SESSION_CREATE_INLINE_QUERIES_BIT_KHR

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8112>
2024-12-10 15:52:21 +00:00
Armin Begovic
3fc5ee6298 decklink: Add missing video modes to gst_decklink_mode_get_type()
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8110>
2024-12-10 10:26:01 +00:00
Armin Begovic
0703206749 decklink: Fix copy-paste errors regarding 8K modes
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8110>
2024-12-10 10:26:01 +00:00
Thibault Saunier
b6d0c57087 docs: Do not try to generate cuda documentation when gir is not generated
On macos it is not

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8086>
2024-12-10 09:35:36 +00:00
Daniel Morin
a1e623d200 analytics: add _N_TO_N relation type
This relation type define relations between each components of two groups.
First component of first group relate to first component of second group,
Second component of second group relate to second component of second group,
and so on. It's a denser way to express relations in this context.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8087>
2024-12-09 18:18:30 +00:00
Peter Stensson
4d2e27dcf3 curlhttpsink: Set auth any for http_proxy and https_proxy
There was different behaviour if the proxy was configured through
properties or environment. For properties libcurl would be configured
with any auth, but for environment libcurl would default to using basic.
Now any auth is set for both configuration methods.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7935>
2024-12-09 08:40:19 +00:00
Peter Stensson
e9d32abf98 curlhttpsink: Don't set Content-Length to 0 for proxy
The Content-Length header would unconditionally be included when the
proxy property was set. This would result in requests with both
Content-Length and Transfer-Encoding header. Now we rely on the
use-content-length property in the proxy case aswell. This also makes
sure that Content-Type is set correctly, since before that would be
skipped if proxy was used.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7935>
2024-12-09 08:40:19 +00:00
Daniel Morin
89c23137d3 onnx: disable onnxruntime telemetry
Disable the telemetry feautre on onnxruntime.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8092>
2024-12-07 00:23:33 -05:00
Francisco Javier Velázquez-García
55dc51004c zxing: Update decode hints usage for compatibility with ZXing >= 2.2
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7879>
2024-12-05 15:12:00 +00:00
Aaron Boxer
ea1b043047 h265parse: reset nalparser to NULL after it is freed
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8074>
2024-12-05 13:19:48 +00:00
sachin gadag
3f6020ddb5 h264parse: set nalparser to NULL after it is freed
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8074>
2024-12-05 13:19:48 +00:00
Aaron Boxer
c03fb74469 h265parse: remove useless NULL setting in gst_h265_parser_free
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8082>
2024-12-05 06:41:35 -05:00
Aaron Boxer
95151af803 h264parse: remove useless NULL setting in gst_h264_nal_parser_free
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8082>
2024-12-05 06:39:06 -05:00
Aniket Hande
37087f129f tsparse: Extract and fill m2ts header for each packet
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7625>
2024-12-05 01:20:19 +00:00
Stéphane Cerveau
6790093fe6 vkoperation: use inline query with video maintenance1
When video_maintenance1 is supported,
gst_vulkan_operation_begin_query will now use
the inline query mechanism instead of vkCmdBeginQuery
API.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7995>
2024-12-04 22:01:02 +00:00
Stéphane Cerveau
59cb6e6869 vkdevice: enable VK_KHR_VIDEO_MAINTENANCE_1_EXTENSION_NAME
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7995>
2024-12-04 22:01:02 +00:00
Víctor Manuel Jáquez Leal
a26b348351 vkphysicaldevice: dump if video maintenance1 is supported
Dump if VK_KHR_video_maintenance1 features is supported by the driver.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7995>
2024-12-04 22:01:02 +00:00
Robert Mader
f7da069496 v4l2codecs: Use GstVideoInfoDmaDrm more consistently
This avoids some duplications and makes the DRM info available in
more places, which will help with future changes.

Also fix some error messages while on it.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8028>
2024-12-04 19:26:40 +00:00
Sebastian Dröge
19e3617dc0 h264parse: Free SEI if parsing succeeds but alignment afterwards fails
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8056>
2024-12-04 16:05:44 +00:00
Sebastian Dröge
8830c65b8f h265parse: Free SEI if parsing succeeds but alignment afterwards fails
Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/4076

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8056>
2024-12-04 16:05:44 +00:00
Jan Alexander Steffens (heftig)
6b0efe5453 meson: Drop max version bound from neon
Neon 0.34.0 broke the build again, but the API+ABI has been stable since
0.27 and the library is so-versioned.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8008>
2024-12-04 15:04:14 +00:00
Guillaume Desmottes
bfda0f4858 h265parse: parse unregistered SEI without user data
Same change as in h264parse.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7931>
2024-12-04 13:56:13 +00:00
Guillaume Desmottes
082a8fcd5e h264parse: parse unregistered SEI without user data
We get loads of warnings when parsing videos from users:

gsth264parser.c:1115:gst_h264_parser_parse_user_data_unregistered: No more remaining payload data to store
gsth264parse.c:646:gst_h264_parse_process_sei:<h264parse0> failed to parse one or more SEI message

Those are raised because of unregistered SEI without user data.

The spec does not explicitly state that unregistered SEI needs to have
data and I suppose the UUID by itself can carry valuable information.
FFmpeg also parses and exposes such SEI so there is no reason for us no
too as well.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7931>
2024-12-04 13:56:13 +00:00
Sebastian Dröge
2d9cd86587 tsdemux: Lower a GST_FIXME to a GST_DEBUG
This is not really a refcounting issue and can happen if a new program is in the
process of being activated that contains streams with the same PIDs.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7898>
2024-12-04 08:03:41 +00:00
Víctor Manuel Jáquez Leal
44b8a50879 vkencoder-private: add gst_vulkan_encoder_is_started()
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8007>
2024-12-04 02:17:45 +00:00
Víctor Manuel Jáquez Leal
549404ccaa vkencoder-private: add again GST_TYPE_VULKAN_ENCODER_RATE_CONTROL_MODE
It was already part of the old rate control mechanism but it had wrong the
namespace.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8007>
2024-12-04 02:17:45 +00:00
Víctor Manuel Jáquez Leal
e03b124c10 vkencoder-private: implement callback to chain control rate structures
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8007>
2024-12-04 02:17:45 +00:00
Víctor Manuel Jáquez Leal
b99276a7f9 vkencoder-private: implement callback to chain codec specific structures
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8007>
2024-12-04 02:17:45 +00:00
Víctor Manuel Jáquez Leal
ab6aafb076 vkencoder-private: handle quality level
It creates a new structure for passing the codec quality structure at _start(),
where it will be filled. The quality level can be set or changed according
encoder limits.

Later the quality level will be set at _update_session_parameters() and at each
frame encoding. That's why it has to be set at _start().

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8007>
2024-12-04 02:17:45 +00:00
Víctor Manuel Jáquez Leal
d63ec09b5e vkencoder-private: rename first_encode_cmd to session_reset
Since it reflect better when it's needed to be used: to reset the current
session.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8007>
2024-12-04 02:17:45 +00:00
Víctor Manuel Jáquez Leal
200484a84b vkencoder-private: shuffle down VkVideoBeginCodingInfoKHR initialization
to make it more cohesive

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8007>
2024-12-04 02:17:45 +00:00
Víctor Manuel Jáquez Leal
fbeb012617 vkencoder-private: remove rate control handling
It will be reintroduced later with different approach.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8007>
2024-12-04 02:17:44 +00:00
Víctor Manuel Jáquez Leal
8fc2af44c8 vkencoder-private: enhance algorithm to get the slot index
The algorithm for generating the current slot index is a simple round robin,
nonetheless it's not assured that the next slot index it's not still used by a
still living encode picture.

This new way holds an array with the still living encode pictures and the next
slot index looks for a released index in the array.

Its downside is deallocating a picture need to be removed from the array, so the
helper has to be passed to the uninit() function

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8007>
2024-12-04 02:17:44 +00:00
Víctor Manuel Jáquez Leal
d4de932664 vkencoder-private: add VkVideoReferenceSlotInfoKHR in GstVulkanEncoderPicture
And remove slotIndex since it's part of VkVideoReferenceSlotInfoKHR, simplifying
the reference slots array creation, and changing the tests accordingly.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8007>
2024-12-04 02:17:44 +00:00
Víctor Manuel Jáquez Leal
75a6ddf2be vkencoder-private: check for codec buffer
gst_vulkan_video_codec_buffer_new() can return NULL, so it's required to check
the returned value and bail out if needed.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8007>
2024-12-04 02:17:44 +00:00
Víctor Manuel Jáquez Leal
d9e9d2ff72 vkencoder-private: avoid GstVulkanEncoderPicture allocation
By using it as apart of the encoder picture structure that has to initialized
and uninitalized.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8007>
2024-12-04 02:17:44 +00:00
Víctor Manuel Jáquez Leal
c1e364ecdc vkencoder-private: remove width, height and fps from GstVulkanEncoderPicture
In GStreamer that buffer information is decoupled, holding other structures to
describe the stream: GstCaps. So, to keep the GStreamer design this patch
removes these information from GstVulkanEncoderPicture and pass to
gst_vulkan_encoder_encode() a pointer to GstVideoInfo.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8007>
2024-12-04 02:17:44 +00:00
Víctor Manuel Jáquez Leal
eef9717478 vkencoder-private: replace packed headers with offset handling
Instead of holding all headers in an external array and add them into the
bitstream buffer before the encoding operation, adding extra memory and extra
copy operations, the encoder picture should specify the offset where the Vulkan
will start to add the bitstream slices/frame, because the element has written
already the headers until that offset.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8007>
2024-12-04 02:17:44 +00:00
Víctor Manuel Jáquez Leal
48b2c3cf74 vkencoder-private: remove nb_refs from GstVulkanEncoderPicture
That's the number of references that gst_vulkan_encoder_encode() receives to
process, so it has to go as a parameter, because it's part of the reference
list, not of the picture.

This commit also modified unit tests accordingly.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8007>
2024-12-04 02:17:44 +00:00
Víctor Manuel Jáquez Leal
87db136cc7 vkencoder-private: remove pic_num and pic_order_cnt from GstVulkanEncoderPicture
Since they aren't semantically part of the codec-independent encoding operation.
And modify unit tests accordingly.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8007>
2024-12-04 02:17:44 +00:00
Víctor Manuel Jáquez Leal
a8e676a0da vkencoder-private: remove is_ref member from GstVulkanEncoderPicture
It's not used. Modified the unit test accordingly.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8007>
2024-12-04 02:17:44 +00:00
Víctor Manuel Jáquez Leal
4a221aad8a vkencoder-private: don't store output data size
There's no need to store in encoder helper the output data size, that's
responsibility of the caller when an output buffer is allocated.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8007>
2024-12-04 02:17:44 +00:00
Víctor Manuel Jáquez Leal
091fe0c1e7 vkencoder-private: enhance capabilities logging
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8007>
2024-12-04 02:17:44 +00:00
Víctor Manuel Jáquez Leal
1df99ec0d4 vulkan: store in GstVulkanVideoCapabilities encoder and decoder caps
The structure already stored the generic video capabilities and the specific
codec capabilities both for encoding an decoding. The generic decoder
capabilities weren't stored because it was only used internally in the decoder
helper object. Nonetheless, for the encoder, the elements will need the generic
encoder capabilities to configure the encoding. That's why it's required to
expose it as part of GstVulkanVideoCapabilities. And the generic decoder is
included for the sake of symmetry.

While updating the API vkvideoencodeh265 test got some code-style fixes.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8007>
2024-12-04 02:17:44 +00:00
Víctor Manuel Jáquez Leal
cf9cc5ec1b vkencoder-private: rename GstVulkanEncoderPicture
GstVulkanEncodePicture breaks the namespace. This commit fixes it by renaming it
to GstVulkanEncoderPicture, also new() and free() signature functions.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8007>
2024-12-04 02:17:44 +00:00
Seungha Yang
a830c58139 nvdswrapper: Add NVIDIA DeepStream wrapper plugin
Adding a NVIDIA DeepStream SDK based plugin with a dewarp element

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7357>
2024-12-04 01:19:19 +00:00
Pablo Sun
4507f92b0d kmssink: Add mediatek auto-detection
Add MediaTek display controller into list of
auto-detected modules.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8023>
2024-12-02 16:43:45 +00:00
Víctor Manuel Jáquez Leal
1cc0a7d2bb vkencoder-private: keep only one DPB view for layered DPB
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7993>
2024-11-29 06:36:52 +00:00
Víctor Manuel Jáquez Leal
133011c9ba vkencoder-private: increase reference slots array
H264 has the maximum number of refs (36) of any supported codec.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7993>
2024-11-29 06:36:52 +00:00
Víctor Manuel Jáquez Leal
479defdcf9 vkencoder_private: move view creation to picture init
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7993>
2024-11-29 06:36:52 +00:00
Víctor Manuel Jáquez Leal
15a3ebf01e vkencoder-private: shuffle up operation and query creation
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7993>
2024-11-29 06:36:52 +00:00
Víctor Manuel Jáquez Leal
83cd24a30d vkencoder-private: shuffle up get format to bail out better
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7993>
2024-11-29 06:36:52 +00:00
Víctor Manuel Jáquez Leal
98d30cc30a vkencoder-private: define encoded feedback flags by removing override bit
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7993>
2024-11-29 06:36:52 +00:00
Víctor Manuel Jáquez Leal
984956a6fe vkencoder-private: fix parameters overrides
First remove validations since they will fail if there isn't a write operation.
It's valid to pass data without write operations.

Finally, it should check for hasOverride in feedback info. Nonetheless, there's
a NVIDIA bug returning always FALSE for hasOverride, that's why we currently
force it to TRUE.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7993>
2024-11-29 06:36:52 +00:00
Nirbheek Chauhan
75848859f1 kms: Bump libdrm requirement to 2.4.108
DRM modifier support requires drmModeFormatModifierBlobIterNext()
which was added in 2.4.108. See:

https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5174#note_2673883

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7991>
2024-11-28 15:43:42 +00:00
Jan Alexander Steffens (heftig)
4586260191 cccombiner: Improve get_next_time to avoid spinning
Avoid aggregate getting called in a loop when timed out but we're not in
a state where we can produce a buffer.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1746>
2024-11-28 14:37:07 +00:00
Jan Alexander Steffens (heftig)
0f2583d286 cccombiner: Add caption_pad field to avoid get_static_pad
Save a reference to the caption pad as well. This will make the
`get_next_time` implementation cheaper.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1746>
2024-11-28 14:37:07 +00:00
Jan Alexander Steffens (heftig)
49ecde573c cccombiner: Pass caption_pad to schedule_caption
Avoid having to find this pad again.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1746>
2024-11-28 14:37:07 +00:00
Jan Alexander Steffens (heftig)
9ef06d77a7 cccombiner: Add video_pad field to avoid pad get/ref/unref
Saving a reference to this always-present pad simplifies the code and
avoids a lot of pad list scans and refcounting.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1746>
2024-11-28 14:37:07 +00:00
Víctor Manuel Jáquez Leal
603e7c3e5f vulkan: add gst_vulkan_video_image_create_view()
This function is moved from gstvkdecoder-private so it could be used by
gstvkencoder-private too, removing there what it should be duplicated code.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7984>
2024-11-28 07:05:40 +01:00
Víctor Manuel Jáquez Leal
3389347467 vkencoder-private: fix documentation
The function doesn't take the reference from caller, it keeps it's own
reference, so transfer is none.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7974>
2024-11-27 20:13:12 +00:00
Víctor Manuel Jáquez Leal
b88f15406f vkencoder-private: fix code style and use gpointer
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7974>
2024-11-27 20:13:12 +00:00
Víctor Manuel Jáquez Leal
20a0a46676 vkencoder-private: fix and complete public functions prechecks
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7974>
2024-11-27 20:13:12 +00:00
Víctor Manuel Jáquez Leal
e9ef5e0c36 vkencoder-private: check for layered buffer when new picture
And balance `if` curly brackets.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7974>
2024-11-27 20:13:12 +00:00
Víctor Manuel Jáquez Leal
066144f78c vkencoder-private: early return if dpb pool or dpb buffer already exist
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7974>
2024-11-27 20:13:12 +00:00
Víctor Manuel Jáquez Leal
52bd1931b8 vkencoder-private: usage structure is provided by caller
As all the profile structure, it's not intended to be filled in
gst_vulkan_encoder_start() function, but by the caller.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7974>
2024-11-27 20:13:12 +00:00
Víctor Manuel Jáquez Leal
a12daaca28 vkencoder-private: fix how to get bitstream buffer size
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7974>
2024-11-27 20:13:12 +00:00
Víctor Manuel Jáquez Leal
7a9bd2c9d4 vkencoder-private: doc: fix function name
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7974>
2024-11-27 20:13:12 +00:00
Víctor Manuel Jáquez Leal
e79ff5a4f1 vkencoder-private: use gst_clear_object()
Instead of g_clear_object() for sake of coherence.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7974>
2024-11-27 20:13:12 +00:00
Víctor Manuel Jáquez Leal
5e78ffe87a vkencoder-private: fix return value to gst_vulkan_encoder_encode()
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7974>
2024-11-27 20:13:12 +00:00
Víctor Manuel Jáquez Leal
751d628160 vkencoder-private: doc: remove (in) annotation
because it's the default one

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7974>
2024-11-27 20:13:12 +00:00
Víctor Manuel Jáquez Leal
af0e15e9be vkencoder-private: move out indent macros
Outside of the structures whenever is possible, given indent limitations. In this way
the code has a better readability.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7974>
2024-11-27 20:13:12 +00:00
Xi Ruoyao
ee3802cf71 x265: Allow building with x265-4.1
In x265-4.1 masteringDisplayColorVolume is changed from a pointer to a
character array embedded in struct x265_param.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7968>
2024-11-27 13:04:57 +00:00
Nirbheek Chauhan
23a006c64f meson: Don't unconditionally invoke the libsoup subproject
fallback: kwarg will invoke the specified subproject even if required:
false, which is not what we want here.

Reported at https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/4045#note_2674340

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7965>
2024-11-27 12:12:36 +00:00
Mathieu Duponchelle
b433d72a4d cccombiner: expose input-meta-processing property
It can be used to discard closed captions from the input pad if the
matching video buffer already held closed captions.

It is useful in a scenario where captions are generated for an AV
stream, but the incoming stream already has embedded captions for
some intervals, and those original captions should be preferred.

It can also be used to make sure input CC meta is always dropped,
the default behavior remains to append aggregated CC to whatever
CC meta was already present on the input video buffer

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6072>
2024-11-27 10:02:22 +00:00
Seungha Yang
6bcedb0d8b d3d12converter: Gamma LUT related enhancements
* Build gamma LUT using shader, instead of CPU side math then uploading
* Make gamma LUT sharable across multiple converters

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7951>
2024-11-26 16:06:08 +00:00
Seungha Yang
f3191aca58 d3dshader: Add shader for building gamma LUT
Newly added shader will be used by converter to construct
gamma encode/decode LUT texture

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7951>
2024-11-26 16:06:08 +00:00
Jan Alexander Steffens (heftig)
59d98aa4ac ccutils: Rename wrote_first to write_field1
This better describes what we're doing.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7967>
2024-11-26 14:02:24 +00:00
Jan Alexander Steffens (heftig)
9a3b4dff24 ccutils: Fix a typo in cc_buffer_take_cea608_field2
There are no users of cc_buffer_take_cea608_field2, so this never was a
problem.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7967>
2024-11-26 14:02:24 +00:00
Jan Alexander Steffens (heftig)
a6a5401891 ccutils: Fix a typo in max_buffer_time handling
All users set max_buffer_time to GST_CLOCK_TIME_NONE, effectively
infinite, so this never was a problem.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7967>
2024-11-26 14:02:24 +00:00
Jan Alexander Steffens (heftig)
3a119b20b3 ccutils: Remove broken branch
This branch was added in dd00dab5e9 but is
never actually taken, as it requires `cc_data` to be null but
`cc_data_len` to be non-null. It would then dereference the null
`cc_data`.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7967>
2024-11-26 14:02:24 +00:00
Albert Sjolund
c31cbda5de webrtc: don't crash on invalid bundle id
If the bundle id forwarded to connect_rtpfunnel is not valid,
the assertion fails and crashes the program. This is now instead
an error.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7963>
2024-11-26 09:27:20 +01:00
Sebastien Cote
5b5c4147d3 vtenc: add support for the HLG color transfer
Fixes #4047

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7947>
2024-11-25 16:45:20 +00:00
Stéphane Cerveau
7dfed55929 vkoperation: update doc to skip barriers array methods
Some methods are using arrays of element which type can
vary at compile time. These methods should not
be introspectable as it's not possible to determine
the final type.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7880>
2024-11-25 15:24:17 +00:00
Zhong Hongcheng
821754e2d5 tests: Add the VVC(H266) parser test cases
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5003>
2024-11-24 16:49:25 +00:00
He Junyan
24944fd153 libs: codecparsers: Implement the VVC(H266) parser part II
Implement the picture header, slice header and SEI parsing functions.

Co-authored-by: spartazhc <spartazhc@gmail.com>
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5003>
2024-11-24 16:49:25 +00:00