]> git.sesse.net Git - nageru/log
nageru
12 months agoRelease Nageru and Futatabi 2.2.1. 2.2.1
Steinar H. Gunderson [Mon, 17 Apr 2023 16:35:47 +0000 (18:35 +0200)]
Release Nageru and Futatabi 2.2.1.

12 months agoFix a buffer overrun when receiving 4K (or 8K etc.) FFmpeg streams.
Steinar H. Gunderson [Mon, 17 Apr 2023 16:19:46 +0000 (18:19 +0200)]
Fix a buffer overrun when receiving 4K (or 8K etc.) FFmpeg streams.

Of course, it would be better to just support this than to throw them away,
but at least we avoid a crash.

12 months agoUnify all the FRAME_SIZE #defines.
Steinar H. Gunderson [Mon, 17 Apr 2023 16:16:05 +0000 (18:16 +0200)]
Unify all the FRAME_SIZE #defines.

12 months agoImprove selection of software formats on hwaccel fallback.
Steinar H. Gunderson [Sun, 16 Apr 2023 08:35:13 +0000 (10:35 +0200)]
Improve selection of software formats on hwaccel fallback.

We assumed the first format was a software format, whereas in practice,
it would now seemingly be vdpau or cuda, causing multiple trips
through the selection function.

12 months agoAdd a warning when trying to hardware-decode H.264 Baseline streams.
Steinar H. Gunderson [Sat, 15 Apr 2023 23:49:51 +0000 (01:49 +0200)]
Add a warning when trying to hardware-decode H.264 Baseline streams.

12 months agoImprove error messaging when VAAPI/VDPAU pixel format selection fails.
Steinar H. Gunderson [Sat, 15 Apr 2023 23:31:44 +0000 (01:31 +0200)]
Improve error messaging when VAAPI/VDPAU pixel format selection fails.

12 months agoFix autodetection of VA-API H.264 encoders without the right profile support.
Steinar H. Gunderson [Sat, 15 Apr 2023 22:50:34 +0000 (00:50 +0200)]
Fix autodetection of VA-API H.264 encoders without the right profile support.

These would sometimes be chosen, and then error out when actually trying to use them.

12 months agoSupport decoding FFmpeg via VDPAU.
Steinar H. Gunderson [Sat, 15 Apr 2023 22:33:28 +0000 (00:33 +0200)]
Support decoding FFmpeg via VDPAU.

This fixes a bug where we hit the VAAPI-by-VDPAU emulation,
which is seemingly bad and just hangs.

Note that this means that if you have a VDPAU card with worse
format support than your VA-API card, you'll now lose some formats.

12 months agoBe more resilient to video decoding errors.
Steinar H. Gunderson [Sat, 15 Apr 2023 17:03:35 +0000 (19:03 +0200)]
Be more resilient to video decoding errors.

In particular, hardware decoding of SRT streams that don't start
on a keyframe can throw errors the first few frames, but then
recover afterwards.

12 months agoRename MAX_FPS to TYPICAL_FPS.
Steinar H. Gunderson [Thu, 13 Apr 2023 15:02:14 +0000 (17:02 +0200)]
Rename MAX_FPS to TYPICAL_FPS.

12 months agoFix crashes when the master clock goes faster than 60 Hz.
Steinar H. Gunderson [Thu, 13 Apr 2023 14:58:34 +0000 (16:58 +0200)]
Fix crashes when the master clock goes faster than 60 Hz.

This could happen in particularly when using a video as the master card;
e.g. Larix Broadcaster sometimes sends SRT with 60.06 fps or similar.
We solve it by completely rewriting how DTS is calculated when doing
Quick Sync encoding, which ended up being much simpler than what we
had before (and probably a lot more common)

This essentially removes the meaning of MAX_FPS; we could now easily
do e.g. 144 fps if needed.

12 months agoAdd some asserts to track down pts/dts problems before we get crashes back from FFmpe...
Steinar H. Gunderson [Wed, 12 Apr 2023 22:46:54 +0000 (00:46 +0200)]
Add some asserts to track down pts/dts problems before we get crashes back from FFmpeg way down the chain.

13 months agoWork around an issue with OpenGL on Wayland.
Steinar H. Gunderson [Sun, 19 Mar 2023 12:51:05 +0000 (13:51 +0100)]
Work around an issue with OpenGL on Wayland.

17 months agoTypo fix.
Steinar H. Gunderson [Thu, 17 Nov 2022 23:27:20 +0000 (00:27 +0100)]
Typo fix.

17 months agozita-resampler was mentioned twice in the dependency list.
Steinar H. Gunderson [Thu, 17 Nov 2022 23:26:39 +0000 (00:26 +0100)]
zita-resampler was mentioned twice in the dependency list.

17 months agoBump the version number.
Steinar H. Gunderson [Thu, 17 Nov 2022 23:26:21 +0000 (00:26 +0100)]
Bump the version number.

17 months agoRelease Nageru and Futatabi 2.2.0. 2.2.0
Steinar H. Gunderson [Mon, 14 Nov 2022 23:25:44 +0000 (00:25 +0100)]
Release Nageru and Futatabi 2.2.0.

17 months agoRemove the QCustomPlot dependency.
Steinar H. Gunderson [Mon, 14 Nov 2022 23:07:06 +0000 (00:07 +0100)]
Remove the QCustomPlot dependency.

This was becoming more a liability than an asset, so replace it with
some custom drawing code. It's not 100% as nice, but pretty close.

20 months agoUse VBR for AV1.
Steinar H. Gunderson [Fri, 5 Aug 2022 20:07:08 +0000 (22:07 +0200)]
Use VBR for AV1.

CBR isn't really ready yet; it requires low-delay mode, which limits
SVT-AV1 to three cores and also is pretty bad for quality in general.
(Also, its CBR isn't really CBR yet; see SVT-AV1 bug 1959.)

21 months agoChange ALSA output period size to 2048 samples.
Steinar H. Gunderson [Fri, 22 Jul 2022 15:50:03 +0000 (17:50 +0200)]
Change ALSA output period size to 2048 samples.

Anything less seemingly triggers a bug in the ALSA PulseAudio
plugin when used against PipeWire (audio just never starts playing).

It would be nice to generally have less latency here, but with the
current design based on large resampling queues, this isn't going
to be what causes it.

21 months agoUpdate the comment on get_scene() about the signals parameter.
Steinar H. Gunderson [Thu, 21 Jul 2022 23:05:58 +0000 (01:05 +0200)]
Update the comment on get_scene() about the signals parameter.

Users won't know what InputState is, and scene selection isn't
a thing anymore after the themes became a thing.

21 months agoMake the theme cardinality warnings more lenient.
Steinar H. Gunderson [Thu, 21 Jul 2022 23:02:12 +0000 (01:02 +0200)]
Make the theme cardinality warnings more lenient.

The default theme hits the 200 limit, so it felt a bit weird to warn on that.

21 months agoRemove the zerocopy warnings.
Steinar H. Gunderson [Thu, 21 Jul 2022 23:00:47 +0000 (01:00 +0200)]
Remove the zerocopy warnings.

It's unlikely that the user will be able to glean meaningful information
from this.

21 months agoExpose BlurEffect and UnsharpMaskEffect.
Steinar H. Gunderson [Thu, 21 Jul 2022 22:23:50 +0000 (00:23 +0200)]
Expose BlurEffect and UnsharpMaskEffect.

This was mostly so that people could sharpen the input if they wanted to
(even though unsharp mask is not the best sharpener). BlurEffect was added
mainly because it felt wrong that one could only use a compound effect and not
the underlying one.

21 months agoSmall consistency fix in --help.
Steinar H. Gunderson [Thu, 21 Jul 2022 21:48:15 +0000 (23:48 +0200)]
Small consistency fix in --help.

21 months agoRemove a now-obsolete reference in --help.
Steinar H. Gunderson [Thu, 21 Jul 2022 21:47:54 +0000 (23:47 +0200)]
Remove a now-obsolete reference in --help.

21 months agoTake --x264-speedcontrol-verbose out of the --help output.
Steinar H. Gunderson [Thu, 21 Jul 2022 21:46:47 +0000 (23:46 +0200)]
Take --x264-speedcontrol-verbose out of the --help output.

21 months agoTake --no-flush-pbos out of the --help output.
Steinar H. Gunderson [Thu, 21 Jul 2022 21:44:17 +0000 (23:44 +0200)]
Take --no-flush-pbos out of the --help output.

21 months agoRemove the x264 VBV settings.
Steinar H. Gunderson [Thu, 21 Jul 2022 21:42:58 +0000 (23:42 +0200)]
Remove the x264 VBV settings.

The user shouldn't generally muck around with this, so remove them.

21 months agoRemove the --http-uncompressed-video flag.
Steinar H. Gunderson [Thu, 21 Jul 2022 21:39:19 +0000 (23:39 +0200)]
Remove the --http-uncompressed-video flag.

This is probably unused; it is so expensive to send uncompressed data
across sockets, and it was made at a time where it was envisioned
that we do most of our encoding externally.

21 months agoCollapse all the 10-bit flags.
Steinar H. Gunderson [Thu, 21 Jul 2022 21:35:57 +0000 (23:35 +0200)]
Collapse all the 10-bit flags.

It's unlikely that a user would want 10-bit input but not 10-bit-output,
or the other way around. Having only one flag simplifies things for the
user (although not much in the code, as we're already fp16 internally
anyway).

21 months agoAdd support for 10-bit AV1 encoding.
Steinar H. Gunderson [Thu, 21 Jul 2022 21:02:05 +0000 (23:02 +0200)]
Add support for 10-bit AV1 encoding.

21 months agoFix a read-past-the-end in av_write_header(); extradata must have AV_INPUT_BUFFER_PAD...
Steinar H. Gunderson [Thu, 21 Jul 2022 21:01:26 +0000 (23:01 +0200)]
Fix a read-past-the-end in av_write_header(); extradata must have AV_INPUT_BUFFER_PADDING_SIZE padding as per avformat.h comments.

21 months agoDrop the SSE2 fastpath.
Steinar H. Gunderson [Thu, 21 Jul 2022 15:40:58 +0000 (17:40 +0200)]
Drop the SSE2 fastpath.

Pre-Haswell CPUs are not really worth optimizing for anymore.

21 months agoSupport --record-x264-video with AV1 HTTP output.
Steinar H. Gunderson [Thu, 21 Jul 2022 15:12:09 +0000 (17:12 +0200)]
Support --record-x264-video with AV1 HTTP output.

21 months agoSupport AV1 streaming over HTTP, via SVT-AV1.
Steinar H. Gunderson [Thu, 21 Jul 2022 14:45:02 +0000 (16:45 +0200)]
Support AV1 streaming over HTTP, via SVT-AV1.

This is optional, and pretty rough currently. But it might be interesting
for certain use cases, in particular around 1080p or 4K streaming.

21 months agoUpdate README for Debian bullseye.
Steinar H. Gunderson [Thu, 21 Jul 2022 11:35:09 +0000 (13:35 +0200)]
Update README for Debian bullseye.

21 months agoSlightly more verbose error messages in Mux when a libavformat error happens.
Steinar H. Gunderson [Tue, 19 Jul 2022 21:24:55 +0000 (23:24 +0200)]
Slightly more verbose error messages in Mux when a libavformat error happens.

21 months agoMake an interface to wrap X264Encoder.
Steinar H. Gunderson [Tue, 19 Jul 2022 12:21:13 +0000 (14:21 +0200)]
Make an interface to wrap X264Encoder.

This will be useful when adding more video codecs later.

2 years agoUpdate CEF file names (this is compatible with CEF 100).
Steinar H. Gunderson [Sun, 17 Apr 2022 18:46:38 +0000 (20:46 +0200)]
Update CEF file names (this is compatible with CEF 100).

2 years agoRemove the web_security flag for newer CEF, since it is no longer available (https...
Steinar H. Gunderson [Sun, 17 Apr 2022 18:45:19 +0000 (20:45 +0200)]
Remove the web_security flag for newer CEF, since it is no longer available (https://bitbucket.org/chromiumembedded/cef/issues/3058/remove-cefbrowsersettingsweb_security).

2 years agoAdd explicit check arguments to run_command, to fix a Meson warning.
Steinar H. Gunderson [Sun, 17 Apr 2022 18:23:58 +0000 (20:23 +0200)]
Add explicit check arguments to run_command, to fix a Meson warning.

2 years agoFix (?) the mode scanning.
Steinar H. Gunderson [Sun, 17 Apr 2022 15:12:45 +0000 (17:12 +0200)]
Fix (?) the mode scanning.

2 years agoBump the version number.
Steinar H. Gunderson [Sun, 17 Apr 2022 15:12:40 +0000 (17:12 +0200)]
Bump the version number.

2 years agoRelease Nageru and Futatabi 2.1.0. 2.1.0
Steinar H. Gunderson [Sun, 6 Feb 2022 15:09:11 +0000 (16:09 +0100)]
Release Nageru and Futatabi 2.1.0.

2 years agoFix compilation with FFmpeg _before_ version 5.0.
Steinar H. Gunderson [Sun, 6 Feb 2022 14:41:27 +0000 (15:41 +0100)]
Fix compilation with FFmpeg _before_ version 5.0.

2 years agoFix compilation with FFmpeg 5.0.
Steinar H. Gunderson [Mon, 31 Jan 2022 21:51:26 +0000 (22:51 +0100)]
Fix compilation with FFmpeg 5.0.

2 years agoFix an issue where scrubbing in Futatabi could lock up if there were no inputs going...
Steinar H. Gunderson [Thu, 14 Oct 2021 19:29:58 +0000 (21:29 +0200)]
Fix an issue where scrubbing in Futatabi could lock up if there were no inputs going, with certain GL drivers.

2 years agoFix white balance with non-VAAPI decoding.
Plastkast user [Fri, 8 Oct 2021 17:51:20 +0000 (19:51 +0200)]
Fix white balance with non-VAAPI decoding.

2 years agoSupport unsynchronized HDMI/SDI output.
Steinar H. Gunderson [Sat, 2 Oct 2021 14:54:58 +0000 (16:54 +0200)]
Support unsynchronized HDMI/SDI output.

This is for if you want just a monitor output without synchronizing
your entire stream chain to the output card (ie., you want to keep
some other camera as the master). Sound support is untested, and is
probably going to crackle a fair bit.

There's no GUI support for changing this currently.

2 years agoYet another crash fix in changing output cards.
Steinar H. Gunderson [Sat, 2 Oct 2021 14:17:35 +0000 (16:17 +0200)]
Yet another crash fix in changing output cards.

This got broken when we started sharing the IDeckLinkInput interface
for the driver bugfix workaround.

2 years agoFix mode-switching on output cards.
Steinar H. Gunderson [Sat, 2 Oct 2021 14:12:31 +0000 (16:12 +0200)]
Fix mode-switching on output cards.

2 years agoNewer drivers can seemingly send completions out-of-order on shutdown, so adjust...
Steinar H. Gunderson [Sat, 2 Oct 2021 14:12:24 +0000 (16:12 +0200)]
Newer drivers can seemingly send completions out-of-order on shutdown, so adjust asserts accordingly.

2 years agoFix a typo (hopefully).
Steinar H. Gunderson [Sat, 2 Oct 2021 14:06:28 +0000 (16:06 +0200)]
Fix a typo (hopefully).

2 years agoFix a wrong assertion.
Steinar H. Gunderson [Sat, 2 Oct 2021 14:01:42 +0000 (16:01 +0200)]
Fix a wrong assertion.

2 years agoSupport sending a separate x264 encode to disk.
Steinar H. Gunderson [Sun, 26 Sep 2021 18:36:48 +0000 (20:36 +0200)]
Support sending a separate x264 encode to disk.

This is useful for machines that don't have Quick Sync,
but where you want to have an archival copy on disk
in higher quality than what you streamed out.

2 years agoRelease Nageru and Futatabi 2.0.2. 2.0.2
Steinar H. Gunderson [Fri, 3 Sep 2021 16:44:26 +0000 (18:44 +0200)]
Release Nageru and Futatabi 2.0.2.

2 years agoBump bmusb submodule (no real changes for us).
Steinar H. Gunderson [Fri, 3 Sep 2021 16:12:51 +0000 (18:12 +0200)]
Bump bmusb submodule (no real changes for us).

2 years agoFix an audio encoder issue with newer FFmpeg.
Steinar H. Gunderson [Fri, 3 Sep 2021 16:10:46 +0000 (18:10 +0200)]
Fix an audio encoder issue with newer FFmpeg.

2 years agoFix DeckLink capture using the 11.7 or newer drivers.
Steinar H. Gunderson [Sun, 15 Aug 2021 13:06:34 +0000 (15:06 +0200)]
Fix DeckLink capture using the 11.7 or newer drivers.

Reported by Marcus Nilsen.

3 years agoAdd an explicit dependency om libdrm.
Steinar H. Gunderson [Mon, 5 Apr 2021 16:06:32 +0000 (18:06 +0200)]
Add an explicit dependency om libdrm.

3 years agoAdd some missing FFmpeg dependencies in shared/.
Steinar H. Gunderson [Mon, 5 Apr 2021 15:58:22 +0000 (17:58 +0200)]
Add some missing FFmpeg dependencies in shared/.

Reported by Einar Jørgen Haraldseid.

3 years agoFix a Qt deprecation warning.
Steinar H. Gunderson [Mon, 5 Apr 2021 15:56:42 +0000 (17:56 +0200)]
Fix a Qt deprecation warning.

3 years agoFix a Qt deprecation on pixmap().
Steinar H. Gunderson [Mon, 5 Apr 2021 15:51:51 +0000 (17:51 +0200)]
Fix a Qt deprecation on pixmap().

3 years agoStop decoding video/audio in FFmpegCapture if we are not going to use the decoded...
Steinar H. Gunderson [Sun, 4 Apr 2021 11:41:29 +0000 (13:41 +0200)]
Stop decoding video/audio in FFmpegCapture if we are not going to use the decoded information anyway.

3 years agoPass through non-ADTS data (used when transcoding from MP4 instead of MPEG-TS).
Steinar H. Gunderson [Sun, 4 Apr 2021 13:23:32 +0000 (15:23 +0200)]
Pass through non-ADTS data (used when transcoding from MP4 instead of MPEG-TS).

3 years agoMake kaeru insert the aac_adtstoasc filter when needed.
Steinar H. Gunderson [Sun, 4 Apr 2021 10:35:17 +0000 (12:35 +0200)]
Make kaeru insert the aac_adtstoasc filter when needed.

This seemingly fixes mp4 + aac passthrough with no reencoding.

3 years agoAdd a --no-transcode-video flag to Kaeru.
Steinar H. Gunderson [Sun, 4 Apr 2021 09:55:23 +0000 (11:55 +0200)]
Add a --no-transcode-video flag to Kaeru.

This is useful primarily if you want Kaeru to rewrap the stream into
Metacube (for cubemap) and do nothing else with it. Only H.264
is supported for now, since everything else assumes that.

Currently, we only really support --http-mux=mpegts; other muxes seem
to have issues.

3 years agoFix a bug where FFmpegCapture would get the wrong height, causing bogus scaling.
Steinar H. Gunderson [Sun, 4 Apr 2021 09:22:39 +0000 (11:22 +0200)]
Fix a bug where FFmpegCapture would get the wrong height, causing bogus scaling.

3 years agoReset jitter history when frame rate changes.
Steinar H. Gunderson [Sun, 30 Aug 2020 22:25:40 +0000 (00:25 +0200)]
Reset jitter history when frame rate changes.

This is seemingly especially important when we have input format autodetect
and PAL input rates; it gives us one 59.97 fps frame, then a delay as the
card autodetects and resyncs (might be as much as 30–50 ms; not entirely sure),
and then a steady stream of 50 fps frames. This then causes us to overestimate
the jitter by a lot until we get more than 1000 frames and can reject that
very first event as the outlier it is.

3 years agoFix an oversight in JitterHistory::clear().
Steinar H. Gunderson [Sun, 30 Aug 2020 21:01:46 +0000 (23:01 +0200)]
Fix an oversight in JitterHistory::clear().

3 years agoIn DeckLinkOutput, keep a list of all the scheduled frames instead of just a count.
Steinar H. Gunderson [Sun, 30 Aug 2020 17:23:43 +0000 (19:23 +0200)]
In DeckLinkOutput, keep a list of all the scheduled frames instead of just a count.

This will be important when we want to track frames the driver inserts
on our behalf; we'll need to be able to adjust their estimated pts then.

3 years agoClarify a parameter name to update_policy().
Steinar H. Gunderson [Sun, 30 Aug 2020 13:45:07 +0000 (15:45 +0200)]
Clarify a parameter name to update_policy().

3 years agoUpdate README; Debian ships libsrt-gnutls-dev now.
Steinar H. Gunderson [Sun, 6 Dec 2020 17:21:51 +0000 (18:21 +0100)]
Update README; Debian ships libsrt-gnutls-dev now.

3 years agoLink to libcef.so in the current directory.
Steinar H. Gunderson [Mon, 9 Nov 2020 19:24:25 +0000 (20:24 +0100)]
Link to libcef.so in the current directory.

Newer CEF hard-codes that icudtl.dat _must_ be in the same directory
as libcef.so, but the release tarballs have a different structure,
so this fails. This should be fine on installs, but it won't work
for running Nageru from the build directory. Search for the library
in the local directory instead, where we have a symlink. This makes
the build rpath point to ., which makes sure icudtl.dat is picked up
from the other symlink.

3 years agoStop using the deprecated srt_socket().
Steinar H. Gunderson [Sat, 31 Oct 2020 16:21:26 +0000 (17:21 +0100)]
Stop using the deprecated srt_socket().

3 years agoSmall indent fix.
Steinar H. Gunderson [Wed, 26 Aug 2020 22:17:42 +0000 (00:17 +0200)]
Small indent fix.

3 years agoMove Jitterhistory / QueueLengthPolicy into a separate header file.
Steinar H. Gunderson [Tue, 25 Aug 2020 22:06:12 +0000 (00:06 +0200)]
Move Jitterhistory / QueueLengthPolicy into a separate header file.

3 years agoFix a bug; 60.00 fps would never be autoselected for output. (Then again, 59.97 shoul...
Steinar H. Gunderson [Mon, 24 Aug 2020 21:08:54 +0000 (23:08 +0200)]
Fix a bug; 60.00 fps would never be autoselected for output. (Then again, 59.97 should always exist.)

3 years agoQueueLengthPolicy::reset() does nothing anymore, so just remove it.
Steinar H. Gunderson [Sun, 23 Aug 2020 19:18:19 +0000 (21:18 +0200)]
QueueLengthPolicy::reset() does nothing anymore, so just remove it.

In its place, what we often want is to clear the associated jitter history,
so do that instead.

3 years agoRelease Nageru and Futatabi 2.0.1. 2.0.1
Steinar H. Gunderson [Thu, 9 Jul 2020 07:56:24 +0000 (09:56 +0200)]
Release Nageru and Futatabi 2.0.1.

3 years agoUnbreak compilation with libmicrohttpd 0.9.71.
Steinar H. Gunderson [Wed, 8 Jul 2020 18:49:21 +0000 (20:49 +0200)]
Unbreak compilation with libmicrohttpd 0.9.71.

3 years agoMake Futatabi look for multicam.mp4, not multiangle.mp4.
Steinar H. Gunderson [Mon, 8 Jun 2020 21:31:05 +0000 (23:31 +0200)]
Make Futatabi look for multicam.mp4, not multiangle.mp4.

The use of multiangle.mp4 is confusing when the HTTP endpoint is called
multicam.mp4.

3 years agoSkip DeckLink cards marked as inactive.
Steinar H. Gunderson [Wed, 3 Jun 2020 21:45:02 +0000 (23:45 +0200)]
Skip DeckLink cards marked as inactive.

This prevents a crash on startup with e.g. Duo 2 in the default mode,
which disables connectors 3 and 4 by default (well, uses them for dual link).

3 years agoUpgrade DeckLink SDK to 10.11.4.
Steinar H. Gunderson [Wed, 3 Jun 2020 21:40:37 +0000 (23:40 +0200)]
Upgrade DeckLink SDK to 10.11.4.

This is the oldest version that supports the duplex information
used in the next patch.

3 years agoRelease Nageru and Futatabi 2.0.0. 2.0.0
Steinar H. Gunderson [Tue, 2 Jun 2020 08:05:32 +0000 (10:05 +0200)]
Release Nageru and Futatabi 2.0.0.

3 years agoUpdate README for libsrt.
Steinar H. Gunderson [Tue, 2 Jun 2020 08:10:48 +0000 (10:10 +0200)]
Update README for libsrt.

3 years agoFix FFmpeg frame rate calculation with VA-API acceleration.
Steinar H. Gunderson [Mon, 1 Jun 2020 21:45:54 +0000 (23:45 +0200)]
Fix FFmpeg frame rate calculation with VA-API acceleration.

3 years agoSupport decoding FFmpeg videos via VA-API.
Steinar H. Gunderson [Mon, 1 Jun 2020 20:36:58 +0000 (22:36 +0200)]
Support decoding FFmpeg videos via VA-API.

This is more relevant now that having multiple SRT cameras can lead to
decoding lots of videos at the same time. It would be possible to support
other mechanisms (e.g. VDPAU) in FFmpeg depending on what FFmpeg is
built against, but it's a bit cumbersome to do, so this is VA-API only for now.

3 years agoWhen hot-unplugging capture cards, actually allow making them inactive.
Steinar H. Gunderson [Mon, 1 Jun 2020 19:38:16 +0000 (21:38 +0200)]
When hot-unplugging capture cards, actually allow making them inactive.

This was an oversight; removed cards would always be replaced by fake ones.
However, this exposed a few tricky issues, like that the master card can
go away, that needed to be dealt with.

3 years agoIncrease the master card timeout to 200 ms.
Steinar H. Gunderson [Mon, 1 Jun 2020 19:37:03 +0000 (21:37 +0200)]
Increase the master card timeout to 200 ms.

5 fps is pretty crappy, but evidently, 100 ms happens with SRT cards
all the time even when nothing is wrong. Perhaps a situation with
B-frames at 30 fps? I haven't really checked.

3 years agoWhen creating a fake master card frame, create some fake silence with it.
Steinar H. Gunderson [Mon, 1 Jun 2020 19:31:48 +0000 (21:31 +0200)]
When creating a fake master card frame, create some fake silence with it.

3 years agoWhen the master card times out, print a message.
Steinar H. Gunderson [Mon, 1 Jun 2020 19:29:46 +0000 (21:29 +0200)]
When the master card times out, print a message.

3 years agoSmall stylistic cleanup.
Steinar H. Gunderson [Mon, 1 Jun 2020 19:29:04 +0000 (21:29 +0200)]
Small stylistic cleanup.

3 years agoWhen hotplugging cards, reset resampler only after the device name and number of...
Steinar H. Gunderson [Mon, 1 Jun 2020 19:24:43 +0000 (21:24 +0200)]
When hotplugging cards, reset resampler only after the device name and number of channels are set.

3 years agoIf there is no frame from the master card after 100 ms, tick anyway.
Steinar H. Gunderson [Mon, 1 Jun 2020 18:01:43 +0000 (20:01 +0200)]
If there is no frame from the master card after 100 ms, tick anyway.

This is especially relevant now that SRT cards can be the master card.

3 years agoFix a deadlock exposed by the previous patch.
Steinar H. Gunderson [Mon, 1 Jun 2020 18:01:37 +0000 (20:01 +0200)]
Fix a deadlock exposed by the previous patch.

3 years agoFix a missing lock around handle_hotplugged_cards().
Steinar H. Gunderson [Mon, 1 Jun 2020 16:17:34 +0000 (18:17 +0200)]
Fix a missing lock around handle_hotplugged_cards().

3 years agoRefresh mainwindow.ui in newer Qt Creator.
Steinar H. Gunderson [Mon, 1 Jun 2020 10:31:03 +0000 (12:31 +0200)]
Refresh mainwindow.ui in newer Qt Creator.

The changes seem inconsequential, but it's nice to keep future diffs down.

3 years agoAdd a UI toggle to turn off SRT at runtime.
Steinar H. Gunderson [Mon, 1 Jun 2020 10:30:11 +0000 (12:30 +0200)]
Add a UI toggle to turn off SRT at runtime.

This is both useful for discoveirng the feature, and also should you be
on a hostile network where suddenly someone connects to you when you
don't want to. Existing connections will remain just fine.