Seungha Yang
be3d7b6f13
hipmemorycopy: Add support for GL interop
...
Enable memory copy between HIP and GL
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8923 >
2025-06-25 00:15:55 +09:00
Seungha Yang
baa9bc9d95
hip: Add GstHipGraphicsResource object
...
hipGraphicsResource_t wrapper object for graphics api interop
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8923 >
2025-06-25 00:15:55 +09:00
Seungha Yang
04fb36b2f9
hip: Load GL interop related symbols
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8923 >
2025-06-25 00:15:55 +09:00
Seungha Yang
ecaab82f11
hip: Pass GPU arch to kernel compile option args
...
Pass current GPU arch to compile option instead of relying on auto
detection
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8923 >
2025-06-25 00:15:55 +09:00
Seungha Yang
fc8f7c349b
hip: Add support for NVIDIA kernel precompile
...
... with "hip-nvidia-precompile" and "hip-nvcc-arch" build options
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8923 >
2025-06-25 00:15:55 +09:00
Seungha Yang
eb925e4212
hip: Add support for AMD kerenl precompile
...
Adding "hip-amd-precompile" build option. If enabled, AMD kernels
will be precompiled at build time. Also "hip-hipcc-arch" build option
(corresponding to --offload-arch hipcc option) is added
so that user can specify target GPU arch instead of auto-detection by hipcc
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8923 >
2025-06-25 00:15:55 +09:00
Seungha Yang
d26755f4d4
hip: Add support for memory copy between GstCuda and GstHip
...
Handle CUDA <-> HIP memory copy in hipupload and hipdownload elements
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8923 >
2025-06-25 00:15:55 +09:00
Seungha Yang
7254e812ac
hip: Add support for NVIDIA
...
Adding HIP <-> CUDA translation layer like the HIP SDK does
but uses dlopen() for CUDA as well
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8923 >
2025-06-25 00:15:55 +09:00
Seungha Yang
24b93f2c41
hip: Remove build-time SDK dependency
...
Use dlopen at runtime
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8923 >
2025-06-25 00:15:55 +09:00
Seungha Yang
0f9ce9de90
hip: Add AMD HIP plugin
...
Adding hipupload, hipdownload, and hipconvert family elements
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8923 >
2025-06-25 00:15:55 +09:00
Matthew Waters
f7ad5cb570
decklink/clock: remove clock_offset
...
It is completely unused and only ever initialized to 0.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9267 >
2025-06-23 08:25:57 +00:00
Matthew Waters
cae2b38614
decklink: calculate internal using values closer to the current clock times
...
In a previous version of the clock time conversion code, scheduled playback used
to be started (from 0) when transitioning to PLAYING and stopped when
transitioning PLAYING->PAUSED. This worked fine when converting running times
using the internal clock. However, now the decklink clock will produce values
that are monotonically increasing and do not reset to 0 at the same moments as
running time anymore. This means that the clock adjustments could attempt to
convert a small running time based on a large clock time e.g. after pausing
for many hours. As the adjustment code is a simple linear interpolation based on
the current clock times (large) using the provided value (small), the small
differences in the rate could result in very large differences in the
output time.
Fix by instead using both internal and external clock times based on the values
that gst_clock_get_calibration() will return. By doing so, small changes in the
rate calculations between the internal and external clock times will not result
in potentially large differences in the output internal time from
gst_clock_unadjust_with_calibration().
Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/4197
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9267 >
2025-06-23 08:25:57 +00:00
Nirbheek Chauhan
a8d9bfdcf2
amc: Overhaul hw-accelerated video codecs detection
...
Android 10 (API 29) added support for isHardwareAccelerated() to
MediaCodecInfo to detect whether a particular MediaCodec is backed by
hardware or not. We can now use that to ensure that the video hw-codec
is PRIMARY+1 on Android, since using a software codec for video is
simply not feasible most of the time.
If we're not able to detect isHardwareAccelerated(), perhaps because
the Android API version is too old, we try to use the codec name as
a fallback.
Also rank PRIMARY+1 the c2.android c2.exynos and c2.amlogic audio
codecs alongside OMX.google, because they are known-good.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9225 >
2025-06-19 11:36:40 +00:00
Nirbheek Chauhan
fb04ef5be3
amc: Log under GST_FIXME for audio encoders
...
We don't support audio encoders yet, so log that correctly.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9225 >
2025-06-19 11:36:40 +00:00
Nirbheek Chauhan
966d8ec279
amc: Improve codec registration logging
...
Most of the messages can be printed with INFO threshold since they are
only printed on plugin registration.
Fix printing of codec caps, since GST_PTR_FORMAT truncates the output
in almost every case that I saw.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9225 >
2025-06-19 11:36:40 +00:00
Nirbheek Chauhan
b8c9884674
amc: Print error messages when registering plugins
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9225 >
2025-06-19 11:36:40 +00:00
Seungha Yang
c5fd61c908
d3d12swapchainsink: Add uv-remap and redraw action signal
...
New uv-remap signal can be used for UV coordinate remap operation
in videosink, and redraw signal can allow updating view even in paused
state
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9209 >
2025-06-17 22:18:32 +00:00
Stéphane Cerveau
59eaf4cc39
parser: fix spelling of GstAV1SegmentationParams
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8795 >
2025-06-17 21:07:13 +00:00
Matthew Waters
01d41b5d59
decklinkvideosink: show preroll frame correctly
...
Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/4254
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9199 >
2025-06-17 10:50:54 +00:00
Seungha Yang
4d2869d4a3
d3d11decoder: Use interlace info in input caps
...
... instead of relying on only parsed values from bitstream.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9170 >
2025-06-04 16:07:24 +00:00
Seungha Yang
4735e765a3
d3d12decoder: Use interlace info in input caps
...
... instead of relying on only parsed values from bitstream.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9170 >
2025-06-04 16:07:24 +00:00
Seungha Yang
712203163e
nvdec: Use interlace info in input caps
...
... instead of relying on only parsed values from bitstream.
Also parses HEVC specific interlace information
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9170 >
2025-06-04 16:07:24 +00:00
Seungha Yang
6efe987d5c
d3d11compositor: Fix negative position handling
...
Negative positions should be cropped out
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9158 >
2025-06-01 18:21:28 +00:00
Seungha Yang
aa0c257d4c
d3d12compositor: Fix negative position handling
...
Negative positions should be cropped out
Fixes: https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/4249
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9158 >
2025-06-01 18:21:28 +00:00
Seungha Yang
343cde7f87
d3d12compositor: Fix critical warnings
...
compositor will record rendering commands using multiple threads
(i.e., blending commands are recoded using thread pool, and
background one is recorded on aggregate thread).
And there can be temporary refcount increase (so not writable).
Updates fence once all rendering commands have been submitted.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9157 >
2025-06-01 23:02:33 +09:00
Seungha Yang
d5dfa3ef5e
d3d12screencapturesrc: Fix desktop handle leak
...
Calling CloseDesktop() on a handle that is currently in use will fail.
Close the handle after current desktop handle change
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9136 >
2025-05-29 17:19:33 +00:00
Seungha Yang
8ff0a1c132
nvencoder: Fix GstNvEncTask leak on non-flow-ok return
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9078 >
2025-05-27 00:05:37 +09:00
Seungha Yang
1fb633368e
nvencoder: Fix GstVideoCodecFrame leak on non-flow-ok return
...
... and use gst_video_encoder_release_frame() to drop frame
instead of gst_video_encoder_finish_frame()
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9078 >
2025-05-26 23:39:21 +09:00
Jan Schmidt
8eb5e3771b
vtenc: Use strlcpy instead of strncpy
...
Silences a compiler warning, and there's no cross-platform
consideration as this plugin is apple-only
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9058 >
2025-05-23 19:00:32 +00:00
Doug Nazar
5867c7900a
all: Annotate *_set_property() contructor only props without free
...
Properties that are marked constructor only aren't required to be freed
before g_value_dup_*() as they can only be called once during construction.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8978 >
2025-05-13 19:15:21 -04:00
Seungha Yang
4d87ffb8f3
d3d12decoder: Workaround for NVIDIA crash on resolution change
...
Recent NVIDIA driver seems to crash on resolution change
if ID3D12VideoDecoder and ID3D12VideoDecodeCommandList are reused.
Fixes: https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/4415
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8968 >
2025-05-12 23:40:13 +00:00
Seungha Yang
bef18d47cf
nvjpegenc: Add autogpu mode element
...
Similar to nvautogpu{h264,h265,av1}enc, adding auto gpu select mode
element
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8555 >
2025-05-11 00:01:28 +00:00
Seungha Yang
7d45eca2ce
nvjpegenc: Use stream-ordered alloc if requested
...
If user requested stream-ordered allocation, use async alloc/free
methods
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8555 >
2025-05-11 00:01:28 +00:00
Alexander Slobodeniuk
d437e92049
properties: add G_PARAM_STATIC_STRINGS where missing
...
"Hold on, I know you need to generate the registry, but let me just
create copies of all those strings first", Framework whispered
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8915 >
2025-05-10 12:09:38 +00:00
Seungha Yang
5db574fc35
d3d12: Add d3d12remap element
...
Adding new element to support pixel remapping operation
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8887 >
2025-05-02 22:10:58 +09:00
Alexander Slobodeniuk
a03c4de48f
elements: use set_static_metadata when it's allowed
...
Those strings are nice but CPU doesn't want to copy them
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8905 >
2025-04-26 19:30:15 +02:00
Jochen Henneberg
67cafe5999
va: Fix H264 profile decision logic
...
The current logic would choose 'baseline' profiles only in case that
these profiles appear in the list first.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8882 >
2025-04-24 08:43:01 +02:00
Stéphane Cerveau
e3ae573651
vaav1enc: fix mem leaks in _av1_decide_profile
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8845 >
2025-04-23 10:11:16 +00:00
Stéphane Cerveau
c3f4b6bdaf
vavp9enc: fix mem leaks in _vp9_decide_profile
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8845 >
2025-04-23 10:11:16 +00:00
Sebastian Dröge
df662b5904
aja: Use the correct location of the AJA NTV2 SDK in the docs
...
Also there is no longer a proprietary version of it.
Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/4381
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8874 >
2025-04-23 09:28:16 +03:00
Jakub Adam
c8a802772c
vapostproc: fix wrong video orientation after restarting the element
...
After READY -> NULL -> READY state change, the configured video
orientation didn't get applied on the new GstVaFilter instance.
Resettig prev_direction to default value in update_properties ensures
gst_va_filter_set_orientation() isn't inadvertently skipped.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8871 >
2025-04-22 12:44:37 +02:00
Seungha Yang
420b32b953
wasapi2: Log buffer QPC position and status flags
...
Log all infos of IAudioCaptureClient::GetBuffer
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8859 >
2025-04-17 22:44:19 +00:00
Nicolas Dufresne
cb67f760f0
v4l2codecs: Add Rockchip 8bit/10bit 422 formats
...
This enable NV16 and NV16_10LE40 formats. These formats are
produced by notably rkvdec driver.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5612 >
2025-04-17 15:36:06 +00:00
Andrew Yooeun Chun
1d014e6146
v4l2codecs: fix typos in the documentation
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8829 >
2025-04-12 15:02:38 +09:00
Detlev Casanova
28fdf598e4
v4l2codecs: Unref the frame before leaving on error
...
In h264, h265 and mpeg2, make sure that dec_submit_bitstream() doesn't leak
a frame when dec_ensure_output_buffer() fails.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8794 >
2025-04-09 15:43:03 +00:00
Detlev Casanova
880053c52c
v4l2codecs: av1,vp9: Use temporary variable for buffer
...
This makes the end_picture() function handle the frame in the same way
as in vp8, which also fixes a frame leak when
gst_buffer_pool_acquire_buffer() fails.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8794 >
2025-04-09 15:43:03 +00:00
Xavier Claessens
f6115efe8d
Revert "va: h266 requires libva 2.22.0"
...
This reverts commit 8c017c79c5736c9e45e635df210e08550287646d.
1.22 was the correct pkg-config version. It's only the subproject
version that was wrong. Since we bumped libva.wrap to 2.22 version, h266
is now always available when using the subproject.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8800 >
2025-04-09 09:01:22 -04:00
Xavier Claessens
8c017c79c5
va: h266 requires libva 2.22.0
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8788 >
2025-04-08 11:45:11 +00:00
Guillaume Desmottes
d2086675a4
alphadecodebin: use a multiqueue instead of a couple of queues
...
Fix gapless playback as queues are no longer stopped after the first
eos.
Co-authored-by: Nicolas Dufresne <nicolas.dufresne@collabora.com>
Fix #4165
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8775 >
2025-04-07 23:45:33 +00:00
Olivier Crête
e3c3fd10cd
va: Add since markers
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8774 >
2025-04-04 14:06:35 -04:00