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
Seungha Yang
d9894da59d
dwritetimeoverlay: Fix debug category name
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5179 >
2023-08-14 10:24:53 +00:00
Seungha Yang
14ef86a66d
dwrite: Re-add background geometry combine
...
If glyphrun unit is changed in a single line, there could be
overlapped background area which result in drawing background
twice. Adding geometry combine so that background geometry objects
with the same color can be merged and rendered at once
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5179 >
2023-08-14 10:24:53 +00:00
Seungha Yang
9d89bad731
va: Update decoder ranks
...
Most software decoders are ranked as primary, so use primary + 1 for
all codecs except for jpeg.
But ranks should be demoted on Windows since it's still experimental
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5169 >
2023-08-11 15:42:44 +00:00
Seungha Yang
cf2cd20ba0
nvdecoder: Add max-display-delay property
...
The same as in old nvdec implementation so that user can control
the number of delayed output frames.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4841 >
2023-08-10 11:58:42 +00:00
Seungha Yang
19ee5f6dc4
nvdecoder: Reduce DPB size
...
Decoder will copy decoded picture to downstream buffer or output CUDA
memory even in case of zero-copy mode. Additional margin should be unnecessary
unless baseclass passed wrong max DPB size.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4841 >
2023-08-10 11:58:42 +00:00
Nirbheek Chauhan
41b3443b95
wasapi: Don't redefine GUIDs when building under newer MinGW
...
Latest MSYS2 MinGW provides these now, so we don't need to define them
if they're already present in the header.
The AudioClient3 GUID requires the Windows 10 SDK, so it's only
available in the latest MinGW, and the MinGW in Cerbero is too old.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5155 >
2023-08-09 14:47:57 +00:00
Nirbheek Chauhan
b7dcca4c98
wasapi: Remove obsolete ifdefs for older MinGW
...
We no longer ship that ancient MinGW toolchain, and it's causing build
errors with MSYS2 now:
https://gitlab.freedesktop.org/slomo/gstreamer/-/jobs/46866129
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5155 >
2023-08-09 14:47:57 +00:00
Víctor Manuel Jáquez Leal
e1765c4ce8
va/vaapi: promote va ranks and demote vaapi ones
...
VA decoders implementation has been verified from 1.18 through 1.22
development cycles and also via the Fluster test framework. Similar
to other cases, we can prefer hardware over software in most cases.
At the same time, GStreamer-VAAPI decoders are demoted to NONE to
avoid collisions. The first step to their deprecation.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2312 >
2023-08-09 12:13:12 +02:00
Piotr Brzeziński
510e227996
vtenc: Fix cosmetic issues
...
Removes accidental GST_VIDEO_DECODER macro usage.
Also sets the initial size of the output queue to avoid having to expand when first buffers come through.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5164 >
2023-08-09 07:35:32 +00:00
Nicolas Dufresne
8710911e6b
v4l2codecs: Enable Mediatek 10bit 4:2:0 support
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3444 >
2023-08-08 16:08:16 +00:00
Víctor Manuel Jáquez Leal
4583d8c0e8
vajpegdec: simply fixup src caps for iHD
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4044 >
2023-08-07 22:49:26 +00:00
He Junyan
64d821af24
va: jpegdec: Do not change the DMA template src caps
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4044 >
2023-08-07 22:49:26 +00:00
He Junyan
72e4bcf4df
va: Delete the usage hint hack when we support DRM modifier
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4044 >
2023-08-07 22:49:26 +00:00
He Junyan
d0587cda74
va: Apply the new DMA format:modifier pair negotiation in vpp
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4044 >
2023-08-07 22:49:26 +00:00
He Junyan
5df0bfa7cb
va: Apply the new DMA format:modifier pair negotiation in decoder
...
We will consider the DMA modifier for negotiation, setting caps and
memory pool allocation.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4044 >
2023-08-07 22:49:26 +00:00
He Junyan
b1909949cb
va: Improve the template caps for DMA, use new drm-format kind caps
...
We should add the modifier information for each surface format when
we report the template caps.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4044 >
2023-08-07 22:49:26 +00:00
He Junyan
d7d25de892
va: Use GstVideoInfoDmaDrm in DMA allocator's get/set_format() API
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4044 >
2023-08-07 22:49:26 +00:00
Ryan Pavlik
6e5ca29e8f
androidmedia: Add more null checks (of env) to JNI utilities
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5138 >
2023-08-02 16:03:38 -05:00
Ryan Pavlik
f3ce30a55a
androidmedia: Add more null checks to JNI utilities
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5130 >
2023-08-01 23:17:54 +00:00
Ryan Pavlik
794d723871
androidmedia: Fix typo
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5130 >
2023-08-01 23:17:54 +00:00
Ryan Pavlik
ec201c6577
androidmedia: Clear err if we don't have an optional camera field/constant
...
Fixes startup on devices where those fields/constants are not found.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5130 >
2023-08-01 23:17:54 +00:00
Seungha Yang
15f0bd2461
dwrite: Move background-color and color-emoji options to effect object
...
... and simplify background rendering
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5121 >
2023-08-02 01:02:32 +09:00
Seungha Yang
a1ad56ed5a
dwrite: Add helper object for blending operation
...
For easy integration with a new text rendering baseclass
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5121 >
2023-08-02 01:02:28 +09:00
Seungha Yang
f792884ae7
dwritebaseoverlay: Handle only d3d11 allocation query
...
... and passthrough allocation queries of the other types
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5121 >
2023-08-02 01:00:44 +09:00
Seungha Yang
8633b29fab
dwritetextoverlay: Remove leading CRLF sequence from CC
...
The CRLF sequence is unnecessary
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5121 >
2023-08-02 01:00:44 +09:00
Seungha Yang
f01fc727e3
dwrite: Remove some properties
...
Remove outline color and auto resize related properties
to be consistent with textoverlay elements
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5121 >
2023-08-02 01:00:44 +09:00
Mengkejiergeli Ba
ebea1219a9
vah265enc: Correct the value of cu_qp_delta flag and depth
...
According to libva API description, cu_qp_delta in VAConfigAttribValEncHEVCFeatures
is supposed to be used as a flag not the value of depth. And if flag enabled,
diff_cu_qp_delta_depth should be decided by log2_diff_max_min_luma_coding_block_size.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5068 >
2023-07-27 16:00:19 +00:00
Matthew Waters
f954d93f27
applemedia: silence some deprecation warnings from ios 12.0
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5111 >
2023-07-27 13:05:37 +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
Piotr Brzeziński
dc494d9edb
vtenc: Move output loop to a separate thread
...
vtenc has an async output queue, which we only iterate over after another frame is enqueued.
At the very least it means we're always a frame behind the fastest possible output.
In edge cases it's also bug-prone - for example if we only have 1 frame, the downstream caps negotiation
will never happen.
This commit adds a separate task running on the source pad, which only iterates over the output queue
and pushes frames out as soon as they're put there. The queue length is limited to ensure we don't encode
too far ahead compared to what downstream can consume. Any failures that occur when pushing data downstream
will be signalled in self->downstream_ret so that other parts of code can act accordingly.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4967 >
2023-07-21 13:05:26 +00:00
Seungha Yang
fdb3cdf1fd
qsv: Remove x86_64 constraint on Linux
...
Updated oneVPL SDK supports 32bit and ARM build
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5032 >
2023-07-14 13:12:29 +00:00
Seungha Yang
25d10acaa2
qsv: Re-apply MinGW build workaround
...
Apply the changes of the commits
c80132e4a3
and
23261bccbb
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5032 >
2023-07-14 13:12:29 +00:00
Seungha Yang
1bc5dc778c
qsv: Update oneVPL SDK version to v2023.3.0
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5032 >
2023-07-14 13:12:29 +00:00
Seungha Yang
6429f04692
meson: d3d11: Add d3d11-wgc option for Windows Graphics Capture feature
...
Make the feature requirement explicitly controllable via build option
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4939 >
2023-07-06 21:20:50 +00:00
Seungha Yang
1f18ceaf0f
dwritesubtitlemux: Update object name
...
Add missing prefix `DWrite` so that this element can coexist with
subtitlemux proposed in
https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4938
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4949 >
2023-06-30 23:41:36 +09:00
Seungha Yang
8650c7a42a
dwrite: Add support for non-d3d11/system memory
...
Attach meta if downstream supports it whatever the negotiated memory type is,
or just silently passthrough when meta is not supported
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4945 >
2023-06-30 11:14:17 +00:00
Seungha Yang
1c4de219e4
dwrite: Add dwritesubtitleoverlay element
...
Adding new subtitle overlay element. It's a bin which is wrapping
two internal elements dwritesubtitlemux and dwritetextoverlay.
* dwritesubtitlemux: A new internal element to aggregate subtitle
buffers and to attach the aggregated subtitle buffers on
video buffer as meta.
* dwritetextoverlay: Extracts/renders the subtitle meta and
discard the meta after rendering.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4934 >
2023-06-28 20:15:31 +00:00
Seungha Yang
a1ca42ad66
dwritebaseoverlay: Fix color-font property get/set
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4934 >
2023-06-28 20:15:31 +00:00