Víctor Manuel Jáquez Leal
901ad2b4f5
vajpegdec: Reenable element negotiation.
...
negotiation vmethod were overwritten by vabasedec, leading to errors.
This was a regression of commit b6538e0560
.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3509 >
2022-12-02 08:37:02 +00:00
Johan Sternerup
4b96294f19
webrtc: Fix possible use-after-free of GstWebRTCICETransport
...
Because of the asynchronous resolving of mDNS ICE candidates it is
possible that GstWebRTCICE outlives webrtcbin. This in turn prolongs
the lifetime of the GstWebRTCNiceStream objects via refs in
nice_stream_map. Thus the GstWebRTCICETransport objects held in
GstWebRTCNiceStream may be invalid at the time they are accessed by
the _on_candidate_gathering_done() callback since GstWebRTCNiceStream
doesn't take a reference to them. Doing so would create a circular
reference, so instead this commit introduces weak references to the
transport objects and then we can check if the objects are valid before
accessing them.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3502 >
2022-12-02 03:37:29 +00:00
Victor Manuel Jaquez Leal
4cbdf43e7d
va: Handle input caps change.
...
Update output caps if it's notified by baseclass
See https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3328
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3480 >
2022-12-01 18:54:14 +00:00
Victor Manuel Jaquez Leal
19b83bc156
vaav1dec: Use gst_va_base_dec_set_output_state().
...
And even that vaav1dec doesn't use vabasedec negotiate vmethod, it should align
with the new scheme of using base's width & height for surface size and
output_info structure for downstream display size negotiation.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3480 >
2022-12-01 18:54:14 +00:00
Victor Manuel Jaquez Leal
e5417b2db7
vavp9dec: Use gst_va_base_dec_set_output_state().
...
As this element reopen the internal decoder differently, it only uses the helper
function to negotiate.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3480 >
2022-12-01 18:54:14 +00:00
Victor Manuel Jaquez Leal
6dfca46ada
vampeg2dec: Streams are progressive by default.
...
By initializating progressive, then interlaced streams are detected correctly.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3480 >
2022-12-01 18:54:14 +00:00
Victor Manuel Jaquez Leal
b6538e0560
va: Add and use common decode negotiate vmethod.
...
This vmethod can be used by decoders with the same VA decoder reopen logic:
same profile, chroma, width and height.
Also a new public method called gst_va_base_dec_set_output_state() with the
common GStreamer code for setting the output state, which is always called by
the negotiate vmethod.
In order to do this refactoring, new variables in vabasedec have to be populated
by the decoders:
* width and height define the resolution set in VA decoder. In the case of H264
would be de coded_width and codec_height, or max_width and max_height in AV1.
* output_info is the downstream video info used for negotiation in
gst_va_base_dec_set_output_state().
* input_state, from codec parent class shall be also held by vabasedec
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
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
Nicolas Dufresne
d3c5fc815e
v4l2codecs: Allow output caps to be updated
...
This change allow output caps to be updated even though we stay in
streaming state. This is needed so that any upstream updated to fields
like framerate, hdr data, etc. can result in a downstream caps event
being pushed.
Previously, any of these changes was being ignored and the downstream
caps would not reflect it.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3328 >
2022-11-16 13:12:38 +00:00
Seungha Yang
0e4c520cf3
nvdecoder: Handle input caps change
...
Update output caps if it's notified by baseclass
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3328 >
2022-11-16 13:12:38 +00:00
Seungha Yang
b4c19a96b7
nvdecoder: Don't hold decoder output state
...
It's not referenced by this implementation
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3328 >
2022-11-16 13:12:38 +00:00
Seungha Yang
b886935e83
examples: Add test code to verify decoder caps update
...
Sample command lines
* Configures pipeline with video encoder
decoder-caps-update \
--encoder="video/x-raw,format=NV12 ! qsvh264enc" \
--decoder=d3d11h264dec \
--videosink=d3d11videosink
* Playing exisiting file
decoder-caps-update \
--location=test_file.mp4 \
--decoder=d3d11h264dec \
--videosink=d3d11videosink
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3328 >
2022-11-16 13:12:38 +00:00
Seungha Yang
349f8de13e
d3d11decoder: Handle input caps change
...
Update output caps if it's notified by baseclass
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3328 >
2022-11-16 13:12:38 +00:00
Seungha Yang
2ede4011bf
codecs: Keep track of non-decoding-essential input state change
...
In theory, input caps can be updated anytime at non-keyframe or
sequence boundary, such as HDR10 metadata, framerate, aspect-ratio
or so. Those information update might not trigger ::new_sequence()
or subclass may ignore the changes.
By this commit, input state change will be tracked by baseclass
and subclass will be able to know the non-decoding-essential
update by checking the codec specific picture struct
on ::output_picture()
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3328 >
2022-11-16 13:12:38 +00:00
Edward Hervey
a40842545f
Revert "mpegtspacketizer: memcmp potentially seen_before data"
...
This reverts commit fcad4cc646
.
This was wrong is so many ways.
* The memcmp was badly used (it should use == 0 to check the data is identical,
and not != 0)
* There was no boundary checks on the present stream section_data when passing
it to memcmp.
* The return value should have been TRUE (i.e. we have done all checks, none of
them failed, therefore the section has been seen before)
* stream->section_data would *always* be NULL if the section had already been
processed
Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/1559
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3421 >
2022-11-16 12:20:41 +00:00
Edward Hervey
a87b7da308
mpegts: Check is program is identical before updating
...
There is no need to update the program if it's identical :)
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3421 >
2022-11-16 12:20:41 +00:00
Seungha Yang
721f059397
codectimestamper: Remove duplicated GstSegment struct
...
Use the one in priv struct. And use gst_segment_is_equal()
to compare GstSegment
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3380 >
2022-11-15 19:32:10 +00:00
Matthew Waters
6265fc8424
h264/5timestamper: provide a workaround for h264/5parse producing pts=NONE buffers
...
A workaround for
https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/649
and
https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/287
which is hard to change baseparse behaviour for both video and audio
parsers.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3380 >
2022-11-15 19:32:10 +00:00
Seungha Yang
a4733eb33d
nvcodec: Update plugin cache
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3389 >
2022-11-15 16:25:45 +00:00
Seungha Yang
5f1bc553f4
tests: cudaconvert: Update test code
...
Adding more formats, and rescale test with borders
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3389 >
2022-11-15 16:25:44 +00:00
Seungha Yang
9d30f9dd59
cudaconvertscale, cudascale: Add "add-borders" property and support 8bits RGB planar formats
...
Adding "add-borders" property which is identical to that of
videoscale and this will be enabled by default.
And adding RGBP/BGRP/GBR/GBRA format support.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3389 >
2022-11-15 16:25:44 +00:00
Seungha Yang
c11f8fa930
cuda: Rewrite colorspace/rescale object
...
Rewriting GstCudaConverter object, since the old implementation was not
well organized and it's hard to add new features.
Moreover, the conversion operations were not very optimized.
Major change of this implementation:
* Remove redundant intermediate conversion operations such as
any RGB -> ARGB(64) conversion or any YUV -> Y444 (or 16bits Y444).
That's not required most of cases. The only required case is
converting 24bits (such as RGB/BGR) packed format to 32bits format
because CUDA texture object does not support sampling 24bits format
* Use normalized sample fetching (i.e., [0, 1] range float value)
and also normalized coordinates system for CUDA texture.
It's consistent with the other graphics APIs such as Direct3D
and OpenGL, that makes sampling operations much easier.
* Support a kind of viewport and adopt math for colorspace conversion
from GstD3D11 implementation
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3389 >
2022-11-15 16:25:44 +00:00
Seungha Yang
c1efa9ac4b
cudaupload,cudadownload: Add support for planar 8bits RGB formats
...
Defines RGBP, BGRP, and GBR formats, which have the same memory
layout as already supported Y444. And defines GBRA format as well
which needs just one additional alpha plane
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3389 >
2022-11-15 16:25:44 +00:00
Seungha Yang
9c4c8c3932
cudacontext: Store texture alignment
...
it was missed in the previous refactoring
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3389 >
2022-11-15 16:25:44 +00:00
Seungha Yang
950dad201d
cudaconvert, cudascale: Port to GstCudaBaseCovert baseclass
...
Don't need to hold duplicated code in the source tree
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3389 >
2022-11-15 16:25:44 +00:00
Seungha Yang
eb2ef5a4fd
cuda: Add convertscale element
...
GstCudaConverter object can do colorspace conversion and scale at once.
Adding new element "cudaconvertscale" to do that, this can
save unnecessary GPU operation if colorspace conversion and
rescale is required for given input stream format.
Most of codes are taken from d3d11convert element
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3389 >
2022-11-15 16:25:44 +00:00
Elliot Chen
b09b246fc8
gstplay: add warning message details check before post it
...
For some warning message which has no detail data, need check to avoid printing critical log.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3382 >
2022-11-15 01:01:10 +00:00
Rafał Dzięgiel
e93f391139
tests: Add DASH MPD baseURL with query test
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1147 >
2022-11-14 23:45:53 +00:00
Rafał Dzięgiel
30c2bdad61
mpdparser: Fix missing baseURL query
...
When no initializationURL or mediaURL, return baseURL that also
contains original URI query if available. This fixes a problem
where URI query was being omitted in the HTTP requests.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1147 >
2022-11-14 23:45:53 +00:00
Rafał Dzięgiel
548bbc3147
mpdparser: Be consistent about returning duplicated URL
...
Instead of returning a "const gchar" or a "gchar" that should not be freed, always
return a duplicated string as those functions were used together with g_strdup anyway.
This is needed to prepare support for returning modified strings in next commit.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1147 >
2022-11-14 23:45:53 +00:00
Rafał Dzięgiel
0d79dbedf3
mpdparser: Return correct mediaURL value
...
This fixes a problem where get_mediaURL was returning NULL when segmentURL
was unavailable instead of baseURL as a fallback.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1147 >
2022-11-14 23:45:53 +00:00
Seungha Yang
837881ad29
d3d11converter: Fix YUY2 conversion error
...
Always configure shader conversion path, then fallback to the
shader path if processor is not available
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3392 >
2022-11-14 20:14:27 +00:00
Seungha Yang
d0572622fa
d3d11: Add support for planar RGB formats
...
Adding RGBP, BGRP, GBR, GBR_10LE, GBR_12LE, GBRA, GBRA_10LE, and
GBRA_12LE format support
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3392 >
2022-11-14 20:14:27 +00:00
Seungha Yang
b4d59e4e43
d3d11screencapturesrc: Update plugin cache
...
Missed in
https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3360
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3392 >
2022-11-14 20:14:26 +00:00
Jan Schmidt
452890093d
aesdec: Fix padding removal for per-buffer-padding=FALSE
...
When per-buffer-padding is FALSE, the OpenSSL context needs
to be told to remove any padding at the end of the ciphertext
Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/1243
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3406 >
2022-11-15 00:13:15 +11:00
Edward Hervey
1c8a57a85c
transcodebin: Use const arguments for clarity
...
And rename it when it classhes with existing local variable
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3390 >
2022-11-13 06:59:11 +01:00
Edward Hervey
2e2bc0da54
transcodebin: Don't leak GstStream
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3390 >
2022-11-13 06:59:11 +01:00
Edward Hervey
8e09b645c0
transcode: Don't leak caps
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3390 >
2022-11-13 06:59:11 +01:00
Edward Hervey
c82f9c9f8c
transcode: Don't leak timer
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3390 >
2022-11-13 06:59:11 +01:00
Edward Hervey
00133ebbe4
mpegtsbase: Don't leak GList
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3390 >
2022-11-13 06:59:10 +01:00
Edward Hervey
45e8137e6e
uritranscodebin: Don't leak uris, profile, sinkpad and filters
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3390 >
2022-11-12 10:33:51 +01:00
Edward Hervey
a301c92ca3
transcodebin: Don't leak profile
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3390 >
2022-11-12 10:33:51 +01:00
Edward Hervey
9b67028759
transcodebin: Actually free the TranscodingStream structure
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3390 >
2022-11-12 10:33:51 +01:00
Edward Hervey
90a1d9f873
transcoder: Don't leak API bus and GMainLoop
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3390 >
2022-11-12 10:33:51 +01:00
Seungha Yang
219c5cf330
meson: d3d11: Clarify the message for WGC support check
...
Even Windows10 SDK seems to have required symbols depending on installed
SDK version
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3376 >
2022-11-11 19:42:19 +00:00
Seungha Yang
12a2c1dffe
d3d11screencapturesrc: Fix build error with MSVC x86
...
Delete the code for now. Note that the code block is unnecessary already
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3375 >
2022-11-11 18:58:54 +00:00
Matthew Waters
5ca3988420
webrtc/datachannel: handle error messages from appsrc/sink
...
Fixes a possible race where closing a data channel may produce e.g.
not-linked errors.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3381 >
2022-11-11 10:13:27 +00:00
Matthew Waters
a34e380e2e
sctpdec: fix stream reset (src pad removal) if no data is ever received
...
If we don't receive any data from usrsctp, then there will be no src pad
for the stream id and the stream reset will fail to remove the relevant
src pad. Workaround by first attempting to add the relevant src pad, then
almost immediately removing it.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3381 >
2022-11-11 10:13:27 +00:00
He Junyan
b010f00d36
test: Correct the test suite name of the h264 and h265 bitwriter.
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3384 >
2022-11-11 08:19:01 +00:00
Colin Kinloch
99fc124f25
videocrop, videobox: Simplify navigation event handling and support touch events
...
Signed-off-by: Colin Kinloch <colin.kinloch@collabora.com>
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3053 >
2022-11-11 06:45:49 +00:00
Colin Kinloch
841f50f0d9
va: Fix vapostproc navigation event co-ordinate mapping
...
Signed-off-by: Colin Kinloch <colin.kinloch@collabora.com>
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3053 >
2022-11-11 06:45:49 +00:00
Colin Kinloch
d54e597278
va: Use gst_video_orientation_from_tag to parse orientation
...
Signed-off-by: Colin Kinloch <colin.kinloch@collabora.com>
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3053 >
2022-11-11 06:45:48 +00:00
Tong Wu
ef4fc11193
msdkvpp: delete the macros to make video memory work on Windows
...
Since gst_msdk_import_to_msdk_surface has been implemented for d3d11, we
delete the macros to make it work on Windows.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3231 >
2022-11-11 06:02:28 +00:00
Tong Wu
7becf35221
msdkvpp: modify the way of copying system memory to msdk surface
...
Replace video_copy with memcpy to fix the issue when the sizes of the
src frame and dst frame don't match. Moreover, for Windows, you have to
do the copy first and call gst_msdk_import_to_msdk_surface later.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3231 >
2022-11-11 06:02:28 +00:00
Tong Wu
9a6dd525f7
msdkvpp: add d3d11 support during negotiation
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3231 >
2022-11-11 06:02:28 +00:00
Tong Wu
a55808d299
msdkvpp: add d3d11 video memory to sink and src caps
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3231 >
2022-11-11 06:02:28 +00:00
Tong Wu
78523c5130
msdkvpp: delete use_sinkpad_va and use_srcpad_va
...
This two variables are no longer useful. Delete them for now.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3231 >
2022-11-11 06:02:28 +00:00
Tong Wu
f25f528120
msdkenc: modify the way of copying system memory to msdk surface
...
Replace video_copy with memcpy to fix the issue when the sizes of the
src frame and dst frame don't match. Moreover, for Windows, you have to
do the copy first and call gst_msdk_import_to_msdk_surface later.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3231 >
2022-11-11 06:02:28 +00:00
Tong Wu
f6e207eb1b
msdkallocator_d3d: add d3d11 video memory and import it to msdk surface
...
This patch introduces d3d11 texture and index to GstMsdkMemoryID and
implements gst_msdk_import_to_msdk_surface in order to wrap the surface
to mfxMemId.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3231 >
2022-11-11 06:02:28 +00:00
Tong Wu
7f18f11a90
msdkallocator_d3d: implement GetHDL callback function
...
During encoding process, oneVPL runtime will call GetHDL callback function.
This patch implements this function for the use of msdk.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3231 >
2022-11-11 06:02:28 +00:00
Tong Wu
86d22b2e38
msdkallocator: add a parameter to function gst_msdk_import_to_msdk_surface
...
Add a flags parameter to function gst_msdk_import_to_msdk_surface and
move the function declaration to gstmsdkallcator.h to prepare for adding
Windows implementation.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3231 >
2022-11-11 06:02:28 +00:00
Tong Wu
abe47f3fa0
msdkenc: add d3d11 pool during negotiation
...
This patch adds Windows specific set_format and propose_allocation
functions to enable creating d3d11 pools during negotiation.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3231 >
2022-11-11 06:02:28 +00:00
Tong Wu
c62deb6fe9
msdkenc: add D3D11 caps for msdkenc
...
This patch adds D3D11 feature to sink factory for msdkenc.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3231 >
2022-11-11 06:02:28 +00:00
Tong Wu
d61a248ac8
MSDK: Introduce d3d11 device to MSDK context
...
Currently MSDK context does not support d3d11va. Now introduce d3d11va
device to MSDK context, making it able to create msdk session with d3d11
device and to easily share with upstream and donwstream.
Add environment variable to enable user to choose GPU device in multi-GPU
environment. This variable is only valid when there's no context
returned by upstream or downstream. Otherwise it will use the device
that created by upstream or downstream.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3231 >
2022-11-11 06:02:28 +00:00
Tong Wu
11e13b189d
MSDK: Add gst d3d11 lib into MSDK's dependency
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3231 >
2022-11-11 06:02:28 +00:00
Víctor Manuel Jáquez Leal
eb0f90f6ec
vafilter: Log out processed surfaces for debug.
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3373 >
2022-11-11 04:19:54 +00:00
Víctor Manuel Jáquez Leal
bc4aa017ac
vadeinterlace, vapostproc: Drop output buffer if process failed.
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3373 >
2022-11-11 04:19:54 +00:00
Daniel
ccfb77c775
debugutils: videocodectestsink: add support for more formats
...
Add support for more formats so as to run the libvpx high bit depth test suite.
This means the files under CONFIG_VP9_HIGHBITDEPTH
This also allows running the yuv444p 8bit file in the regular 8 bit vp9 suite.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3356 >
2022-11-10 15:26:22 +00:00
Elliot Chen
4020542b3c
gstplay: fix segmentation fault caused by subtitle info update
...
For subtitle stream played by subrui, gstplay will update subtitle
information before select the stream by using playbin3. Need check
the subtitle_sid value to avoid segmentation fault.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3383 >
2022-11-10 14:07:39 +00:00
Guillaume Desmottes
9eee5adb24
gssink: add 'content-type' property
...
Useful when one wants to upload a video as `video/mp4` instead of
'video/quicktime` for example.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3371 >
2022-11-10 09:53:29 +00:00
Matthew Waters
e2ff6b61ce
cccombiner: initial implementation of using CCBuffer helper
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3211 >
2022-11-10 00:52:14 +00:00
Matthew Waters
088597b430
closedcaption: move CC buffering to helper object
...
Move most of the interesting code from ccconverter to this new helper
object.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3211 >
2022-11-10 00:52:14 +00:00
Matthew Waters
06a20f9243
closedcaption: move cdp->cc_data into shared location
...
So it can be used by both ccconverter and cccombiner
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3211 >
2022-11-10 00:52:14 +00:00
Matthew Waters
fde92ec43f
closedcaption: move cc_data->cdp to shared file
...
Used by both ccconverter and cccombiner
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3211 >
2022-11-10 00:52:14 +00:00
Matthew Waters
9f1b54f6ee
ccconverter: avoid different indent versions indenting !! differently.
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3211 >
2022-11-10 00:52:14 +00:00
Matthew Waters
067185e7da
closedcaption: move cdp framerate table to common file
...
shared by both cccombiner and ccconverter
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3211 >
2022-11-10 00:52:14 +00:00
Matthew Waters
5dd199f7e8
cccombiner: don't assume a single cea608 data packet per buffer
...
e.g. 24fps can have up to 3 and would include either two field0 or
field1 cea608 data.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3211 >
2022-11-10 00:52:14 +00:00
Matthew Waters
741cfd18b5
ccconverter: drop data when overflow on extracting cea608 from cc_data
...
If the buffer overflows, then drop rather than causing a failure and
fropping the output buffer indefinitely. This may have caused downstream to
be waiting for data the will never arrive.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3211 >
2022-11-10 00:52:14 +00:00
Matthew Waters
542060fea7
ccconverter: fix framerate passthrough with malformed input
...
If an input is malformed (only produces cea608 field 1 cc_data) then
when in passthrough we would effectively be dropping every second cea608
on output as we would not store any unused cea608 data.
Fix by having all code paths go through the framerate conversion code
which will store and retrieve any relevant data across buffers.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3211 >
2022-11-10 00:52:14 +00:00
Seungha Yang
b36b9c7821
amfcodec: Fix typos
...
Fixing typo surfrace -> surface
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3378 >
2022-11-09 23:02:21 +00:00
Seungha Yang
93b6cf7adb
mfvideosrc: Return S_OK from ISampleGrabberCB callback
...
The Microsoft's ISampleGrabber implementation seems to be ignoring
the HRESULT return value from the callback though,
S_OK is the right HRESULT code.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3379 >
2022-11-10 06:03:45 +09:00
Seungha Yang
99b83f33f7
d3d11screencapturesrc: Specify PAR 1/1 to template caps
...
... otherwise PAR can be wrongly signalled during the negotiation
Fixing below pipeline when desktop resolution is not 640x480
gst-launch-1.0.exe \
d3d11screencapturesrc ! videoscale !
video/x-raw,width=640,height=480,pixel-aspect-ratio=1/1 ! d3d11videosink
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3360 >
2022-11-09 11:22:06 +00:00
Víctor Manuel Jáquez Leal
7f4f11503c
tests: examples: va: Add encoders dynamic reconfiguration.
...
Take the QSV encoder test and used it for VA.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2466 >
2022-11-09 06:15:23 +01:00
Víctor Manuel Jáquez Leal
1f7cf1d408
va: caps: Fix raw caps for H264 encoding.
...
Mesa gallium and Intel i965 ill reports unsupported video formats.
This commit reverts ecb12a05
and adds a deeper workaround, since
ecb12a05
only fix the template caps, but not when renegotation
happens.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2466 >
2022-11-09 06:15:23 +01:00
Víctor Manuel Jáquez Leal
4994487b8f
vabaseenc: Log out the flow error name.
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2466 >
2022-11-09 06:15:23 +01:00
Víctor Manuel Jáquez Leal
dbf8c38667
vah264enc: Enable parameters change while running.
...
1. Removes the verification if the internal encoder is not opened
yet to allow the property setting.
2. And toggles on the base class' reconf flag for each property
variable that can be modified at run time.
3. Mark those modifiable properties as mutable while playing.
Currently the run-time modifiable properties are:
qpi, qpp, qpb, bitrate, target percentage, target usage and rate control
Other properties can be enabled too, but they need testing.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2466 >
2022-11-09 06:15:21 +01:00
Víctor Manuel Jáquez Leal
bd3c50e50f
vabaseenc: Enable encoder reconfiguration.
...
Adds an internal function reset() which drains the internal queues and
calls the reconfig() vmethod.
This reset() method is called inconditionally at set_format() and in
handle_frame() if the instance's reconf flag is enabled.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2466 >
2022-11-09 06:13:26 +01:00
Víctor Manuel Jáquez Leal
351a107ecc
vah264enc: Avoid reopen encoder or renegotiate.
...
If parameters remain similar enough to avoid either encoder reopening
or downstream renegotiation, avoid it.
This is going to be useful for dynamic parameters setting.
To check if the stream parameters changed, so the internal encoder has
to be closed and opened again, are required two steps:
1. If input caps, profile, chroma or rate control mode have changed.
2. If any of the calculated variables and element properties have
changed.
Later on, only if the output caps also changed, the pipeline
is renegotiated.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2466 >
2022-11-09 06:13:26 +01:00
Víctor Manuel Jáquez Leal
38f1a4ee3d
vaencoder: Add gst_va_encoder_get_reconstruct_pool_config()
...
This method will return the caps configured in the reconstruct buffer
pool, and its maxium number of buffers to allocate.
The caps are needed later to know if the internal encoder has to be
reopened if the stream properties change.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2466 >
2022-11-09 06:13:25 +01:00
Seungha Yang
ded3e7c81a
directshow: Demote rank of device provider to GST_RANK_NONE
...
Current directshow plugin seems to be unstable and unmaintained
for many many years.
See
https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3323
and
https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1828
Disable this device provider by default to avoid any side-effect
of this plugin
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3355 >
2022-11-09 00:30:45 +00:00
Victor Manuel Jaquez Leal
bb86728a1a
vah264enc: Fix properties documentation.
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3361 >
2022-11-08 21:49:05 +00:00
Victor Manuel Jaquez Leal
c60504bd9e
va: Document device-path property.
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3361 >
2022-11-08 21:49:05 +00:00
Victor Manuel Jaquez Leal
98a3aee6cb
va: Reenable plugin cache.
...
This basically a revert of commit 9bb560e7
Also it adds vaav1dec.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3361 >
2022-11-08 21:49:05 +00:00
Victor Manuel Jaquez Leal
0918910a7d
vavp8dec, vampeg2dec: Fix type name.
...
The camel case name is wrong when registering the type.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3361 >
2022-11-08 21:49:05 +00:00
Víctor Manuel Jáquez Leal
96a6b33029
vacaps: Sort raw caps according their efficiency.
...
Caps negotiations considers template caps order. This patch sets the
correct order according the feture caps: VAMemory, DMABuf and
SystemMemory.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3349 >
2022-11-08 05:15:09 +00:00
Tim-Philipp Müller
db450689db
Back to development
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3358 >
2022-11-08 02:08:08 +00:00
Tim-Philipp Müller
3e29ac35c4
Release 1.21.2
2022-11-07 23:54:03 +00:00
Tim-Philipp Müller
98d2f958a9
Update ChangeLogs for 1.21.2
2022-11-07 23:53:57 +00:00
Jan Alexander Steffens (heftig)
28628a67e5
srt: Add a property to disable automatic reconnect
...
This adds a new boolean property `auto-reconnect`, defaulting to `true`.
Setting it to `false` makes the elements (in caller mode) immediately
report an error to the application instead of trying to reconnect.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3326 >
2022-11-07 22:23:02 +00:00
Víctor Manuel Jáquez Leal
bbd2bce11d
vabasetransform: Fail if cannot import the input buffer.
...
Otherwise got a buffer double free.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3348 >
2022-11-07 17:57:05 +00:00
Seungha Yang
4b05736c63
mfvideosrc: Add support for DirectShow capture filter
...
Adding DirecShow video capture filter mode, in addition
to existing MediaFoundation and WinRT(UWP) mode, to support
DirectShow only filters (not KS driver compatible)
such as custom virtual camera filters.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3350 >
2022-11-08 01:33:14 +09:00
Jan Alexander Steffens (heftig)
b22093be3c
rtmp2: Improve error messages
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1403 >
2022-11-07 12:31:08 +00:00
Jan Alexander Steffens (heftig)
f2d7b98ea4
rtmp2/connection: Pass triggering GError in 'error' signal
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1403 >
2022-11-07 12:31:08 +00:00
Jan Alexander Steffens (heftig)
9952be2ab3
rtmp2/connection: Pass triggering GError to _emit_error
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1403 >
2022-11-07 12:31:08 +00:00
Jan Alexander Steffens (heftig)
39bab56a08
rtmp2/connection: Discern reasons for cancelling all commands
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1403 >
2022-11-07 12:31:08 +00:00
Jan Alexander Steffens (heftig)
297cdaa381
rtmp2/connection: Handle EOF like error
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1403 >
2022-11-07 12:31:08 +00:00
Jan Alexander Steffens (heftig)
031d52672b
rtmp2/client: Make sure 'salt' is not NULL
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1403 >
2022-11-07 12:31:08 +00:00
Jan Alexander Steffens (heftig)
dcada94046
rtmp2/client: Make sure 'reason' is not NULL
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1403 >
2022-11-07 12:31:07 +00:00
Jan Alexander Steffens (heftig)
a13f234be3
rtmp2/client: Make sure 'desc' is not NULL
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1403 >
2022-11-07 12:31:07 +00:00
Jan Alexander Steffens (heftig)
2037f1ed0a
rtmp2/client: Make sure 'code' is not NULL
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1403 >
2022-11-07 12:31:07 +00:00
Edward Hervey
a100f36b69
webrtcbin: Don't duplicate enum string values
...
Some were leaked when debugging was enabled. Instead just directly use the
static strings as-is.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3347 >
2022-11-07 11:21:00 +00:00
Nicolas Dufresne
e81e212610
videocodectestsink: Add YUV422 support
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3331 >
2022-11-07 00:40:25 +00:00
Seungha Yang
0405e0cfc7
d3d11videosink: Always clear back buffer on resize
...
Swapchain may not need to be resized if the size of backbuffer
is equal to the previous size. Then previously rendered frame will be stay
on the screen. Do clear back buffer whenever resize() is called
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3341 >
2022-11-05 17:23:24 +00:00
Seungha Yang
e1e9ee5506
qsv: Fix encoding error when input memory belongs to other GPU
...
Copy frame if VA display of input buffer is different from that
of encoder, like we've been doing on Windows
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3335 >
2022-11-05 13:59:45 +00:00
He Junyan
1881d1826a
va: baseenc: Do not import the VA surface from other display.
...
Fixes: https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/1167
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3322 >
2022-11-05 13:39:34 +08:00
He Junyan
d51b29b1dc
va: compositor: Do not use allocator and pool from other display.
...
Just like the va decoder, the compositor should not use allocator
and pool from other display. Also, when importing the input buffer,
if it is from other display, we should fallback to memory copy.
Fixes: https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/1167
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3322 >
2022-11-05 13:39:34 +08:00
He Junyan
b9b211c1d1
va: basetransform: Do not use allocator and pool from other display.
...
Just like the va decoder, the vpp and deinterlace should not use allocator
and pool from other display. Also, when importing the input buffer, if it
is from other display, we should fallback to memory copy.
Fixes: https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/1167
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3322 >
2022-11-05 13:39:34 +08:00
He Junyan
a8330686cb
va: basedec: Do not use allocator and pool from other display.
...
The command line such as:
gst-launch-1.0 -vf filesrc location=1.264 ! h264parse !
vah264dec ! varenderD129postproc ! fakesink
The decoder here gets the allocation proposal from the vpp which is
on another GPU device. The allocator and pool belong to other display
and should not be used in the decoder.
Fixes: https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/1167
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3322 >
2022-11-05 13:39:34 +08:00
He Junyan
3875c420f7
libs: va: Add API to peek the va buffer's display.
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3322 >
2022-11-05 13:39:34 +08:00
He Junyan
464650a5d0
libs: va: Add API to peek the va memory's display.
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3322 >
2022-11-05 13:39:34 +08:00
He Junyan
b1a98433f8
libs: va: Add API to peek the allocator's display.
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3322 >
2022-11-05 13:39:34 +08:00
He Junyan
028920cfc4
libs: va: Fix code style in gstvaallocator.h
...
Replace all tabs with spaces.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3322 >
2022-11-05 13:39:34 +08:00
Seungha Yang
4db4f08227
d3dvideosink: Update plugin description
...
Direct3D is too generic (there are various version numbers).
Clarify that this element is using the Direct3D9 API
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3333 >
2022-11-04 22:48:41 +00:00
Edward Hervey
f4d0537b3e
lv2: Don't leak plugin information on registration
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3319 >
2022-11-04 17:59:21 +00:00
Edward Hervey
685a4aaaa7
ladspa: Don't leak plugin information on registration
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3319 >
2022-11-04 17:59:21 +00:00
Edward Hervey
8ca2a2a230
fdkaacenc: Properly terminate GEnumValue table
...
It should be terminated with a NULL entry, otherwise we just stray into the
realms of cryptographic libraries^W^W random memory usage.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3319 >
2022-11-04 17:59:21 +00:00
Jan Alexander Steffens (heftig)
424b331afc
srt: Remove callers for which srt_bstats fails
...
This keeps them from accumulating in the element and in the stats while
the sink is not being fed, as long as we at least periodically grab
stats.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3156 >
2022-11-04 13:07:34 +00:00
Jan Alexander Steffens (heftig)
d575a41145
srt: Use simpler list operations for callers
...
Avoid `g_list_append` and `g_list_remove` (which have to scan the list)
and replace them with `g_list_prepend` and `g_list_delete_link`.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3156 >
2022-11-04 13:07:34 +00:00
Jan Alexander Steffens (heftig)
3c23c16f40
srt: Clean up poll/sock lifecycle
...
Make sure `srtobject->poll_id` is never invalid as long as `srtobject`
exists. Only remove our caller socket from it when the socket becomes
invalid.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3156 >
2022-11-04 13:07:34 +00:00
Jan Alexander Steffens (heftig)
4e05100e8c
srt: Clean up error handling
...
- Make the srt_epoll_wait loops more uniform.
- Error only via GError when possible; let the element send the error
message. Avoids a second error message.
- Return 0 when cancelled. Avoids an error message from the element.
- Don't send an error message from send_headers when we're a server
sink.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3156 >
2022-11-04 13:07:34 +00:00
Jan Alexander Steffens (heftig)
a3cc5cf257
srt: Simplify socket stats
...
Don't hide stats depending on whether we're a sending or receiving
socket. While we're here, add some more debug logs.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3156 >
2022-11-04 13:07:34 +00:00
Jan Alexander Steffens (heftig)
b6974b6afc
srt: Replace stats accumulation with naive byte counting
...
srt_bstats cannot be used to get the stats of closed connections, so the
best we can do is keep the running count ourselves.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3156 >
2022-11-04 13:07:34 +00:00
Seungha Yang
bfed80a82c
directshow: Validate enumerated AM_MEDIA_TYPE struct
...
The video info struct can be null if format is undefined
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3323 >
2022-11-04 10:01:39 +00:00
Seungha Yang
6d46a9c3c7
examples: d3d11: Fix GCC build error/warning
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3318 >
2022-11-04 02:17:22 +09:00
Seungha Yang
f7cc753274
qsvjpegenc: Add support for YUY2 format
...
Now GstD3D11 defines YUY2 format
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3316 >
2022-11-03 06:40:10 +09:00
Seungha Yang
1853dd56a4
qsv: Add JPEG decoder
...
Because DXVA does not define JPEG decoding, we need this
vendor specific API for Windows
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3316 >
2022-11-03 06:40:10 +09:00
Seungha Yang
3f94df9487
d3d11: Add support for YUY2 format
...
YUY2 is a primary YUV 4:2:2 format for DXVA.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3316 >
2022-11-03 06:40:09 +09:00
Tong Wu
60f7467dfe
msdkcontext: use gst_object_unref instead of g_object_unref
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3301 >
2022-11-02 07:40:59 +00:00
Tong Wu
bae66c8ae0
msdkcontext: use gst_object_ref for GstVaDisplay
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3301 >
2022-11-02 07:40:59 +00:00
Tong Wu
c9cc92a20a
msdkcontext: g_object_new() must not return nullptr
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3301 >
2022-11-02 07:40:59 +00:00
Tong Wu
7b03da634b
msdkenc: use GST_CAPS_FEATURE_MEMORY_VA to check the feature
...
Add macros to protect sinkpad_is_va(), since it is not defined on
Windows.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3301 >
2022-11-02 07:40:59 +00:00
Guillaume Desmottes
a92f41e0c7
wpe: fix wpevideosrc gst-play example
...
wpe:// no longer works since 1.20, see wpesrc examples.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3306 >
2022-11-02 00:21:21 +00:00
Eric Knapp
87e9952b8f
vah264enc: Added option to insert CEA-708 closed captions
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2910 >
2022-11-01 23:22:03 +00:00
Seungha Yang
be1771126d
qsv: Check 16K resolution support
...
... and remove duplicated code
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3310 >
2022-11-01 17:23:52 +00:00
Marijn Suijten
31c23fb6c0
vulkan: Mark gst_vulkan_image_view_new create_info as constant pointer
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1615 >
2022-11-01 15:19:51 +01:00
Marijn Suijten
3d081c45be
vulkan: Remove unnecessary null checks
...
These null checkes are slightly misleading when double-checking
mutability for external language interop. None of the functions in
these files allow the variable at hand to become `NULL` under normal
operation, because they are checked at initialization and never (allowed
to be) reassigned to `NULL`.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1615 >
2022-11-01 15:19:51 +01:00
Marijn Suijten
ebe7517b8e
vulkan: Add missing (nullable)
annotation to Returns
...
Most of these functions already state they might return `%NULL`, but
this is not picked up by G-IR.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1615 >
2022-11-01 15:19:51 +01:00
Marijn Suijten
614cd87732
vulkan: Add missing array length
and (out)
annotation to parameters
...
Add `array length` annotation for `layouts` such that `n_layouts` is
properly marked as its length, and add `(out)` where a function returns
in that parameter.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1615 >
2022-11-01 15:19:51 +01:00
Seungha Yang
92e03ba869
d3d11decoder: Fix for VP9 decoding with odd resolution
...
Fixing off by one mismatch when width and/or height of stream
is odd number
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3302 >
2022-10-31 20:45:25 +00:00
Seungha Yang
5e66dde1b2
qsv: Add VP9 decoder
...
Recent Intel GPU supports 12bits VP9 decoding but only VP9
profile2 with 10bits is defined by DXVA spec.
Thus, we need this vendor specific decoder element
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3290 >
2022-10-31 19:30:47 +00:00
Seungha Yang
d8bdd9429b
d3d11vp9dec: Disallow Profile2 12bits stream
...
Since DXVA does not support the format, specify bit-depth field
to sinkpad template caps so that d3d11vp9dec can be skipped
during autoplugging
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3297 >
2022-10-31 11:29:39 +00:00