Mengkejiergeli Ba
5bf85229e5
msdkenc: Guard the read of thiz->initialized with the modification of this value
...
This is to avoid wrongly read/write thiz->initialized when multi-thread
invoking encoder init function, it is possible when user apps deploy
multi-thread to dynamically change encoder's settings.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7578 >
2024-09-29 01:07:39 +00:00
Sebastian Dröge
b7b24573ce
common: Use more efficient versions of GstCapsFeatures API where possible
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7432 >
2024-09-26 19:26:18 +03:00
Víctor Manuel Jáquez Leal
a275694939
msdk: replace strcmp with g_strcmp0
...
Because strcmp doesn't handle NULL.
Fixes : #3721
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7347 >
2024-08-13 11:10:07 +02:00
Michael Scherle
f77189a7bf
msdkvpp: add interpolation method
...
For description of interpolation modes, see:
<https://intel.github.io/libvpl/latest/API_ref/VPL_enums.html#interpolationmode >.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7278 >
2024-08-02 14:39:47 +00:00
Mengkejiergeli Ba
84cb1ef895
msdk: Add new driver name "xe"
...
Intel has released a new graphic driver named "xe" for
newer Gen12/Xe graphics (i.e. from Lunar Lake).
This patch add "xe" name when getting device in gst-msdk plugins.
See xe driver public in
https://github.com/torvalds/linux/tree/master/drivers/gpu/drm/xe
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7178 >
2024-07-22 12:51:47 +00:00
Mengkejiergeli Ba
248556d823
msdkvpp: Add a huge value to inbuf pts and set mfx surface timestamp
...
It can be seen as a WA in the case of multi-channel transcoding (like
decoder output to two channels, one for encoder and one for vpp).
Normally, encoder sets min pts of a huge value to avoid negative dts,
while vpp set pts without this addtional huge value, which are likely to
cause input surface pts does not fit with encoder (since both encoder
and vpp accept the same buffer from decoder, means they modify the timestamp
of one mfx surface). So we add this huge value to vpp to ensure enc and
vpp set the same value to input mfx surface meanwhile does not break
encoder's setting min pts for dts protection.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6971 >
2024-06-11 05:21:42 +00:00
Nirbheek Chauhan
907aca399f
msdk: Fix libdrm dependency detection and usage
...
drm_fourcc.h should be picked up via the pkgconfig include, not the
system includedir directly.
Also consolidate the libdrm usage in va and msdk.
All this allows it to be picked up consistently (via the subproject,
for example).
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6932 >
2024-05-29 15:49:45 +00:00
Víctor Manuel Jáquez Leal
236d6714ec
msdkcaps: fix ill-format string
...
This patch fixes this critical warning when registering MSDK:
_dma_fmt_to_dma_drm_fmts: assertion 'fmt != GST_VIDEO_FORMAT_UNKNOWN' failed
It was because the HEVC string with possible output formats has an extra space
that could not be parsed correctly.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6853 >
2024-05-29 13:08:55 +00:00
Mengkejiergeli Ba
9480197377
msdk: Add Y212 format to hevc encoder static raw caps
...
Note that static caps is used for the old MSDK dispatch.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6750 >
2024-04-30 04:05:29 +00:00
Mengkejiergeli Ba
49dee23e65
msdk: Add main-422-12 profile to hevc
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6591 >
2024-04-17 19:31:09 +00:00
Víctor Manuel Jáquez Leal
3b4b979ec4
msdk: sink context reference
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6398 >
2024-04-03 08:48:25 +00:00
Cheah, Vincent Beng Keat
249a086612
msdk: Fix mjpeg BGRx encode
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6401 >
2024-04-01 11:23:24 +00:00
Mengkejiergeli Ba
faddaa8ba5
msdkvpp: Set colorimetry for src caps
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6316 >
2024-04-01 02:20:50 +00:00
Mengkejiergeli Ba
72bb59b37c
msdkenc: Set VideoFullRange according to input colorimetry range
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6316 >
2024-04-01 02:20:50 +00:00
Mengkejiergeli Ba
41c52f5739
msdk: Fix session close failure
...
In the case of multi-channels transcoding, a context with child
sesseion can be parent for others, so we need to check if the
msdkcontext has any child session in the list to avoid session
leaks. Otherwise, we will see the failure of closing a parent
session because one of its child's child session not released.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6259 >
2024-03-29 04:20:47 +00:00
He Junyan
a5a1944db4
MSDK: Set the job type when create context from external handle
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6221 >
2024-03-06 05:22:23 +00:00
Mengkejiergeli Ba
fc38459e50
msdk: Fix possible memory leaks
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6161 >
2024-02-22 11:53:06 +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
Mengkejiergeli Ba
b8cb0d1d7f
msdkdec: Fix leaks
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5930 >
2024-01-18 08:43:48 +00:00
Mengkejiergeli Ba
a6ab4fa98b
msdkdec: Let msdk base decoder maintain the output_state
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5929 >
2024-01-17 10:04:03 +08:00
Mengkejiergeli Ba
2c61fd92e2
msdkvpp: Fix dma caps negotiation
...
Modify the fix_output_format in vpp to directly generate caps with
negotiated src caps, and we have the correct dma caps negotiation in
fix_output_format function. And thus, we can remove the redundant
negotiation of using function pad_accept_memory in vpp.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5845 >
2024-01-16 14:04:05 +08:00
Mengkejiergeli Ba
0d04660c5d
msdk: Fix memory leaks
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5819 >
2024-01-11 14:52:45 +08:00
Mengkejiergeli Ba
14c5d3ee91
msdk: Modify the caps order when register plugins
...
With this patch, the caps is registered in the order of memory features
as: VAMemory, DMABuf then raw caps in linux path, and D3D11Memory then
raw caps in windows path. It helps to prioritize the video memory for all
msdk elements when doing negotiation.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5898 >
2024-01-10 01:14:21 +00:00
Mengkejiergeli Ba
7d62166098
msdk: Remove useless function for vp8dec and vc1dec in windows path
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5898 >
2024-01-10 01:14:21 +00:00
Mengkejiergeli Ba
5d488c444e
msdkvpp: Remove passthrough condition in propose_allocation
...
According to basetransform func: gst_base_transform_do_bufferpool,
it is the upstream to decide if it needs a bufferpool from vpp, so
we don't need passthrough condition in subclass propose_allocation.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5879 >
2024-01-04 04:35:40 +00:00
Víctor Manuel Jáquez Leal
4a22cc8fb3
va: no need to provide a buffer size for VA pool
...
VA drivers allocate surfaces given their properties, so there's no need to
provide a buffer size to the VA pool.
Though, the buffer size is provided by the driver, or the canonical size
is used for single planed surfaces.
This patch removes the need to provide a size for the function
gst_va_pool_new_with_config() and adds a helper method to retrieve the surface
size, gst_va_pool_get_buffer_size(). Also change the callers accordingly.
Changes for custom VA pool creation will be addressed in the following commits.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5805 >
2023-12-14 12:50:32 +00:00
Mengkejiergeli Ba
41f13f4373
msdk: Remove dead code
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5796 >
2023-12-14 00:47:28 +00:00
Mengkejiergeli Ba
484a636841
msdkvpp: Add fix_format for src caps
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5208 >
2023-12-12 14:56:12 +08:00
Mengkejiergeli Ba
5536f742e9
msdk: Add a help func to fix the map
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5208 >
2023-12-12 14:56:12 +08:00
Mengkejiergeli Ba
8081a665f8
msdk: Remove func to export dmabuf to va surface
...
Since we use va allocator and va dma allocator to create surface, the
surface is already exported in the case of dma allocator. So remove
redundant export function in msdk allocator.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5208 >
2023-12-12 14:56:12 +08:00
Yinhang Liu
61282ebd34
msdkenc: Add modifier support
...
Co-authored-by: Mengkejiergeli Ba <mengkejiergeli.ba@intel.com>
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5208 >
2023-12-12 14:56:12 +08:00
Yinhang Liu
9ccdfae545
msdkvpp: Add modifier support
...
Co-authored-by: Mengkejiergeli Ba <mengkejiergeli.ba@intel.com>
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5208 >
2023-12-12 14:56:12 +08:00
Yinhang Liu
63c0fdd29a
msdkdec: Add modifier support
...
Co-authored-by: Mengkejiergeli Ba <mengkejiergeli.ba@intel.com>
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5208 >
2023-12-12 14:56:12 +08:00
Mengkejiergeli Ba
e65e954e2b
msdk: Config pool with max/min number of buffers
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5208 >
2023-12-12 14:56:12 +08:00
Yinhang Liu
e668cf9305
msdk: Add help functions to handle drm caps
...
Co-authored-by: Mengkejiergeli Ba <mengkejiergeli.ba@intel.com>
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5208 >
2023-12-12 14:56:03 +08:00
Yinhang Liu
bf4703e9a0
msdk: Add modifier when creating dynamic caps
...
Add modifier in gst-inspect for dma features.
Co-authored-by: Mengkejiergeli Ba <mengkejiergeli.ba@intel.com>
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5208 >
2023-12-12 11:30:07 +08:00
Yinhang Liu
8100b04ea0
msdk: Add a helper function to get supported modifiers
...
The modifiers will be used when creating caps for dma feature.
co-authored-by: Mengkejiergeli Ba <mengkejiergeli.ba@intel.com>
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5208 >
2023-12-12 10:22:11 +08:00
Mengkejiergeli Ba
be7e502769
msdk: Let deviceID config the mfx implementation
...
In multi-card scenario, user can set GST_MSDK_DRM_DEVICE env variable to
choose the device. This patch can align vpl's queried results with the
users' choice by passing deviceID when creating mfx implementation.
Co-authored-by: Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5697 >
2023-12-07 11:17:20 +08:00
Seungha Yang
c432a73e80
msdk: Fix build error after d3d11 API change
...
Fixes: https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/3158
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5723 >
2023-11-28 19:17:20 +09:00
Mengkejiergeli Ba
cef1f179c6
msdk: Add device env in plugin dependencies
...
Add env vars GST_MSDK_DRM_DEVICE in plugin_add_dependencies to register
msdk plugins according to user's choice in a multi-gpu platform.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5615 >
2023-11-15 02:34:27 +00:00
Mengkejiergeli Ba
c14f4cda0c
msdkvpp: Use filter flag to handle passthrough for tone mapping
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5449 >
2023-10-12 05:02:37 +00:00
Tong Wu
57bfbf51b2
msdkvpp: fix an issue which causes dangling pointer
...
Put all the external buffer structures into thiz to avoid being freed
early.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5377 >
2023-09-22 10:04:30 +08:00
Víctor Manuel Jáquez Leal
b5de07a8c5
msdk: meson: don't warn deprecated symbols
...
Since it's impossible to not to use any because any possible version mismatch
between the header and the runtime, such in the case of the denoise structure.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5283 >
2023-09-18 09:30:33 +00:00
Víctor Manuel Jáquez Leal
b3b2f3016c
msdkdec: fix method declaration signature
...
Thus silencing a compilation warning.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5283 >
2023-09-18 09:30:33 +00:00
Mengkejiergeli Ba
b3e7404312
msdkvpp: Add compute scaling mode
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5128 >
2023-09-14 13:50:48 +08:00
Mengkejiergeli Ba
887b4095ca
msdkvpp: Enable HDR-to-SDR tone mapping
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5277 >
2023-09-13 14:58:59 +08:00
Mengkejiergeli Ba
0ee7ebd17d
msdkvpp: Set color properties for input and output
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5277 >
2023-09-13 14:58:59 +08:00
Mengkejiergeli Ba
8ab6559362
msdkh265enc: Use vpl APIs to handle HDR SEIs
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5135 >
2023-09-12 07:36:39 +00:00
Mengkejiergeli Ba
8846400b83
msdkh264enc: Set profile as unknown when not specified by downstream
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5039 >
2023-07-26 02:01:31 +00:00
Mengkejiergeli Ba
b9ecd4e618
msdkenc: Apply update functions when setting property
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4865 >
2023-06-25 02:03:28 +00:00