Seungha Yang
5eb4253547
qsvh264enc: Optimization for byte-stream to packetized format conversion
...
Allocate single memory instead of per NAL
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4005 >
2023-02-20 21:52:43 +00:00
Seungha Yang
b1c14b0357
nvencoder: Fix b-frame encoding on Linux
...
On Windows, Win32 event handle is used to wait for encoded output,
but it's not available on Linux. We should delay bitstream locking
if encoder returns "need-more-input"
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4004 >
2023-02-20 20:49:01 +00:00
Víctor Manuel Jáquez Leal
573eecac30
vah265enc: Use helper to update properties.
...
This is a continuation of the original patch by
Mengkejiergeli Ba <mengkejiergeli.ba@intel.com>
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3996 >
2023-02-20 18:18:27 +00:00
Mengkejiergeli Ba
b5b86a0c98
nvh264dec: Remove type casting
...
Have fixed type of second_chroma_qp_index_offset as gint8, so remove the type
casting here.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3966 >
2023-02-20 16:40:01 +00:00
Mengkejiergeli Ba
735b6af5b9
va: Fix some code defects
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3919 >
2023-02-20 16:02:38 +00:00
Mengkejiergeli Ba
4e60e91a05
msdkdec: Fix some lock issue
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3947 >
2023-02-20 09:38:09 +08:00
Seungha Yang
b88b323e04
nvencoder: Optimization for byte-stream to packetized format conversion
...
Allocate single memory instead of per NAL
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3992 >
2023-02-20 02:15:24 +09:00
Seungha Yang
070a80943d
nvencoder: Add support for caption insert
...
Fixes: https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/1406
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3992 >
2023-02-20 02:15:24 +09:00
Seungha Yang
b6d371295a
nvencoder: Add support for HDR10 static metadata
...
Insert HDR10 SEIs per IDR
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3992 >
2023-02-20 02:15:24 +09:00
Seungha Yang
84ec16c67a
nvencoder: Add support for GL memory
...
preparation to deprecate old NVENC elements
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3992 >
2023-02-20 02:15:19 +09:00
Seungha Yang
58373e38f4
nvencoder: Fix critical warning in autogpu mode
...
If upstream memory is not CUDA, CUDA context will be null.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3992 >
2023-02-20 01:49:31 +09:00
Seungha Yang
59f359eb99
cuda: Rename macro HAVE_NVCODEC_GST_GL -> HAVE_CUDA_GST_GL
...
... and always use #ifdef instead of #if
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3992 >
2023-02-20 01:49:31 +09:00
Yinhang Liu
b5357cbcbc
msdkav1enc: fix the category for msdkav1enc debug
...
The msdkav1enc debug initialized with gst_msdkav1dec_debug,
fix this.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3985 >
2023-02-17 16:02:58 +08:00
Seungha Yang
f831b92540
nvdecoder: Add support for reconfiguration
...
Instead of creating new decoder instance per new sequence,
re-use configured decoder instance via cuvidReconfigureDecoder()
API. It will make output surface reusable without re-allocation.
Also, in order for application to be able to reserve higher resolution
output surface, "init-max-width" and "init-max-height" properties are
added to each decoder.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3884 >
2023-02-16 17:49:54 +00:00
Seungha Yang
eb0fca4180
nvencoder: Reuse input resource
...
Call input resource map functions (i.e., nvEncRegisterResource,
nvEncUnregisterResource, nvEncMapInputResource, and
nvEncUnmapInputResource) only once and reuse the mapped resources,
instead of per input frame map/unmap
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3884 >
2023-02-16 17:49:54 +00:00
Seungha Yang
03425bc702
nvdecoder: Add support for CUDA zero-copy in stateless decoder
...
Wrap mapped decoder output surface using GstCudaMemory and
output without any copy operation. Also, for application to be able to
control the number of zero-copyable output surfaces,
"num-output-surfaces" property is added.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3884 >
2023-02-16 17:49:54 +00:00
Seungha Yang
a94af552f5
nvdecoder: Port to C++
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3884 >
2023-02-16 17:49:54 +00:00
Seungha Yang
6ddd1713f1
nvdecoder: Reduce render delay to 2 frames
...
4 frames delay seems to be too high
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3884 >
2023-02-16 17:49:54 +00:00
Seungha Yang
fa2bb42fda
cudaconverter: Use cached texture
...
... instead of per conversion texture alloc/free
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3884 >
2023-02-16 17:49:54 +00:00
Seungha Yang
992406cf4f
cuda, nvcodec: Make GstD3D11 dependency mandatory
...
GstD3D11 build-time dependencies should be always available on Windows already
and runtime dependencies as well, since required external
(non-GStreamer) depends are all system DLLs
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3884 >
2023-02-16 17:49:54 +00:00
Evgeny Pavlov
351b72a59a
amfcodec: Initial support of Smart Access Video
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3904 >
2023-02-14 19:04:30 +00:00
Evgeny Pavlov
38c3de565b
amfcodec: Update AMF headers to version 1.4.29
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3904 >
2023-02-14 19:04:30 +00:00
Piotr Brzeziński
04615ca55a
vtenc/vtdec: Fix typo in RGBA64_LE availability define
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3912 >
2023-02-13 17:48:37 +00:00
Piotr Brzeziński
8d81c4827c
vtenc: Disable ARGB/RGBA64 caps on M1 Pro/Max with macOS <13
...
Fixes #1358 .
Passing ARGB64/RGBA64 to vtenc caused the encoding to fail
when running on M1 Pro/Max variants with macOS 12.x, so let's
remove these formats from caps when such scenario is detected.
This issue appears to have been fixed OS-side in macOS 13.0.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3912 >
2023-02-13 17:48:37 +00:00
Evgeny Pavlov
cf9a82cf84
amfcodec: Add 10-bit & HDR support in AMF AV1 encoder
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3641 >
2023-02-13 15:38:07 +00:00
Evgeny Pavlov
ec7eb75312
amfcodec: Add 10-bit & HDR support in h265 encoder
...
This commit adds 10 bit source file encoding and HDR metadata support in AMF HEVC encoding.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3641 >
2023-02-13 15:38:07 +00:00
Seungha Yang
b3acafc2b0
amfav1enc: Set stream-format on caps
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3946 >
2023-02-12 23:18:25 +09:00
Seungha Yang
13ae9d2067
qsvav1enc: Set stream-format on caps
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3946 >
2023-02-12 23:18:04 +09:00
Piotr Brzeziński
e2deebb103
vtdec: Fix not waiting for async frames when flushing
...
This was causing incorrect output when seeking, especially
when used with a multithreaded source like `videotestsrc n-threads=2`.
It should now correctly wait for frames still being processed by VT
while vtdec is flushing.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3922 >
2023-02-10 18:35:40 +00:00
Alessandro Bono
fcd983440e
win32ipcutils: Add missing include
...
We are using std::isspace() with one parameter. That function is defined
in the cctype header.
```
win32ipcutils.cpp(34): error C2672: 'std::isspace': no matching overloaded function found
win32ipcutils.cpp(34): error C2780: 'bool std::isspace(_Elem,const std::locale &)': expects 2 arguments - 1 provided
```
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3933 >
2023-02-10 14:35:20 +00:00
Ma, Mingyang
99cdc3a965
msdkenc: Let runtime decide parameters
...
Some parameters can be determined by runtime instead of default values. So unset the default and let runtime choose the best parameters
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3660 >
2023-02-06 02:24:54 +00:00
Tim-Philipp Müller
85476eab08
kms: drop use of GSlice allocator and remove unnecessary check
...
g_new0() will never return NULL but just abort if it can't
allocate memory (same for g_slice_new).
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3784 >
2023-02-03 17:48:10 +00:00
Tim-Philipp Müller
35405de344
shm: drop use of GSlice allocator
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3784 >
2023-02-03 17:48:10 +00:00
Seungha Yang
10ade466ef
nvenc: Use CUDA stream of memory if exists
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3629 >
2023-02-03 15:27:43 +00:00
Seungha Yang
7a8bb85523
cudaupload, cudadownload: Update for shared CUDA stream
...
Use CUDA stream of memory if exists
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3629 >
2023-02-03 15:27:43 +00:00
Seungha Yang
aabcba16db
nvdecoder: Skip synchronization if downstream buffer holds CUDA stream
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3629 >
2023-02-03 15:27:42 +00:00
Seungha Yang
ddc5f1d425
cudaconvertscale: Add support for shared CUDA stream
...
If CUDA stream is shared by upstream/downstream, don't sync at
convert element
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3629 >
2023-02-03 15:27:42 +00:00
Seungha Yang
1cb47d549b
cudaconverter: Don't sync per conversion
...
Caller should take care of synchronization
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3629 >
2023-02-03 15:27:42 +00:00
Seungha Yang
8d14194fdd
nvencoder: Add support for shared CUDA stream
...
Sets CUDA stream on CUDA buffer pool so that CUDA stream object
can be shared
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3629 >
2023-02-03 15:27:42 +00:00
Seungha Yang
0a81c8deb3
nvcodec: Port to GstCudaStream
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3629 >
2023-02-03 15:27:42 +00:00
Seungha Yang
661b5f60c6
cuda: Provide single header include entry point
...
Add "gstcuda.h" header file
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3629 >
2023-02-03 15:27:42 +00:00
Seungha Yang
bc0708eafb
nvencoder: Fix min buffers parameter of allocation query in auto GPU mode
...
At the time when propose_allocation() get called, encoder session
would not be initialized yet.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3888 >
2023-02-03 22:19:22 +09:00
Piotr Brzeziński
ae200a4d62
vtenc: Disable HW acceleration for interlaced ProRes
...
Due to a bug in the VT API, attempting to encode interlaced content
with ProRes results in an error, halting the pipeline instead of
gracefully falling back to software encoding.
Should be removed in the future if Apple ever fixes this issue.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3222 >
2023-02-02 06:18:02 +00:00
He Junyan
60731adea6
va: Avoid the array index overflow when filling 8x8 scaling list.
...
The VA API has not defined the scaling list entries for U/V planes
for the 4:4:4 stream. In fact, we do not meet the 4:4:4 format output
for H264 so far, and scaling list is not used frequently, so we just
print out some warning and ignore these scaling list values.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3749 >
2023-02-02 00:41:42 +00:00
Seungha Yang
29bd8de052
nvvp9dec: Fix return value
...
It should return GstFlowReturn value, not boolean
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3870 >
2023-02-02 05:07:44 +09:00
Mengkejiergeli Ba
dfe16a5cf2
msdkallocator: Use const ptr of videoinfo in func param
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3621 >
2023-02-01 04:31:23 +00:00
Seungha Yang
c6a6c56cdf
win32ipc: Add support for zero-copy rendering
...
* Extend protocol so that client can notify of releasing shared memory
* Server will hold shared memory object until it's released by client
* Add allocator/buffer pool to reuse shared memory objects and buffers
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3765 >
2023-01-27 18:55:13 +00:00
Seungha Yang
983d78daa5
wasapi2src: Fix loopback capture on Windows 10 Anniversary Update
...
... or older. Work around an OS bug that loopback capture
device doesn't notify event.
Fixes: https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/1738
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3782 >
2023-01-26 13:31:20 +00:00
Nirbheek Chauhan
eff9455ada
nvcodec: Log readable errors when initializing CUDA
...
It is really difficult for people to figure out why nvcodec has
0 features. Even the debug log is cryptic. Also make sure the errors
go to the ERROR log level, which is more likely to be enabled by
default.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3776 >
2023-01-25 10:08:10 +00:00
Nirbheek Chauhan
43ae6b421b
nvcodec: Fix reporting of CuDeviceGetCount error
...
cuda_ret is was always going to be CUDA_SUCCESS in the error log.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3776 >
2023-01-25 10:08:10 +00:00