Seungha Yang
7c4cae61b9
decklink2src: Implement soft restart
...
Instead of stopping stream, do pause, flush, and reset time mapping.
2023-12-14 22:45:09 +09:00
Seungha Yang
e5ad448f47
decklink2: Validate video buffer size
2023-12-14 19:27:50 +09:00
Seungha Yang
26abbb73bc
decklink2src: Release mutex while stopping
...
Stop API will wait for callback function thread which takes mutex too.
Release the mutex while stopping
2023-12-07 18:57:55 +09:00
Seungha Yang
b521150377
decklink2src: Fix mutex usage
2023-12-07 18:39:56 +09:00
Seungha Yang
c0c601fe98
decklink2sink: Add desync-threshold property
...
Similar to decklink2src, adding a property to restart stream if
desync is detected
2023-12-04 23:49:44 +09:00
Seungha Yang
5af453743c
decklink2src: Validate frame resolution and formats
...
... and fix some deadlocks
2023-11-09 22:14:16 +09:00
Seungha Yang
2e5226a3f9
decklink2output: Update audio drop logic
...
Upstream should provide a/v aligned stream. Remove append/drop audio
on overrun logic. And duplicate frame up to 2 frames on underrun
2023-11-04 00:25:28 +09:00
Seungha Yang
7e382d53c6
decklink2combiner: Don't aggregate multiple audio buffers
...
Instead, upstream should provide perfect stream
2023-11-04 00:25:28 +09:00
Seungha Yang
8f1855118f
decklink2sink: Add buffered audio and video time to ouptput-stats
2023-11-04 00:25:28 +09:00
Seungha Yang
e6fecabe8e
decklink2sink: Add output-stats property
2023-11-04 00:25:28 +09:00
Seungha Yang
96c3e5efee
decklink2output: Calculate audio sample timestamp
...
Calculate audio sample timestamp in samplerate unit (i.e., total number
of audio samples) and pass it to driver, instead of zero timestamp/scale
2023-11-04 00:25:28 +09:00
Seungha Yang
0c8257140a
decklink2output: Duplicate more frames on underrun
...
... and log actual render time with scheduled time
2023-11-04 00:25:28 +09:00
Seungha Yang
4c727b6860
decklink2sink: Restart only when frames are dropped
2023-11-04 00:25:28 +09:00
Seungha Yang
539d8f2c1d
decklink2: Fix output audio prepend and add more logs
2023-11-04 00:25:28 +09:00
Seungha Yang
37c760e8f9
decklink2sink: Don't hold lock while stopping
...
Driver may wait for callback thread to join() but we takes the same
lock there
2023-11-04 00:25:27 +09:00
Seungha Yang
ff34a9ee42
decklink2src: Update for signal state logging
2023-11-04 00:25:27 +09:00
Seungha Yang
6994f20b75
decklink2src: Remove no-signal-threshold property
...
instead, do auto restart on no-signal to signal state transition
2023-11-04 00:25:27 +09:00
Seungha Yang
b3a53591da
decklink2src: Add "desync-threshold" and "no-signal-threshold" properties
...
Once large A/V desync or no-signal frames are detected, src will
automatically restart streaming
2023-11-04 00:25:27 +09:00
Seungha Yang
cb56e2c8d7
decklink2sink: Loop ScheduleAudioSamples() until all data is written
...
SDK 12.4.2 doc says if "sampleFramesWritten" is null, it's blocking
operation finished once all data is written to driver. But the behavior
is not mentioned in old SDK docs.
2023-11-04 00:25:27 +09:00
Seungha Yang
c1d41ba5de
decklink2sink: Add restart signal action
2023-11-04 00:25:27 +09:00
Seungha Yang
5125f68b12
decklink2sink: Add auto-restart property
...
Support automatic restart when frame dropping happens
2023-11-04 00:25:27 +09:00
Seungha Yang
ce71612e83
decklink2src: Use GstQueueArray instead of std::queue
...
Avoid heap allocation in capture thread
2023-11-04 00:25:27 +09:00
Seungha Yang
8696f33e38
decklink2: Update for CFStringRef to std::string converision
2023-11-04 00:25:27 +09:00
Seungha Yang
5a40935222
decklink2src: Add "restart" signal action
...
Support restart streaming via signal action
2023-11-04 00:25:27 +09:00
Seungha Yang
96365cd8de
decklink2src: Add "skip-first-time" property
...
... so that the element can skip first N frames as requested.
2023-11-04 00:25:27 +09:00
Seungha Yang
f45c572321
decklink2sink: Fill audio silence when video is duplicated
2023-11-04 00:25:27 +09:00
Seungha Yang
cde52f601e
decklink2srcbin: Configure small queue between src and demux
2023-11-04 00:25:27 +09:00
Seungha Yang
f75e5343fc
Revert "decklink2: Rework audio resync with small updates"
...
This reverts commit dfda0409d9507ced332b69f750382f4efc10af44.
2023-11-04 00:25:27 +09:00
Seungha Yang
5c5076d113
decklink2: Rework audio resync with small updates
2023-11-04 00:25:27 +09:00
Seungha Yang
1a02d4ad19
decklink2: Add new Blackmagic DeckLink plugin
...
Key differences from the old decklink plugin:
* Single source/sink element instead of separate audio/video source/sink
* Supports old driver (version 10.11 or newer)
* Windows DeckLink SDK build is integrated into plugin build
2023-11-04 00:25:23 +09:00
Seungha Yang
6c7fe649ab
decklink2: Remove fprintf from SDK
2023-11-04 00:24:14 +09:00
Seungha Yang
98b0406589
decklink2: Import SDK v12.4.2 files
2023-11-04 00:24:14 +09:00
Seungha Yang
34d221dad5
wasapi2: Fix build with GST_DISABLE_GST_DEBUG
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5585 >
2023-11-03 13:31:03 +00:00
Seungha Yang
8009f5275a
mediafoundation: Fix build with GST_DISABLE_GST_DEBUG
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5585 >
2023-11-03 13:31:03 +00:00
Seungha Yang
c3cef6e923
d3d12: Fix build with GST_DISABLE_GST_DEBUG
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5585 >
2023-11-03 13:31:03 +00:00
Seungha Yang
bf05cfea45
d3d11: Fix build with GST_DISABLE_GST_DEBUG
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5585 >
2023-11-03 13:31:03 +00:00
Seungha Yang
5e147ed3b8
meson: Fix MSVC build with GST_DISABLE_GST_DEBUG
...
MSVC does not understand Wno-unused
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5585 >
2023-11-03 13:31:03 +00:00
He Junyan
e7479a8c94
libde265dec: Only decode the main profile
...
The src caps of the libde265 is now fixed to I420, and so if the
stream is other format, such as 4:4:4 or 10 bits format, the pipeline
will crash because the dowstream element accesses the video buffer as
I420 format.
We now restrain the input caps to "main" profile, which only contains
4:2:0 8 bits stream.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5573 >
2023-11-03 12:41:59 +00:00
Philippe Normand
8f18fde21a
ges-uri-asset: Fix GESDiscovererManager leaks
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5552 >
2023-11-02 18:29:27 +00:00
Sebastian Dröge
2dd65d8715
mpg123audiodec: Update rank from MARGINAL to PRIMARY
...
This is our primary MP3 decoder after mad got removed.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5590 >
2023-11-02 14:17:06 +00:00
Sebastian Dröge
ffa30637c4
ptp: Use SO_BINDTOIFINDEX / SO_BINDTODEVICE on Linux
...
This makes sure we really really really only get packets from the
desired interface as passing a device to IP_ADD_MEMBERSHIP apparently
does not have this effect alone.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5584 >
2023-11-02 11:42:44 +00:00
Fabian Orccon
f6ffe34ad5
gst-inspect: Do not check for element clock
...
Clock is only set at GST_PLAYING state, not the case for gst-inspect
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5570 >
2023-11-02 10:12:31 +00:00
Sebastian Dröge
d6adaccf6d
ptp: Check once a second for timeouts
...
While the minimum timeout duration is 5s, checking only every 5s means
that we would notice this 4.9s too late in the worst case.
Checking once a second reduces this considerably while keeping the
number of wakeups still low.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5520 >
2023-11-02 09:11:09 +00:00
Sebastian Dröge
9ba8107ec6
ptp: Only warn if the clock id and interface of a timed out matches the current one
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5520 >
2023-11-02 09:11:09 +00:00
Sebastian Dröge
bd985ea608
ptp: Only time out SYNCs if we're actually waiting for a FOLLOW_UP
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5520 >
2023-11-02 09:11:09 +00:00
Sebastian Dröge
c7421c0f16
ptp: Downgrade clocks that don't send FOLLOW_UPs / DELAY_RESPs
...
This allows to select a different clock if there is one that is
for the same grandmaster clock and has fewer timeouts.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5520 >
2023-11-02 09:11:09 +00:00
Sebastian Dröge
ea7861a757
ptp: Don't switch domain's master clock if it is equivalent to the previous one
...
Otherwise it can happen that we regularly switch back and forth between
clocks under certain circumstances for no good reason.
Also remove redundant comparison when comparing the steps removed between two
clocks.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5520 >
2023-11-02 09:11:09 +00:00
Kalev Lember
cfa1d036a1
openh264: Fail gracefully if openh264 encoder/decoder creation fails
...
This can happen with the dummy "noopenh264" library that the freedesktop
flatpak runtime ships, and Fedora is planning on shipping as well. In
both cases the dummy implementation gets replaced with the actual
openh264 library that's downloaded directly from Cisco, but just to be
on safe side, this patch makes it careful to check the return values to
avoid crashing if the underlying library hasn't been swapped out yet.
The patch is taken from freedesktop-sdk and was originally written by
Valentin David <valentin.david@codethink.co.uk>.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5581 >
2023-11-01 16:31:11 +00:00
Seungha Yang
033f98ad86
d3d11: Set MaxAnisotropy value for the best quality
...
... and use anisotropic filter without comparison, which is actually
intended one.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5580 >
2023-11-01 15:41:08 +00:00
Seungha Yang
0e9fdabb1b
d3d11converter: Simplify private struct ctor
...
Initialize transform matrix using memcpy
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5580 >
2023-11-01 15:41:08 +00:00