Yinhang Liu
7aa0b29da8
msdk: Add function to specify string array parameters
...
Sometimes it is necessary to manually specify string parameters
of multiple options, such as format, interlace-mode, etc.
Add function to support this requirment.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4177 >
2023-04-17 05:24:06 +00:00
Yinhang Liu
1f8d939559
msdkenc: Add function to dynamically create sink caps and src caps
...
We need to create the sink caps and src caps dynamically for different
platforms. By default, the enc init function create static pad template
and the compatibility and flexibility of the platform are too poor.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4177 >
2023-04-17 05:24:05 +00:00
Yinhang Liu
3f47cdaee8
msdk: add function to get the format list
...
This static format list will be used to check the formats
supported by the platform.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4177 >
2023-04-17 05:24:05 +00:00
Yinhang Liu
97e081c9d6
msdk: Register elements based on the codecs supported by the platform
...
By default, msdk plugin will register all encoders and decoders
on any platform, even unsupported encoders and decoders will be
registered. Dynamically register encoders and decoders besed on
the supported codecs on different platforms.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4177 >
2023-04-17 05:24:05 +00:00
Yinhang Liu
f773752bd8
msdk: Add function to get the implementation description
...
Through the implementation description, we can dynamically obtain
the codec capabilities supported by the platform.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4177 >
2023-04-17 05:24:05 +00:00
Yinhang Liu
34a812a0c0
msdk: Add functions to get data members from MsdkSession
...
When getting mfxImplDescription, these data members need to
be used.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4177 >
2023-04-17 05:24:05 +00:00
Yinhang Liu
6242fca526
msdk: Create msdk context without job_type
...
The job_type is not necessary when creating a normal msdk
context. Make the APIs for creating context more flexible.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4177 >
2023-04-17 05:24:05 +00:00
Yinhang Liu
dafb801a18
msdk: Move all _gst_caps_has_feature to gstmsdkcaps.c
...
_gst_caps_has_feature is used by all msdk elements, so
move it to gstmsdkcaps.c
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4177 >
2023-04-17 05:24:05 +00:00
Mathieu Duponchelle
6c25caa572
docs: mark GstSRTSink and GstSRTSrc as plugin API
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4408 >
2023-04-13 21:46:59 +00:00
Seungha Yang
af86c4b80e
d3d11videosink: Remove pointless GetDC call
...
We don't use the Win32 device context handle at all.
Removing code which was copied from GL code blindly
in early d3d11 implementation stage a long time ago
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4407 >
2023-04-12 19:54:31 +00:00
Michael Olbrich
fe6b76c64e
srtpdec: fix "srtp-key" check
...
The original code was:
if (!gst_structure_get (s, "srtp-key", GST_TYPE_BUFFER, &buf, NULL) || !buf) {
goto error;
} else {
stream->key = buf;
}
So use "srtp-key" if it is set so a non NULL buffer. The condition was
incorrectly inverted in ad7ffe64a6
to:
if (gst_structure_get (s, "srtp-key", GST_TYPE_BUFFER, &buf, NULL) || !buf) {
stream->key = buf;
} ...
Fix the condition so it works as originally intended and avoid accessing
'buf' uninitialised.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4401 >
2023-04-12 18:16:21 +00:00
Seungha Yang
9489fb3f54
sdpdemux: Add support for RFC4570 SDP source filters
...
Parse source-filter attributes and configure udpsrc accordingly
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3485 >
2023-04-12 16:32:07 +00:00
Thibault Saunier
5797fa09af
codectimestamper: Implement QUERY_CAPS support
...
This is required to ensure that downstream restrcitions are also
propagated upstream.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4341 >
2023-04-12 15:07:28 +00:00
Thibault Saunier
dbc6afd874
codectimestamper: Use accept-intersect and accept-template caps
...
We should behave similarly to video parsers so we can use:
- accept-template as we can also accept caps with missing fields.
- accept-intersect to do quick check with the pad template caps as it is
enough. Users should have figured the appropriate full caps on a
previous caps query
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4341 >
2023-04-12 15:07:28 +00:00
Seungha Yang
9be36adaa3
cea608mux: Add support for seeking
...
The "start_time" should be cleared per flush in order to apply
new offset time to each output buffer. Also, input running time
must be compared with output running time, not output position.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4398 >
2023-04-12 08:57:03 +00:00
Seungha Yang
a3fd3ad4d7
cea608mux: Implement GstAggregator::clip
...
Drop buffers if it's outside of segment
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4398 >
2023-04-12 08:57:03 +00:00
Mengkejiergeli Ba
471f3b3b93
msdkcontext: Remove unused codes in msdkcontext
...
We don't maintain three list (i.e. avail, locked and used) surfaces
as the old way did to achieve memory management, so remove the
correcponding codes for old memory management.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4276 >
2023-04-11 06:59:33 +00:00
Mengkejiergeli Ba
ec2ef6e2d3
msdk: Remove unused gstmsdkbufferpool and memory
...
GstMsdkBufferPool, GstMsdkVideoMemory and GstMsdkSystemMemory are no
longer used in msdk plugins, instead we use va/d3d11 pool for memory
allocation. So, remove the codes of unused stuffs.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4276 >
2023-04-11 06:59:33 +00:00
Mengkejiergeli Ba
ef1397cbe3
msdk: Remove the func gst_msdk_is_msdk_buffer
...
Since we use va/d3d11 pool to allocate memory, the old msdk bufferpool
stuffs are not used anymore, so we don't need to check if an input
buffer is msdk buffer using gst_msdk_is_msdk_buffer.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4276 >
2023-04-11 06:59:33 +00:00
Seungha Yang
bb5c151336
h264decoder: Enable low-latency bumping in case of pic_order_cnt_type 2
...
In case of POC type 2, output order is equal to decoding order
(no frame reordering)
Fixes: https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/2447
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4357 >
2023-04-10 13:42:31 +00:00
Seungha Yang
73daa0e0ad
h264decoder: Fix for latency report
...
The minimum latency answered by an element should be the maximum
latency from the element's perspective. Also consider max_reorder_frames
update as a sequence change
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4357 >
2023-04-10 13:42:31 +00:00
Seungha Yang
e0c2578f73
h264decoder: Ignore invalid max_num_reorder_frames in VUI
...
It's not fatal and can be ignored
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4357 >
2023-04-10 13:42:31 +00:00
Seungha Yang
f439481d8e
h265decoder: Fix for latency report when src caps is not configured
...
Depending on subclass, negotiation might not happen on new_sequence()
Fixing regression introduced by the commit
4a4823b972
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4357 >
2023-04-10 13:42:31 +00:00
Seungha Yang
560fd4834c
h264decoder: Fix for latency report when src caps is not configured
...
Depending on subclass, negotiation might not happen on new_sequence()
Fixing regression introduced by the commit
4a4823b972
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4357 >
2023-04-10 13:42:31 +00:00
Wang Chuan
d7d0c969df
gstd3d11window: fix memory leak
...
GstStructure may leak when using external HWND
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4373 >
2023-04-10 12:12:27 +00:00
Seungha Yang
ba8f944df7
amfencoder: Set output DTS
...
AMF runtime does not provide correct DTS. Although GetPts() seems to
be returning DTS, it still needs to be adjusted to meet DTS <= PTS
requirement. Do calculate DTS in baseclass instead
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4092 >
2023-04-08 23:11:32 +09:00
Evgeny Pavlov
6f62128433
amfcodec: Add options for B-frames for amfh264enc plugin
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4092 >
2023-04-08 23:11:28 +09:00
Seungha Yang
7117cba831
decklinkaudiosink: Fix playback when video caps is configured before audio
...
Scheduled playback starts on videosink's state change or on caps
but it's possible that audiosink is configure without caps yet.
Try start scheduled playback on audiosink's caps event as well
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4364 >
2023-04-07 18:59:17 +00:00
Dario Marino Saccavino
07cf7b2a29
wasapi2: Add option to monitor loopback device's mute state
...
When loopback recording from a render device, the wasapi2src element
captures audio even if the device is muted. This change adds the
'loopback-silence-on-device-mute' property that, when set to `true`,
causes wasapi2src to inject silence in the pipeline when
the device is muted.
Fixes: https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/1306
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4337 >
2023-04-07 17:19:33 +00:00
Jan Schmidt
1b762ba012
mpegpsdemux: Rework gap sending
...
Take the gap logic from mpegtsdemux, and don't
send gap events on a stream that's outputting buffers with
no timestamps. Time isn't advancing, but the stream has
buffers - so it's not sparse.
Fixes #2374
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4333 >
2023-04-06 01:34:03 +00:00
Sebastian Dröge
b90c0bd79b
vulkan: Use new GLib APIs as suggested by comments
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4349 >
2023-04-06 00:26:13 +00:00
Nicolas Dufresne
c883fea19e
h265parse: Don't override upstream framerate
...
The framerate should only be replaced (and corrected for alternating field)
when it is parsed from the bitstream. Otherwise, the upstream framerate
from caps should be trusted and assumed correct.
Related to gst-plugins-bad!2020
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4259 >
2023-04-05 13:33:39 -04:00
Nicolas Dufresne
93904f1921
h265parse: Rename parsed_framerate to framerate_from_caps
...
That meaning of parsed_framerate is ambigious, it is set whenever the
framerate has been parsed from caps, which can be confused with being
parsed from the bitstream. Rename this as framerate_from_caps.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4259 >
2023-04-05 13:33:39 -04:00
Edward Hervey
38dd5deb66
tsdemux: Minor refactoring
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4336 >
2023-04-04 20:54:50 +00:00
Edward Hervey
8e51399334
mpegts: Fix include headers
...
<gst/mpegts/mpegts.h> is the unique header to use
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4336 >
2023-04-04 20:54:50 +00:00
Wojciech Kapsa
8d4916df84
decklink: fix 10 bit RGB (r210) format auto detection
...
Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/2391
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4332 >
2023-04-04 20:37:09 +03:00
Seungha Yang
47fda2c51c
d3d11screencapturesrc: Add "window-capture-mode" property
...
... to support capturing only window's client area
Fixes: https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/2425
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4324 >
2023-04-03 15:06:47 +00:00
Seungha Yang
1876e5c429
cea608mux: Fix output buffer timestamping
...
Don't assume that input stream starts from zero running time.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4319 >
2023-04-03 13:11:00 +00:00
Aleksandr Slobodeniuk
e683000573
d3d11videosink: fix race conditions in win32 window
...
One race condition is the fact that the window object
can be destroyed while running some routine in the UI
thread (such as resizing). To avoid that situation we make
UI thread hold a reference on the window object while it's
running.
Other probpematic case is when the window handle is reused:
if we stop and start the pipeline very fast,
so the sink creates a new window object that is going to use
the same window handle as the previous one.
And finally the case when the pipeline is stopped immediatelly
right after starting, this one is also handled in this commit.
NOTE: a unit test that reproduces this cases have been added
in the previous commit.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4260 >
2023-04-03 11:19:11 +00:00
Aleksandr Slobodeniuk
fcf4dbf8e3
d3d11videosink: add gstcheck test for win32 window
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4260 >
2023-04-03 11:19:10 +00:00
Matthew Waters
54acb36689
vulkan/wayland: use xdg_wm_base when available
...
wl_shell is deprecated and has been removed from some compositors.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4316 >
2023-04-03 02:36:38 +00:00
Matthew Waters
edffae31dd
vulkan/wayland: provide a dummy registry global_remove function
...
Even if we don't care about any global objects being removed, wayland
will still error if globals are removed without a corresponding listener
set up for them. e.g. wl_output hotplugging
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4316 >
2023-04-03 02:36:38 +00:00
Matthew Waters
21cff6b134
vulkan/wayland: rename debug category to mention wayland instead of XCB
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4316 >
2023-04-03 02:36:38 +00:00
Seungha Yang
7755cd2f7a
d3d11videosink: Enhancement for initial window size decision
...
Use AdjustWindowRect() method to calculate window size so that
video scene can be rendered on client area without black borders
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4323 >
2023-04-02 00:31:58 +09:00
Matthew Waters
b132a44ba5
ccconverter: reintroduce frame count reset on cycle completion
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4308 >
2023-03-31 21:35:21 +00:00
Seungha Yang
55db8367f7
tools: Count argc after parsing GOption on Windows
...
Existing codes rely on modified argc value by g_option_context_parse()
but g_option_context_parse_strv() is used in case of Windows.
Count arguments after the option parsing manually.
Fixing command "gst-inspect-1.0.exe -b"
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4313 >
2023-03-31 18:11:52 +00:00
Brad Hards
4087bb9a55
mpegts: remove stream-type from KLV meta
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4310 >
2023-03-31 07:03:54 +00:00
Brad Hards
6f2eb752c5
mpegts: add support for KLV metadata in PES packets
...
Co-authored-by: Andoni Morales Alastruey <ylatuya@gmail.com>
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1312 >
2023-03-30 12:16:52 +00:00
Brad Hards
4e14bac1ff
mpegts: implement metadata in PES packets
...
Co-authored-by: Andoni Morales Alastruey <ylatuya@gmail.com>
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1312 >
2023-03-30 12:16:52 +00:00
Víctor Manuel Jáquez Leal
e5c38003b8
gsth254picture: move internal API to private header
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4288 >
2023-03-30 11:40:33 +02:00