Víctor Manuel Jáquez Leal
31c63a6e6c
vaav1dec: Use gst_va_base_dec_prepare_output_frame().
...
And simplify a bit the code flow.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3480 >
2022-12-01 18:54:14 +00:00
Víctor Manuel Jáquez Leal
4a8ecc2dba
va: Add and use gst_va_base_dec_prepare_output_frame().
...
This helper will do downstream negotiation and later will
allocate the output frame.
H265 and AV1 decoders don't use this approach since their output
frame allocation is different.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3480 >
2022-12-01 18:54:14 +00:00
Víctor Manuel Jáquez Leal
f1a9728b30
va: Remove last_ret error handling in decoders.
...
It was used in the early development of the base classes. Now it
shouldn't be needed.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3480 >
2022-12-01 18:54:14 +00:00
Víctor Manuel Jáquez Leal
de5b76a922
va: Add and use gst_va_base_dec_process_output().
...
This function will copy the frame, if it's needed, and will apply buffer flags.
The function is used by all the decoders.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3480 >
2022-12-01 18:54:14 +00:00
He Junyan
765adf5325
va: Fix the caps memory leak by gst_va_pool_new_with_config().
...
The gst_va_pool_new_with_config() will ref the caps, and so we need
to unref after that.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3503 >
2022-12-01 17:31:16 +00:00
Víctor Manuel Jáquez Leal
c8a0d706ca
va: Add render node name in non-first devices.
...
There could be multi-GPU setups where the non-first has more
entrypoints than the first one, and the elements names are not
homogeneous, leading to pipeline building error.
This patch add the render node in the elements names when they belong
to the non-first device.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3491 >
2022-12-01 16:00:55 +00:00
Victor Manuel Jaquez Leal
cccbf1f02d
vafilter: Increase the caps for HDR.
...
As they might be other medatadata types.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3473 >
2022-12-01 15:17:49 +00:00
Victor Manuel Jaquez Leal
b25b1be70d
vafilter: Increase the number of 3DLUT caps to 16.
...
To fix the warning on Alderlake
vafilter gstvafilter.c:534:gst_va_filter_ensure_filters:<vafilter0>
vaQueryVideoProcFiltersCaps: list argument exceeds maximum number
Increase the number of caps to 16 as vadumpcaps does.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3473 >
2022-12-01 15:17:49 +00:00
Víctor Manuel Jáquez Leal
8f96453b0f
example: vaenc-dynamic-reconfigure: Support H265.
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2036 >
2022-12-01 09:45:24 +08:00
He Junyan
c365389930
va: Add H265 SCC profile support.
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2036 >
2022-12-01 09:45:19 +08:00
He Junyan
0952c556dc
va: Add extended formats support such as 10/12 bits, 4:2:2 and 4:4:4.
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2036 >
2022-12-01 09:45:14 +08:00
He Junyan
17c416ca92
va: enable multi tile support for H265 encoder.
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2036 >
2022-12-01 09:45:07 +08:00
He Junyan
2f8ce208e8
va: enable vah265lpenc for low power mode H265 encoder.
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2036 >
2022-12-01 09:45:00 +08:00
He Junyan
2677d4c6db
va: Add the low-delay-b frame support for H265.
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2036 >
2022-12-01 09:44:41 +08:00
He Junyan
9ee657cdee
va: Add prediction direction attribute support for H265 encoder.
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2036 >
2022-12-01 09:44:33 +08:00
He Junyan
4e7eddeafe
va: Register and enable and the vah265enc plugin.
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2036 >
2022-12-01 09:44:26 +08:00
He Junyan
3d99f24843
va: Implement the vah265enc plugin for va HEVC encoding.
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2036 >
2022-12-01 09:44:08 +08:00
Seungha Yang
a3b352c99d
mfvideosrc: Fix buffer leak
...
The allocated buffer should be released
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3479 >
2022-11-28 18:50:03 +00:00
Seungha Yang
581481c12f
mediafoundation: Chain up from GObject::constructed
...
... so that GstTracer can trace it
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3479 >
2022-11-28 18:50:03 +00:00
Seungha Yang
b9b3a9c4e1
d3d11: Use correct ref/unref methods
...
Those objects are GstObject subclasses
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3479 >
2022-11-28 18:50:03 +00:00
Seungha Yang
468b049a04
win32ipcvideosrc: Fix property name and enum value mismatch
...
Make them consistent
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3465 >
2022-11-25 15:50:33 +00:00
Seungha Yang
20e83fa45b
win32ipcvideosrc: Protect pipe from flush thread
...
The pipe object must be protected against GstBaseSrc::unlock()
thread.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3465 >
2022-11-25 15:50:33 +00:00
He Junyan
25f90c828a
h264parser: Fix a typo in pred_weight_table parsing.
...
When setting default values, the reference list number of l1 is wrong.
Fix: https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/issues/336
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3464 >
2022-11-25 14:13:46 +00:00
Ma, Mingyang
66087b6276
msdkdec: Update decoding pts
...
Update frame pts before calling gst_video_decoder_finish_frame, or frames may be lost when transcoding in specific stream
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3449 >
2022-11-25 01:42:58 +00:00
Seungha Yang
4f846540cb
win32ipc: Add WIN32 shared memory videosrc/sink elements
...
Windows supports various IPC methods but that's completely
different form that of *nix from implementation point of view.
So, instead of adding shared memory functionality to existing
shm plugin, new WIN32 shared memory source/sink elements
are implemented in this commit.
Each videosink (server) and videosrc (client) pair will communicate
using WIN32 named pipe and thus user should configure unique/proper
pipe name to them (e.g., \\.\pipe\MyPipeName).
Once connection is established, videosink will create named shared memory
object per frame and client will be able to consume the object
(i.e., memory mapped file handle) without additional copy operation.
Note that implementations under "protocol" directory are almost
pure C/C++ with WIN32 APIs except for a few defines and debug functions.
So, applications can take only the protocol part so that the application
can send/receive shared-memory object from/to the other end
even if it's not an actual GStreamer element.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3441 >
2022-11-24 12:41:18 +00:00
Jan Lorenz
47b8762774
mfvideosrc: check HRESULT of CreateClassEnumerator correctly
...
Fixes a crash during direct show device enumeration
Fixes: https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/1599
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3460 >
2022-11-23 14:45:50 +00:00
Nicolas Dufresne
6981384184
kmssink: Fix compilation without kernel headers
...
There was a drm/drm_mode.h included added recently, drm/ is usually
referencing the linux kernel header, but we only requires the libdrm
headers to be installed. On top of this, including drm_mode.h is never
needed as its already included by drm.h.
Fixes #1596
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3452 >
2022-11-23 08:39:49 +00:00
Daniel Morin
855f84c558
onnx: Update to OnnxRT >= 1.13.1 API
...
- Replace deprecated methods
- Add a check on ORT version we are compatible with.
- Add clarification to the example given.
- Add the url to retrieve the model mentioned in the example.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3388 >
2022-11-22 22:36:34 +00:00
He Junyan
e7d584a816
h265parse: Add the missing timestamp when splitting a frame.
...
When splitting a frame, the gst_buffer_copy_region() does not copy
the timestamp correctly for sub frames when the offset is not 0.
We still need those timestamps for each output sub frame.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3448 >
2022-11-22 21:47:49 +00:00
He Junyan
dae73d6686
h264parse: Add the missing timestamp when splitting a frame.
...
When splitting a frame, the gst_buffer_copy_region() does not copy
the timestamp correctly for sub frames when the offset is not 0.
We still need those timestamps for each output sub frame.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3448 >
2022-11-22 21:47:49 +00:00
Sebastian Dröge
76eb870251
dvbsubenc: Write Display Definition Segment if a non-default width/height is used
...
Otherwise it can't be rendered by dvbsuboverlay or ffmpeg at least.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3446 >
2022-11-22 21:04:39 +00:00
Seungha Yang
6c007b8936
av1dec: Demote rank to secondary
...
cerbero does not build this plugin for now, and there's altanative
dav1ddec
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3287 >
2022-11-22 17:48:25 +00:00
Bill Hofmann
afb18e0e31
kmssink: add HDR10 infoframe support
...
If stream has HDR10 metadata and HDMI device EDID supports it, this patch
will set the DRM properties accordingly.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3303 >
2022-11-21 17:55:41 -05:00
Bill Hofmann
daecbd1ff0
kmssink: Add skip-vsync property
...
The legacy emulation in DRM/KMS drivers badly interact with GStreamer and
may cause the framerate to be halved. With this property, users can disable
vsync (which is handled internally by the emulation) in order to regain the
full framerate.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3303 >
2022-11-21 17:55:20 -05:00
Seungha Yang
132eddd7b9
av1decoder: Clear highest_spatial_layer per sequence header
...
Clear the value to default zero, indicating that no spatial scalability
layer is used.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3430 >
2022-11-19 11:58:01 +00:00
Seungha Yang
c92128f6b0
av1decoder: Don't error out by dropped OBU
...
OBU can be dropped if the current layer is not in selected operation
point
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3430 >
2022-11-19 11:58:01 +00:00
Seungha Yang
f1a52c5ea0
av1decoder: Fix wrong spatial layer validation
...
Highest spatial id and temporal id is independent, and should not drop
temporal enhance layer by the previous condition. Note that
the decision for dropping OBU based on operation point is being
handled in gst_av1_parser_identify_one_obu() already.
Fixes: https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/1585
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3430 >
2022-11-19 11:58:01 +00:00
Seungha Yang
55ca832d70
av1parser: Don't print warning for expected OBU drop
...
Dropping an OBU which is not in selected operation point is an
expected condition.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3430 >
2022-11-19 11:58:01 +00:00
Seungha Yang
3ef2955c7d
av1parser: Remove impossible condition
...
unsigned integer cannot be negative
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3430 >
2022-11-19 11:58:01 +00:00
Jan Schmidt
dfb5e3365e
webrtcbin: Remove queue after rtpfunnel
...
The original BUNDLE support commit placed a queue after the
rtpfunnel that combines streams, but I don't see a good reason for
it. It has default settings, so if network output is slow might
accidentally store up to 1 second of pending data, increasing
latency.
Remove it in favour of doing any necessary buffering before
webrtcbin. If it turns out that there is a reason for it to
exist, the limits should probably be configurable and small.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3437 >
2022-11-19 10:31:50 +00:00
Jan Schmidt
6538ebbaf3
webrtc: Improve GstWebRTCStatsType docstring
...
Fix a typo of peer-connectiion -> peer-connection
Add a link to the w3c RTCStats type for a description
of what each statistics type is.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3434 >
2022-11-19 13:12:58 +11:00
Jan Schmidt
5fa4f0562c
webrtcbin: Fix a typo in debug log
...
transceiever -> transceiver
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3434 >
2022-11-19 13:12:58 +11:00
Seungha Yang
f6327e25a7
qsv: Promote encoder rank to PRIMARY on Windows
...
QSV is very well integrated with GstD3D11 infrastructure on Windows,
and this is the recommended H/W encoder element over the MediaFoundation
plugins on Intel GPU system.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3393 >
2022-11-19 00:43:10 +00:00
Nicolas Dufresne
5980fb76e7
video: Add arbitrary tile dimensions support
...
In current tile representation, only tiles with power of two
width and height in bytes are supported. This limitation
prevents adding more complex tiles formats.
In this patch, we deprecate tile_ws and tile_hs from GstVideoFormatInfo and
replace if with an array of GstVideoTileInfo. Each plane tiles are then
described with their pixels width/height, line stride and total size.
The helper gst_video_format_info_get_tile_sizes() that depends on the
deprecated API is also being removed. This can simply be removed as it wasn't
in any stable release yet.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3424 >
2022-11-18 22:59:29 +00:00
Johan Sternerup
e708543039
webrtcbin: Add settings for HTTP proxy
...
Pass this to libnice which has a simple HTTP 1.0 proxy with basic
authentication only.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2867 >
2022-11-18 15:00:58 +00:00
Vivia Nikolaidou
ccb0e6e435
tsdemux: Add pad-name to warning for continuity mismatch
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3141 >
2022-11-18 12:22:03 +00:00
Enrique Ocaña González
a2990020b2
hlsdemux: Expose EXT-X-PROGRAM-DATE-TIME as tags.
...
This allows an application to use timestamps associated
with fragments.
Patch by: Thomas Bluemel <tbluemel@control4.com>
See: https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/issues/195
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1417 >
2022-11-17 22:11:12 +00:00
Víctor Manuel Jáquez Leal
b2bfb066ec
vabaseenc: Reduce logging noise if finish_frame fails.
...
Fixes : #1579
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3423 >
2022-11-17 05:25:18 +00:00
Seungha Yang
433301d0e5
amfcodec: Promote encoder rank to PRIMARY
...
This H/W encoder implementation is the recommended element
on AMD system over the MediaFoundation one.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3394 >
2022-11-16 14:47:27 +00:00
Edward Hervey
3305d7ce8d
tsdemux: Push GST_EVENT_STREAM_COLLECTION
...
Demuxers that are not streams-aware will have that handled by parsebin. This
created a difference in results downstream between streams-aware and
non-streams-aware demuxers
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2784 >
2022-11-16 14:01:46 +00:00