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
Seungha Yang
d849e238fe
d3d12: Add AV1 decoder
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4161 >
2023-09-17 18:53:39 +09:00
Seungha Yang
10bda3a12a
d3d12: Add VP9 decoder
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4161 >
2023-09-17 18:53:39 +09:00
Seungha Yang
fb27733dd8
d3d12: Add H.265 decoder
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4161 >
2023-09-17 18:53:39 +09:00
Seungha Yang
734dd50879
d3d12: Add H.264 decoder
...
Adding Direct3D12 h264 decoder
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4161 >
2023-09-17 18:53:24 +09:00
Seungha Yang
2c058b3b99
d3d11decoder: Port to GstDxva
...
Use new DXVA baseclass
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4161 >
2023-09-17 18:30:07 +09:00
Seungha Yang
bd25c2738e
nvdecoder: Copy output frame if needed
...
Even if decoder is negotiated with CUDA memory feature, if downstream
proposed no buffer pool, assume that the pool size is unknown.
And disable zero-copy if there's no more free output surface.
Or, in case of reverse playback, always copy frames.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5338 >
2023-09-17 00:15:47 +09:00
Seungha Yang
c5a5dcdf18
nvh265dec: Reconfigure decoder on max-dpb-size change
...
Decoder should create new picture pool for larger DPB size
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5338 >
2023-09-16 23:00:11 +09:00
Seungha Yang
85f01d7709
d3d11h265dec: Reconfigure decoder on max-dpb-size change
...
Decoder should create new picture pool for larger DPB size
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5338 >
2023-09-16 22:56:03 +09:00
Matthew Waters
86f00367fc
androidmedia/enc: handle codec-data before popping GstVideoCodecFrames
...
Issue is that when amc was producing a codec-data buffer, a
GstVideoCodecFrame was being popped off the internal queue. This meant
that the codec-data was being associated with the first input frame and
the second (first encoded buffer) output buffer with the second input
frame. At the end (assuming one input produces one output which seems
to hold in my testing and how the encoder is currently implemented)
there would be an input frame missing and would be pushed without any
timing information. This would lead to e.g. muxers rejecting the buffer
without PTS and failing to mux.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5330 >
2023-09-15 17:47:17 +03:00
Matthew Waters
bec57df2f8
androidmedia/enc: add fixme log about partial frames
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5330 >
2023-09-15 13:46:47 +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
Thomas Schneider
2f3fea33ca
androidmedia: fix hevc codec profile registration
...
Fix the codec registration logic such that all supported
profiles are available instead of just the first in the
list.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5282 >
2023-09-11 12:00:05 +00:00
Seungha Yang
f9169c5431
nvdecoder: Move common logic to decoder helper object
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5285 >
2023-09-08 11:51:23 +00:00
Seungha Yang
6cf6c73712
d3d11decoder: Move common logic to decoder helper object
...
We can remove duplicated code by using the GstCodecPicture struct
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5285 >
2023-09-08 11:51:23 +00:00
Seungha Yang
97fc02cfe3
av1decoder: Port to GstCodecPicture struct
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5285 >
2023-09-08 11:51:23 +00:00
Seungha Yang
a73c6d7fb6
vp9decoder: Port to GstCodecPicture struct
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5285 >
2023-09-08 11:51:23 +00:00
Seungha Yang
4571fac946
vp8decoder: Port to GstCodecPicture struct
...
... and remove unused "pts" variable from GstVp8Picture struct
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5285 >
2023-09-08 11:51:23 +00:00
Seungha Yang
a5ddf7af3b
mpeg2decoder: Port to GstCodecPicture struct
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5285 >
2023-09-08 11:51:23 +00:00
Seungha Yang
6e7cab43be
h265decoder: Port to GstCodecPicture struct
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5285 >
2023-09-08 11:51:23 +00:00
Seungha Yang
ea3dfadbed
h264decoder: Port to GstCodecPicture struct
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5285 >
2023-09-08 11:51:23 +00:00
He Junyan
6b23f2c4be
va: baseenc: use in_info rather than input_state->info
...
The in_info is correct video info which already considers the
DMA kind caps case.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5289 >
2023-09-06 15:40:03 +08:00
Víctor Manuel Jáquez Leal
52971faf14
va: refactor caps convertion to va caps
...
To avoid code duplication in code related with buffer importation.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5257 >
2023-08-31 12:41:48 +00:00
Víctor Manuel Jáquez Leal
89b0a6fa23
va: refactor buffer import
...
This patch removes the code duplication of input buffer importation, in all the
va elements that import video frames. It defines a synthetic object whose
members are required to create a new input buffer and do the importation of the
upstream buffer.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5257 >
2023-08-31 12:41:48 +00:00
Seungha Yang
9a5f5304f8
dwrite: Add plugin docs
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5258 >
2023-08-30 15:45:12 +00:00
Seungha Yang
560faa38c5
d3d11: Update plugin docs
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5258 >
2023-08-30 15:45:12 +00:00
He Junyan
e81a40cb72
va: baseenc: Add the DMA buffer input support
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5189 >
2023-08-29 15:31:09 +00:00
He Junyan
5e6c91579f
va: encoder: Add in_info field to base encoder
...
When we consider the DMA kind caps as input, the input_state->info
only contains the video format of GST_VIDEO_FORMAT_DMA_DRM, which
is not enough for va plugins. The new info in base encoder contains
the correct video info after the DMA caps parsing.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5189 >
2023-08-29 15:31:09 +00:00
Seungha Yang
1e381dc1cc
d3d11convert: Passthrough allocation query on same caps
...
Since d3d11convert and its variant elements does not enable basetransform's
passthrough, passthrough allocation query needs to be handled
manually in order to respect downstream element's min/max buffer
requirement.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5255 >
2023-08-29 19:46:00 +09:00
Seungha Yang
ff435c80a2
d3d11videosink: Use premultiplied-alpha swapchain
...
Don't ignore alpha component if it's present
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5242 >
2023-08-25 16:54:29 +00:00
Seungha Yang
6fa405c1e2
cudaipcclient: Protect IPC handle import/close with global lock
...
Protect import/close with signle lock to avoid importing a IPC handle
while it's being closed by another cudaipcsrc from other thread.
Also fixing cuda context leak
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5230 >
2023-08-25 10:06:58 +00:00
Víctor Manuel Jáquez Leal
c1f99f4005
va: Fix in error logs functions mismatches
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5236 >
2023-08-24 17:54:32 +00:00
Víctor Manuel Jáquez Leal
bcee96020f
vabasedec: Remove assertion for resolution change in input state
...
This is reported from https://bugs.webkit.org/show_bug.cgi?id=259032
Though I couldn't reproduce the issue, it looks to me unneeded to assert for
resolution changes in old frames, since renegotiation is carried out.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5237 >
2023-08-24 16:21:14 +00:00
Seungha Yang
315cfaf2d8
nvencoder: Fix negotiation error when interlace-mode is unspecified
...
Use GST_PAD_SET_ACCEPT_INTERSECT() to accept caps without interlace-mode
field
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5229 >
2023-08-24 14:58:25 +00:00
He Junyan
c927159f21
va: compositor: Use va_get_surface_usage_hint() to get the usage hint
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5210 >
2023-08-24 11:03:59 +00:00
He Junyan
1b43baf3c8
va: baseenc: Use va_get_surface_usage_hint() to get the usage hint
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5210 >
2023-08-24 11:03:59 +00:00
He Junyan
696d81f6f8
va: Use va_get_surface_usage_hint() to detect the modifiers
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5210 >
2023-08-24 11:03:59 +00:00
He Junyan
8399bc2521
va: basedec: Use va_get_surface_usage_hint() to get the usage hint
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5210 >
2023-08-24 11:03:59 +00:00
He Junyan
bb350138af
va: basetransform: Use va_get_surface_usage_hint() to get the usage hint
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5210 >
2023-08-24 11:03:59 +00:00
Seungha Yang
f058eda798
win32ipc: Fix pipe handle leak
...
Named pipe handle must be closed if it's no longer needed
Fixes: https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/2923
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5228 >
2023-08-23 18:33:04 +09:00
L. E. Segovia
07b18a6de5
applemedia: Also fix inconsistent pixel format definition for NV12
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5191 >
2023-08-16 14:15:52 +00:00
L. E. Segovia
e52e1db5ab
applemedia: Fix pixel format for I420
...
In Intel Macs, using full range 8-bit 4:2:0 YCbCr results in a failure on
initialization. I've validated this to be the correct pixel format with FFmpeg:
8653dcaf7d/libavutil/hwcontext_videotoolbox.c (L45)
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5191 >
2023-08-16 14:15:52 +00:00
L. E. Segovia
b1a5707fcb
windows: Fix mutexes leaking into the exports table
...
Translation unit-local variables must be marked static on Windows,
otherwise they're made available to the whole binary.
See:
https://learn.microsoft.com/en-us/cpp/cpp/program-and-linkage-cpp?view=msvc-170#external-vs-internal-linkage
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5185 >
2023-08-16 08:17:05 +00:00
Seungha Yang
ae04702d23
wasapi2: Use C++ atomic instead of GLib
...
Release-Acquire ordering could be faster than MemoryBarrier()
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5176 >
2023-08-14 14:20:45 +00:00
Seungha Yang
c992dd2184
wasapi2ringbuffer: Don't use GLib's weak pointer implementation
...
GWeakRef takes global mutex. Use C++ weak_ptr which will perform
atomic operation internally.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5176 >
2023-08-14 14:20:45 +00:00
Seungha Yang
7b6023d9cf
nvcodec: Add support for CUDA IPC
...
Adding cudaipc{src,sink} element for CUDA IPC support.
Implementation note:
* For the communication between end points, Win32 named-pipe
and unix domain socket will be used on Windows and Linux respectively.
* cudaipcsink behaves as a server, and all GPU resources will be owned by
the server process and exported for other processes, then cudaipcsrc
(client) will import each exported handle.
* User can select IPC mode via "ipc-mode" property of cudaipcsink.
There are two IPC mode, one is "legacy" which uses legacy CUDA IPC
method and the other is "mmap" which uses CUDA virtual memory API
with OS's resource handle sharing method such as DuplicateHandle()
on Windows. The "mmap" mode might be better than "legacy" in terms
of stability since it relies on OS's resource management but
it would consume more GPU memory than "legacy" mode.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4510 >
2023-08-14 13:41:01 +00:00