Víctor Manuel Jáquez Leal
cbc7374c95
jpegparse: Parse AVI1 tag in app0.
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3943 >
2023-02-22 11:24:57 +00:00
He Junyan
cbbfab0f3b
va: jpegdecoder: Do not check SOS state when parsing DRI marker.
...
According to spec, the JPEG_MARKER_DRI(Restart interval definition)
marker can come before the SOS marker. So we should not check the SOS
state when parsing the DRI marker.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3943 >
2023-02-22 11:24:57 +00:00
Seungha Yang
67764a1579
cudaconverter: Rename CUDA kernel function
...
Changing its name (was too generic) to help GPU tracing via Nsight tool
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4029 >
2023-02-21 20:07:31 +00:00
Seungha Yang
fd77f088a1
d3d11mpeg2dec: Promote rank to PRIMARY + 1
...
Make its rank higher than avdec_mpeg2video
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4014 >
2023-02-21 17:32:20 +00:00
Seungha Yang
319f5f0760
cuda: Link libatomic if needed
...
Looks like C++ does not pull it automatically
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3997 >
2023-02-21 16:00:32 +00:00
Philippe Normand
2beda0fcaf
wpe: Logging fixes for the WebExtension
...
Using logging macros without a `GST_CAT_DEFAULT` in scope leads to critical
warnings.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3623 >
2023-02-21 11:49:46 +00:00
Matthew Waters
921c93a9af
ccconverter: don't debug a potentially freed filter caps
...
Fixes a use-after-free
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4011 >
2023-02-21 15:20:41 +11:00
Seungha Yang
26dd6c5c26
d3d11videosink: Fix rendering on external handle
...
Partial revert of the commit 068a5c1053
.
That introduced size mismatch between internal and external HWND
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4006 >
2023-02-20 22:35:27 +00:00
Seungha Yang
2ffc594d96
qsvenc: Simplify property update helpers
...
Takes lock outside of helper methods, and protect property getter too
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4005 >
2023-02-20 21:52:43 +00:00
Seungha Yang
77b3e461db
qsvh264enc: Add more encoding options
...
Adding trellis quantization, frame size, slice size and number of
slices related encoding options
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4005 >
2023-02-20 21:52:43 +00:00
Seungha Yang
e48869e269
qsv: Use std::once_flag
...
GLib's once implementation will take mutex every time
in case of non-GCC build
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4005 >
2023-02-20 21:52:43 +00:00
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
Colin Kinloch
0b52663815
fpsdisplaysink: Skip reporting on frame counter reset
...
When the QoS stats are reset (e.g. changing the source) the counters for
dropped + rendered frames are reset to zero which result in negative values
for their difference. This results in max-fps getting pegged at an extremely
high value.
```
fpsdisplaysink.c:373:display_current_fps:<fpsdisplaysink0> Updated max-fps to 36840705952231460864.000000
```
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3989 >
2023-02-20 19:47:56 +00:00
Colin Kinloch
56cc2132da
fpsdisplaysink: Log final statistics on stop
...
Add a final message to the debug log that lists the min, max and average framerates when state of fpsdisplaysink transisions to NULL.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3988 >
2023-02-20 19:04:42 +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
Nicolas Dufresne
9aa41aa35e
h264bitwriter: Remove second_chroma_qp_index_offset cast
...
That API pps->second_chroma_qp_index_offset has been fixed to reflect
the sign of field in the spec.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3966 >
2023-02-20 16:40:02 +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
bca3a3c923
h264parser: Fix the type of a parameter
...
From spec, the value of second_chroma_qp_index_offset is in the range of
-12 to +12 inclusive. Fix its type from guint8 to gint8.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3966 >
2023-02-20 16:40:01 +00:00
Mengkejiergeli Ba
7278c31ea8
vaallocator: Check return value from va_sync_surface
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3919 >
2023-02-20 16:02:38 +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
Mengkejiergeli Ba
b2fcc177f5
av1parser, h265parser: Fix some code defects
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3953 >
2023-02-19 11:23:00 +00: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
ff3120a38c
cudamemory, d3d11memory: Add memory_{get,set}_token_data() methods
...
Similar to GstMiniObject qdata but new methods will use int64
token value and per object lock, instead of GQuark with global
mutex in qdata
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
f6defc0c5b
cudamemory: Add gst_cuda_allocator_alloc_wrapped() method
...
... so that application can pass already allocated CUDA memory
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3884 >
2023-02-16 17:49:54 +00:00
Seungha Yang
e77e6fd4a7
cudamemory: Skip sync if no I/O operation happend on free()
...
Synchronization for unused memory is not required
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
f44cac1c9f
cudamemory: Make CUtexObject object reusable
...
Create and hold CUtexObject objects in GstCudaMemory so that it can
be reusable
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
Seungha Yang
f212bd901b
cuda: Port to C++
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3884 >
2023-02-16 17:49:53 +00:00
Seungha Yang
a37b3ec710
codectimestamper: Fix timestamping on sequence update
...
... and enhance debug logging.
Keep internal timestamp offsets on drain, no reason to reset them
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3973 >
2023-02-16 10:51:51 +00:00
Mengkejiergeli Ba
585d2d93f6
codecparsers: {h264,h265}bitwriter: Remove redundant condition checks
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3967 >
2023-02-15 16:00:04 +08: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
Sebastian Dröge
cfb14c4b5d
svtav1enc: Drain and completely reallocate the encoder instance on caps changes
...
The encoder does not support reconfiguration, and only deinitializing it
and then initializing it again causes deadlocks.
Also only reconfigure and drain the encoder if the video info has
actually changed.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3957 >
2023-02-14 11:59:48 +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
Edward Hervey
edc66ce003
mxfdemux: Add support for FFV1 demuxing
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3899 >
2023-02-10 10:02:25 +01:00
Edward Hervey
3768ef89b9
mxf: simplify essence track matching
...
By directly providing a valid descriptor to match against
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3899 >
2023-02-10 10:02:25 +01:00
Edward Hervey
2d5b71d6e3
mxfdemux: Handle empty tracks
...
This can happen when tracks aren't fully/properly detected due to new descriptors
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3899 >
2023-02-10 10:02:25 +01:00
Edward Hervey
206ed12368
mxfdemux: Handle sub-descriptor in generic descriptors
...
Specificied in S377-1 (2019) B.2 Generic Descriptor
This is one of the ways to store more "sub descriptors" for a single track
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3899 >
2023-02-10 10:02:25 +01:00
Edward Hervey
56a50c3008
mxf: Add convenience function for looking up primer tags
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3899 >
2023-02-10 06:25:29 +01:00
Sebastian Dröge
5119ca25e4
av1parser: Don't consider unknown metadata OBUs a bitstream error
...
Just don't parse them.
Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/1774
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3898 >
2023-02-09 14:52:58 +00:00
Edward Hervey
d10f9a00e2
closedcaption: Don't leak caps event
...
All events that we handle should be unreffed
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3902 >
2023-02-07 08:51:18 +01:00
Jan Schmidt
621604aa3e
webrtc: Calculate the jitter for remote-inbound-rtp stats
...
Populate the clock-rate in the internal stats structure, so
it can be used by the _get_stats_from_remote_rtp_source_stats()
method to calculate remote receivers' jitter.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3900 >
2023-02-07 04:58:04 +11:00
Jan Schmidt
615a019457
webrtcbin: Report full codec-stats for source pads
...
Use the current caps for webrtcbin srcpads, as received_caps
are only stored for sink pads based on incoming caps events.
Makes it so that webrtcbin stats reports contain fuller
codec information.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3900 >
2023-02-07 04:49:34 +11:00
Adrian Fiergolski
06b778e0a1
avtp: specify the required version of libavtp
...
Support of RVF requires libavtp in version 0.2.0 at least.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3897 >
2023-02-06 13:31:51 +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
Sebastian Dröge
a0ccb6b558
svtav1enc: Use G_DECLARE_FINAL_TYPE and GST_ELEMENT_REGISTER_DEFINE
2023-02-03 22:14:18 +02:00
Sebastian Dröge
aca2bad25c
svtav1enc: Fix compilation with SVT-AV1 1.1 and drop GStreamer 1.16 compatibility
2023-02-03 22:14:18 +02:00
Sebastian Dröge
5bc92375c9
svtav1enc: Fix indentation
2023-02-03 22:14:18 +02:00
Sebastian Dröge
7890a1f8c7
svtav1: Integrate into the build system properly
2023-02-03 22:14:18 +02:00
Sebastian Dröge
b15efacf84
svtav1: Merge SVT-AV1 encoder into gst-plugins-bad
...
This is based on d5e1e2a586020854733f6b0806064d0c900c88d2 from
https://gitlab.com/AOMediaCodec/SVT-AV1 .
2023-02-03 22:13:30 +02: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
Tim-Philipp Müller
3f94d7ec37
midiparse: drop use of GSlice allocator
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3784 >
2023-02-03 17:48:10 +00:00
Tim-Philipp Müller
d95d3e39af
cc708overlay: bump pango requirement and drop no longer required locking
...
Gets rid of GSlice allocation that's never freed.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3784 >
2023-02-03 17:48:10 +00:00
Seungha Yang
e1a22402d3
tools: Make sure UTF-8 encoded command line arguments on Windows
...
On Windows, arguments passed in main() are system codepage
encoded and might not be valid UTF-8 string.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3828 >
2023-02-03 16:05:19 +00:00
Seungha Yang
090d50e1a0
tests: Add CUDA memory allocator test
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3629 >
2023-02-03 15:27:43 +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
d409c35367
cudabufferpool: Add support for CUDA stream use in memory
...
* Use GstCudaPoolAllocator
* Pass configured GstCudaStream object to allocator
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3629 >
2023-02-03 15:27:42 +00:00
Seungha Yang
30d06e03c2
cudamemory: Make GstCudaStream-aware
...
This will be used for CUDA stream sharing.
* Adding GstCudaPoolAllocator object. The pool allocator will
control synchronization of allocated memory objects.
* Modify gst_cuda_allocator_alloc() API so that caller can specify/set
GstCudaStream object for the newly allocated memory.
* GST_CUDA_MEMORY_TRANSFER_NEED_SYNC flag is added in addition to
existing GST_CUDA_MEMORY_TRANSFER_NEED_{UPLOAD,DOWNLOAD}.
The flag indicates that any GPU command queued in the CUDA stream
may not be finished yet, and caller should take care of the
synchronization.
The flag is controlled by GstCudaMemory object if the memory holds
GstCudaStream. (Otherwise, GstCudaMemory will do synchronization
as before this commit). Specifically, GstCudaMemory object will set
the new flag automatically when memory is mapped with
(GST_MAP_CUDA | GST_MAP_WRITE) flags. Caller will need to unset
the flag via GST_MEMORY_FLAG_UNSET() if it's already synchronized
by client code.
* gst_cuda_memory_sync() helper function is added to perform synchronization
* Why not use CUevent object to keep track of synchronization status?
CUDA provides fence-like interface already via CUevent object,
but cuEventRecord/cuEventQuery APIs are not zero-cost operations.
Instead, in this version, the status is tracked by using map and
object flags.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3629 >
2023-02-03 15:27:42 +00:00
Seungha Yang
9eaae61a44
cudamemory: Allow nullptr allocator object
...
The GstCudaAllocator object doesn't hold any device object.
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
a7c54ebc06
cuda: Add GstCudaStream object
...
Wrap CUstream handle with GstCudaStream to make it ref-counted
object. This GstCudaStream object will be used later for
CUDA stream sharing
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
Sebastian Dröge
8aa376d541
gstreamer: Decide rate-control-mode based on the bitrate/cqp/crf settings
...
And also keep the default encoder settings but simply override them with
our own values that we care about.
This mirrors the encoder configuration behaviour from ffmpeg.
2023-02-03 12:48:56 +02:00
Sebastian Dröge
70c83bc59c
gstreamer: Use GLib types instead of stdint.h types consistently
2023-02-03 12:48:56 +02:00
Sebastian Dröge
dd1db338df
gstreamer: Fix double unref
...
The ownership of the caps is passed to `gst_video_encoder_set_output_state()`.
2023-02-03 12:48:56 +02:00
Sebastian Dröge
df064c6cc2
gstreamer: Configure colorimetry and HDR metadata if present
...
This raises the minimum GStreamer requirement to 1.16 as used by the CI
and optionally makes use of 1.18 features, including HDR.
2023-02-03 12:48:25 +02:00
Sebastian Dröge
aeee6f5b6a
gstreamer: Set correct maximum width/height limits
2023-02-03 12:35:24 +02:00
Sebastian Dröge
65eb56e7ad
gstreamer: Use correct 10-bit format on big endian systems
2023-02-03 12:35:24 +02:00
Sebastian Dröge
90fd191392
gstreamer: Set force_key_frames=true
in CQP/CRF mode
...
Other modes don't support that so keyframes can't be requested at
arbitrary times.
2023-02-03 12:35:24 +02:00
Sebastian Dröge
f24643b48f
gstreamer: Add support for setting arbitrary parameters via parameters-string
property
2023-02-03 12:35:18 +02:00
Sebastian Dröge
d746164ba0
gstreamer: Fix naming of function name that was taken over from the SVT-HEVC encoder
2023-02-03 12:34:38 +02:00
Sebastian Dröge
ddb9a037e1
gstreamer: Don't overwrite application configuration on initialization and initialize with the default configuration
2023-02-03 12:34:38 +02:00
Sebastian Dröge
7b1b33aff2
gstreamer: Clean up property handling
...
Use more correct types, defaults and clean up property names a bit.
This now matches the configuration provided by ffmpeg.
2023-02-03 12:34:38 +02:00
Sebastian Dröge
78ee7e82d9
gstreamer: Mark all internal functions as static
2023-02-03 12:34:38 +02:00
Sebastian Dröge
10769e7fe6
gstreamer: Fix encoder and buffer state life cycle
...
Allocate/deallocate the encoder in `open()`/`close()` and its buffers in
`start()` / `stop()`.
Also fail correctly if configuring the encoder fails.
2023-02-03 12:34:38 +02:00
Sebastian Dröge
24d6027d2e
gstreamer: Remove unused frame_count
and dts_offset
2023-02-03 12:34:38 +02:00
Sebastian Dröge
2d250439f1
gstreamer: Fix debug category description
2023-02-03 12:34:38 +02:00
Adrian Fiergolski
79d2af5626
avtp: rvf: add missing since markers
...
Add missing markers.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1335 >
2023-02-02 19:15:46 +01:00
Adrian Fiergolski
9f880b37fc
avtp: rvf: add AVTP RVF de-payload support
...
Add AVTP Raw Video Format de-payload support. The element supports only
GRAY16_LE output format, so:
- active pixels (no vertical blanking),
- progressive mode,
- 8 and 16-bit pixel depth,
- mono pixel format,
- grayscale colorspace.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1335 >
2023-02-02 19:15:42 +01:00
Adrian Fiergolski
d8f449ccda
avtp: cvf: extract AVTP VF depayload base class
...
Extract a part which could be common with the AVTP RVF depayload plugin to a separate class.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1335 >
2023-02-02 19:15:38 +01:00
Adrian Fiergolski
4f2fde0163
avtp: rvf: add AVTP RVF payload support
...
Add AVTP Raw Video Format payload support. The element supports only GRAY16_LE
input format, so:
- active pixels (no vertical blanking),
- progressive mode,
- 8 and 16-bit pixel depth,
- mono pixel format,
- grayscale colorspace.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1335 >
2023-02-02 19:15:33 +01:00
Adrian Fiergolski
8702a1fa67
avtp: cvf: extract AVTP VF payload base class
...
Extract a part which could be common with the AVTP RVF payload plugin to a separate class.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1335 >
2023-02-02 19:15:29 +01: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
Sebastian Dröge
b12c66042b
aom: Include stream-format and alignment in the AV1 caps
...
The decoder does not work with arbitrary alignment and annexb stream
format and the encoder can give the information that it outputs
obu-stream/tu to downstream.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3862 >
2023-02-01 19:04:32 +00:00
Olivier Crête
16158df5b2
wayland: Export the _get_type() functions
...
Add the macro before the declaration so the types are properly exported,
this makes it possible to do dynamic casting and checks.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3858 >
2023-02-01 15:29:26 +00: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
Benjamin Gaignard
16ad80179b
codec2json: Add av12json element
...
This element convert AV1 frame header into human readable
json data.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3734 >
2023-01-30 19:46:55 +00:00
Benjamin Gaignard
fd588a50e4
codec2json: Add vp82json element
...
This element convert vp8 frame header into human readable
json data.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3734 >
2023-01-30 19:46:55 +00:00
Tim-Philipp Müller
4051581ed8
codecparsers: vp9parser: use single allocation for parser structs
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3790 >
2023-01-27 23:50:19 +00:00
Thibault Saunier
d1e3941a89
uritranscodebin: Fix unref of NULL
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3831 >
2023-01-27 21:58:43 +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
c32b898cbb
mpegpsdemux: Ignore DTS if PTS < DTS
...
It's possibly timestamp rollover case. But PTS < DTS is already
invalid case anyway.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3657 >
2023-01-27 17:48:32 +00:00
Tim-Philipp Müller
beb4f4bff1
sdpdemux: add "media" property to allow audio-only or video-only streaming
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3531 >
2023-01-26 16:17:21 +00:00
Tim-Philipp Müller
7f2a9d738a
sdpdemux: add "rtcp-mode" property to disable RTCP
...
If we know there's only one stream we care about and we
don't have to synchronise audio and video, or send RRs,
we might just as well not hook up all the RTCP bits and
use fewer threads and sockets and simplify the pipeline.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3531 >
2023-01-26 16:17:21 +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
Víctor Manuel Jáquez Leal
6b04c8ee56
vulkan: imagebufferpool: Remove video meta handling.
...
Remove video meta handling since it's not used at all, also removed its usage in
vkvideofilter.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3722 >
2023-01-26 11:49:00 +00:00
Víctor Manuel Jáquez Leal
d8cb9d2ce3
vulkan: physicaldevice: Dump 1.3 features and properties.
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3721 >
2023-01-26 03:19:58 +00:00
Víctor Manuel Jáquez Leal
e54d334526
vulkan: memory: Flush non coherent memory after write.
...
Spec 7.1.3:
If a memory object does not have the VK_MEMORY_PROPERTY_HOST_COHERENT_BIT
property, then vkFlushMappedMemoryRanges must be called in order to guarantee
that writes to the memory object from the host are made available to the host
domain, where they can be further made available to the device domain via a
domain operation. Similarly, vkInvalidateMappedMemoryRanges must be called to
guarantee that writes which are available to the host domain are made visible to
host operations.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3723 >
2023-01-26 02:31:09 +00:00
Sebastian Dröge
aba0b0e90a
gstreamer: Use stream-format=obu-stream alignment=tu in the caps
...
There is no byte-stream/au format for AV1 but only for H264, and the
encoder actually outputs obu-stream/tu instead of the annexb
stream-format that is similar to H264 byte-stream format.
Without this the encoder can't be used with elements that require a
specific AV1 stream-format, e.g. the MP4 or Matroska/WebM muxer.
2023-01-26 01:46:46 +00:00
U. Artie Eoff
d071ea714d
vp9parser: remove checks for g_new0 result
...
The g_new0 aborts the process if it fails. Thus,
there is no need to check if the g_new0 call succeeded.
This should silence a resource leak warning by static
scan.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3788 >
2023-01-25 17:36:54 +00:00
Nirbheek Chauhan
cc3078d819
meson: Add a wrap file for libsrt2p
...
And allow fallback to it.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3708 >
2023-01-25 11:38:52 +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
Seungha Yang
2e574a80d9
d3d11: Don't use g_alloca()
...
_alloca CRT function is deprecated. Moreover, stack allocation
for string is not a good idea. We can use _malloca inline
function instead, but all use of _alloca in d3d11 library/plugin
are not performance critical path at all.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3652 >
2023-01-24 20:27:43 +00:00
Thibault Saunier
30c73f09e3
timestamper: Classify as Timestamper and make them RANK_MARGINAL
...
This way those elements can be autoplugged when needed
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3779 >
2023-01-24 16:31:40 +00:00
Tim-Philipp Müller
4c4245d6a8
jpegformat: drop use of GSlice
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3695 >
2023-01-24 15:25:07 +00:00
Tim-Philipp Müller
b424fa6a6e
rist: drop use of GSlice
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3695 >
2023-01-24 15:25:07 +00:00
Tim-Philipp Müller
80e882d266
netsim: drop use of GSlice
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3695 >
2023-01-24 15:25:07 +00:00
Tim-Philipp Müller
20e6735d20
mpegpsmux: drop use of GSlice
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3695 >
2023-01-24 15:25:07 +00:00
Tim-Philipp Müller
2b4b23d2a2
mpegtsdemux: drop use of GSlice
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3695 >
2023-01-24 15:25:07 +00:00
Tim-Philipp Müller
85eb323b08
mpegtsmux: drop use of GSlice allocator
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3695 >
2023-01-24 15:25:07 +00:00
Tim-Philipp Müller
3bd495f093
jp2kdecimator: drop use of GSlice
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3695 >
2023-01-24 15:25:07 +00:00
Tim-Philipp Müller
3d9f3bfd66
rtmp2: drop use of GSlice
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3695 >
2023-01-24 15:25:07 +00:00
Tim-Philipp Müller
71890cc2f1
mxf: drop use of GSlice
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3695 >
2023-01-24 15:25:07 +00:00
Tim-Philipp Müller
8f252b1e99
dvbsuboverlay: drop use of GSlice
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3695 >
2023-01-24 15:25:07 +00:00
Tim-Philipp Müller
82cd540d08
svthevcenc: drop use of GSlice
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3695 >
2023-01-24 15:25:07 +00:00
Tim-Philipp Müller
93fc68c5ba
x265: drop use of GSlice
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3695 >
2023-01-24 15:25:07 +00:00
Tim-Philipp Müller
bfc2fab9ea
wpe: drop use of GSlice
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3695 >
2023-01-24 15:25:07 +00:00
Tim-Philipp Müller
664d83de99
ttml: drop use of GSlice
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3695 >
2023-01-24 15:25:07 +00:00
Tim-Philipp Müller
c095a1d620
srtp: drop use of GSlice
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3695 >
2023-01-24 15:25:07 +00:00