nageru
2 years agoFix an issue where the mixer lagging too much behind CEF would cause us to display... cef
Steinar H. Gunderson [Mon, 26 Feb 2018 17:54:01 +0000 (18:54 +0100)]
Fix an issue where the mixer lagging too much behind CEF would cause us to display an old frame forever.

2 years agoWhen asked to execute JavaScript, defer until the current page load is done.
Steinar H. Gunderson [Sun, 25 Feb 2018 22:30:49 +0000 (23:30 +0100)]
When asked to execute JavaScript, defer until the current page load is done.

2 years agoUpdate the README for CEF.
Steinar H. Gunderson [Sun, 25 Feb 2018 17:40:20 +0000 (18:40 +0100)]
Update the README for CEF.

2 years agoCopy and install CEF pack dependencies together with Nageru.
Steinar H. Gunderson [Sun, 25 Feb 2018 17:36:29 +0000 (18:36 +0100)]
Copy and install CEF pack dependencies together with Nageru.

2 years agoMake compiling with CEF optional.
Steinar H. Gunderson [Sun, 25 Feb 2018 14:49:37 +0000 (15:49 +0100)]
Make compiling with CEF optional.

2 years agoImplement HTMLInput::execute_javascript_async().
Steinar H. Gunderson [Sun, 25 Feb 2018 15:26:58 +0000 (16:26 +0100)]
Implement HTMLInput::execute_javascript_async().

2 years agoImplement HTMLInput::set_max_fps().
Steinar H. Gunderson [Sun, 25 Feb 2018 14:33:50 +0000 (15:33 +0100)]
Implement HTMLInput::set_max_fps().

2 years agoImplement HTMLInput::reload().
Steinar H. Gunderson [Sun, 25 Feb 2018 14:21:52 +0000 (15:21 +0100)]
Implement HTMLInput::reload().

2 years agoImplement HTMLInput::set_url().
Steinar H. Gunderson [Sun, 25 Feb 2018 12:45:43 +0000 (13:45 +0100)]
Implement HTMLInput::set_url().

2 years agoImplement basic support for CEF.
Steinar H. Gunderson [Sat, 24 Feb 2018 17:49:36 +0000 (18:49 +0100)]
Implement basic support for CEF.

Having CEF directly into the process is less cumbersome than calling out
to CasparCG over a pipe, and typically yields higher performance.

2 years agoAdd ui_analyzer.h to .gitignore.
Steinar H. Gunderson [Sat, 24 Feb 2018 17:49:59 +0000 (18:49 +0100)]
Add ui_analyzer.h to .gitignore.

2 years agoAdd kaeru to .gitignore.
Steinar H. Gunderson [Sat, 24 Feb 2018 00:08:32 +0000 (01:08 +0100)]
Add kaeru to .gitignore.

2 years agoFix a stray debugging printf.
Steinar H. Gunderson [Mon, 19 Feb 2018 16:48:52 +0000 (17:48 +0100)]
Fix a stray debugging printf.

2 years agoCreate QApplication after setting the OpenGL default format. Fixes a warning in newer Qt.
Steinar H. Gunderson [Mon, 19 Feb 2018 08:39:35 +0000 (09:39 +0100)]
Create QApplication after setting the OpenGL default format. Fixes a warning in newer Qt.

2 years agoDo not try to subscribe to our own MIDI port; causes some warnings on the console.
Steinar H. Gunderson [Mon, 19 Feb 2018 08:38:01 +0000 (09:38 +0100)]
Do not try to subscribe to our own MIDI port; causes some warnings on the console.

2 years agoFix a dependency.
Steinar H. Gunderson [Mon, 19 Feb 2018 08:17:00 +0000 (09:17 +0100)]
Fix a dependency.

2 years agoAdd a CORS policy to the channel endpoints, so that external applications can query...
Steinar H. Gunderson [Sun, 18 Feb 2018 19:08:45 +0000 (20:08 +0100)]
Add a CORS policy to the channel endpoints, so that external applications can query the tally light.

2 years agoEnable the video grid display for simple video mode, too.
Steinar H. Gunderson [Sun, 18 Feb 2018 18:12:38 +0000 (19:12 +0100)]
Enable the video grid display for simple video mode, too.

2 years agoSupport a video grid view (ie., no audio controls at all) as third audio display...
Steinar H. Gunderson [Sun, 18 Feb 2018 09:14:56 +0000 (10:14 +0100)]
Support a video grid view (ie., no audio controls at all) as third audio display option.

2 years agoStop trying to re-probe ALSA cards if they are not capture cards. Reduces the debug...
Steinar H. Gunderson [Sun, 18 Feb 2018 10:13:35 +0000 (11:13 +0100)]
Stop trying to re-probe ALSA cards if they are not capture cards. Reduces the debug spew a bit.

2 years agoAdd an HTTP endpoint for enumerating channels and one for getting only their colors...
Steinar H. Gunderson [Thu, 15 Feb 2018 18:23:46 +0000 (19:23 +0100)]
Add an HTTP endpoint for enumerating channels and one for getting only their colors. Intended for remote tally applications.

2 years agoRelease Nageru 1.6.4. 1.6.4
Steinar H. Gunderson [Thu, 25 Jan 2018 17:25:11 +0000 (18:25 +0100)]
Release Nageru 1.6.4.

2 years agoAPI fix for the upcoming FFmpeg 3.5 release.
Steinar H. Gunderson [Wed, 24 Jan 2018 23:31:24 +0000 (00:31 +0100)]
API fix for the upcoming FFmpeg 3.5 release.

2 years agoFix an issue where we'd count jitter history from the wrong side.
Steinar H. Gunderson [Fri, 10 Nov 2017 17:23:26 +0000 (18:23 +0100)]
Fix an issue where we'd count jitter history from the wrong side.

Would not only give horribly wrong results, but also consume tons
of CPU power.

2 years agoCut a few more allocations.
Steinar H. Gunderson [Fri, 10 Nov 2017 17:05:11 +0000 (18:05 +0100)]
Cut a few more allocations.

2 years agoSwitch to LuaJIT; faster, less allocation-heavy and no real downsides.
Steinar H. Gunderson [Fri, 10 Nov 2017 16:19:34 +0000 (17:19 +0100)]
Switch to LuaJIT; faster, less allocation-heavy and no real downsides.

2 years agoFix a crash if exiting while we are still trying to re-find an ALSA card from a loade...
Steinar H. Gunderson [Thu, 9 Nov 2017 20:01:13 +0000 (21:01 +0100)]
Fix a crash if exiting while we are still trying to re-find an ALSA card from a loaded mapping.

2 years agoRemove some random unneeded memory allocations.
Steinar H. Gunderson [Thu, 9 Nov 2017 20:00:03 +0000 (21:00 +0100)]
Remove some random unneeded memory allocations.

2 years agoCut some unneccessary allocations.
Steinar H. Gunderson [Thu, 9 Nov 2017 18:49:46 +0000 (19:49 +0100)]
Cut some unneccessary allocations.

2 years agoFix a leak when streaming. Requires FFmpeg 3.3, though. (See FFmpeg bug #6520.)
Steinar H. Gunderson [Thu, 9 Nov 2017 16:44:52 +0000 (17:44 +0100)]
Fix a leak when streaming. Requires FFmpeg 3.3, though. (See FFmpeg bug #6520.)

2 years agoGive a warning before quitting if there are clients connected.
Steinar H. Gunderson [Wed, 8 Nov 2017 21:30:03 +0000 (22:30 +0100)]
Give a warning before quitting if there are clients connected.

2 years agoFix so that you can't right-click on non-signal channels anymore.
Steinar H. Gunderson [Wed, 8 Nov 2017 19:54:30 +0000 (20:54 +0100)]
Fix so that you can't right-click on non-signal channels anymore.

Was broken during the making of the frame analyzer in 1.6.0.

2 years agoRelease Nageru 1.6.3. 1.6.3
Steinar H. Gunderson [Wed, 8 Nov 2017 17:49:33 +0000 (18:49 +0100)]
Release Nageru 1.6.3.

2 years agoPut the quick-cut keys behind a command-line flag; I hate more switches, but they...
Steinar H. Gunderson [Sun, 29 Oct 2017 14:08:51 +0000 (15:08 +0100)]
Put the quick-cut keys behind a command-line flag; I hate more switches, but they are just too easy to hit during normal operation.

2 years agoMake the HTTP port settable.
Steinar H. Gunderson [Sat, 28 Oct 2017 11:44:27 +0000 (13:44 +0200)]
Make the HTTP port settable.

2 years agoFix compilation with older FFmpeg.
Steinar H. Gunderson [Sat, 28 Oct 2017 11:01:15 +0000 (13:01 +0200)]
Fix compilation with older FFmpeg.

2 years agoAdd a missing #include.
Steinar H. Gunderson [Sat, 28 Oct 2017 11:00:16 +0000 (13:00 +0200)]
Add a missing #include.

2 years agoDeal with FFmpeg returning unknown audio channel layouts.
Steinar H. Gunderson [Wed, 25 Oct 2017 18:47:58 +0000 (20:47 +0200)]
Deal with FFmpeg returning unknown audio channel layouts.

2 years agoAdd back support for input-only DeckLink cards.
Steinar H. Gunderson [Wed, 25 Oct 2017 18:08:05 +0000 (20:08 +0200)]
Add back support for input-only DeckLink cards.

2 years agoFix an issue with Quick Sync in newer VA-API.
Steinar H. Gunderson [Fri, 20 Oct 2017 22:36:15 +0000 (00:36 +0200)]
Fix an issue with Quick Sync in newer VA-API.

2 years agoAdd quick-cut keys (Q, W, E, etc.) below the preview keys.
Steinar H. Gunderson [Fri, 20 Oct 2017 22:29:12 +0000 (00:29 +0200)]
Add quick-cut keys (Q, W, E, etc.) below the preview keys.

2 years agoSpecify sRGB transfer characteristics in the x264 output, too.
Steinar H. Gunderson [Sun, 20 Aug 2017 19:07:21 +0000 (21:07 +0200)]
Specify sRGB transfer characteristics in the x264 output, too.

2 years agosetChecked() takes a bool, not an enum.
Steinar H. Gunderson [Tue, 8 Aug 2017 16:05:06 +0000 (18:05 +0200)]
setChecked() takes a bool, not an enum.

2 years agoSave a glGetIntegerv() call every time we draw.
Steinar H. Gunderson [Tue, 8 Aug 2017 16:04:38 +0000 (18:04 +0200)]
Save a glGetIntegerv() call every time we draw.

2 years agoSpecify sRGB transfer characteristics in the H.264 files (added in newer versions...
Steinar H. Gunderson [Mon, 7 Aug 2017 19:31:26 +0000 (21:31 +0200)]
Specify sRGB transfer characteristics in the H.264 files (added in newer versions of H.264).

2 years agoConvert some NULL instances to nullptr.
Steinar H. Gunderson [Mon, 7 Aug 2017 19:30:54 +0000 (21:30 +0200)]
Convert some NULL instances to nullptr.

2 years agoRework the x264 speedcontrol presets.
Steinar H. Gunderson [Fri, 21 Jul 2017 11:11:36 +0000 (13:11 +0200)]
Rework the x264 speedcontrol presets.

Since speedcontrol was made, x264 has adjusted its “slower” preset,
so follow suit. This influences some of the other presets as well.

Unfortunately, I couldn't reproduce my previous results using
“Tears of Steel”, and the original scripts to do so have been lost;
when testing, the SSIM improves way too slowly. Switch to
“Elephants Dream” instead, even though --trellis 1 seems to yield
a slight SSIM _decrease_ for this clip, and check in the new scripts
to increase reproducibility of results. The measurements are on the
same machine. The timings have shifted around a bit (it looks like
the two fastest modes are faster, relatively speaking); potentially
due to x264 optimizations, but more likely due to differing content
and bitrate flags.

This is measured at the x264 version which is in Debian stretch,
which is r2748 (git 97eaef2).

2 years agoRelease Nageru 1.6.2. 1.6.2
Steinar H. Gunderson [Sun, 16 Jul 2017 01:35:49 +0000 (03:35 +0200)]
Release Nageru 1.6.2.

2 years agoSet the correct sample rate in the returned audio format if an ALSA device chose...
Steinar H. Gunderson [Sun, 16 Jul 2017 01:34:37 +0000 (03:34 +0200)]
Set the correct sample rate in the returned audio format if an ALSA device chose a different rate than the one we asked for.

2 years agoProperly flush the codecs when rewinding.
Steinar H. Gunderson [Wed, 12 Jul 2017 21:53:18 +0000 (23:53 +0200)]
Properly flush the codecs when rewinding.

2 years agoCorrect the signal name in a Kaeru message.
Steinar H. Gunderson [Tue, 11 Jul 2017 19:55:25 +0000 (21:55 +0200)]
Correct the signal name in a Kaeru message.

2 years agoUnbreak --no-audio-transcode.
Steinar H. Gunderson [Mon, 10 Jul 2017 22:32:33 +0000 (00:32 +0200)]
Unbreak --no-audio-transcode.

2 years agoFix some potential memory leaks in FFmpegCapture.
Steinar H. Gunderson [Mon, 10 Jul 2017 21:15:42 +0000 (23:15 +0200)]
Fix some potential memory leaks in FFmpegCapture.

2 years agoGive Kaeru slightly cleaner shutdown on Ctrl-C.
Steinar H. Gunderson [Mon, 10 Jul 2017 16:10:51 +0000 (18:10 +0200)]
Give Kaeru slightly cleaner shutdown on Ctrl-C.

2 years agoUpdate the x264 speedcontrol buffer size metric when the buffer changes.
Steinar H. Gunderson [Mon, 10 Jul 2017 11:35:19 +0000 (13:35 +0200)]
Update the x264 speedcontrol buffer size metric when the buffer changes.

2 years agoFactor the basic metrics (memory, uptime, etc.) into a separate class, so that Kaeru...
Steinar H. Gunderson [Mon, 10 Jul 2017 10:36:39 +0000 (12:36 +0200)]
Factor the basic metrics (memory, uptime, etc.) into a separate class, so that Kaeru can also use it.

2 years agoFix frame duration calculation in Kaeru; could throw speedcontrol off.
Steinar H. Gunderson [Mon, 10 Jul 2017 10:07:05 +0000 (12:07 +0200)]
Fix frame duration calculation in Kaeru; could throw speedcontrol off.

2 years agoAdd latency metrics to Kaeru.
Steinar H. Gunderson [Sun, 9 Jul 2017 13:37:16 +0000 (15:37 +0200)]
Add latency metrics to Kaeru.

2 years agoAdd mux metrics to Kaeru.
Steinar H. Gunderson [Sun, 9 Jul 2017 13:25:06 +0000 (15:25 +0200)]
Add mux metrics to Kaeru.

2 years agoAdd support for adjusting the x264 bitrate in Kaeru through sending SIGUSR1 and SIGUSR2.
Steinar H. Gunderson [Sun, 9 Jul 2017 13:22:06 +0000 (15:22 +0200)]
Add support for adjusting the x264 bitrate in Kaeru through sending SIGUSR1 and SIGUSR2.

2 years agoFix the kanji in Kaeru.
Steinar H. Gunderson [Sun, 9 Jul 2017 13:11:33 +0000 (15:11 +0200)]
Fix the kanji in Kaeru.

2 years agoUpdate the feature list, a bit overdue.
Steinar H. Gunderson [Sun, 9 Jul 2017 09:11:13 +0000 (11:11 +0200)]
Update the feature list, a bit overdue.

2 years agoRelease Nageru 1.6.1. 1.6.1
Steinar H. Gunderson [Sat, 8 Jul 2017 23:45:59 +0000 (01:45 +0200)]
Release Nageru 1.6.1.

2 years agoInclude an example Grafana dashboard.
Steinar H. Gunderson [Sat, 8 Jul 2017 23:45:02 +0000 (01:45 +0200)]
Include an example Grafana dashboard.

2 years agoInstall kaeru on make install.
Steinar H. Gunderson [Sat, 8 Jul 2017 23:43:17 +0000 (01:43 +0200)]
Install kaeru on make install.

2 years agoBuild Kaeru by default.
Steinar H. Gunderson [Sat, 8 Jul 2017 22:46:58 +0000 (00:46 +0200)]
Build Kaeru by default.

2 years agoAdd support for transcoding the audio in Kaeru (on by default).
Steinar H. Gunderson [Sat, 8 Jul 2017 16:43:39 +0000 (18:43 +0200)]
Add support for transcoding the audio in Kaeru (on by default).

2 years agoAdd support to FFmpegCapture to decode the audio.
Steinar H. Gunderson [Sat, 8 Jul 2017 11:45:13 +0000 (13:45 +0200)]
Add support to FFmpegCapture to decode the audio.

2 years agoInitial check-in of Kaeru, a simple transcoder based on Nageru code.
Steinar H. Gunderson [Fri, 7 Jul 2017 16:02:04 +0000 (18:02 +0200)]
Initial check-in of Kaeru, a simple transcoder based on Nageru code.

2 years agoFix a problem where we could wait for a very long time for the first frame on FFmpeg...
Steinar H. Gunderson [Thu, 6 Jul 2017 22:25:48 +0000 (00:25 +0200)]
Fix a problem where we could wait for a very long time for the first frame on FFmpeg inputs.

2 years agoUn-name the main thread again, since it makes killall stop working.
Steinar H. Gunderson [Wed, 5 Jul 2017 18:04:37 +0000 (20:04 +0200)]
Un-name the main thread again, since it makes killall stop working.

2 years agoUpdated the Debian status.
Steinar H. Gunderson [Wed, 5 Jul 2017 07:50:41 +0000 (09:50 +0200)]
Updated the Debian status.

2 years agoUse the new Movit VAO functionality.
Steinar H. Gunderson [Tue, 4 Jul 2017 23:12:59 +0000 (01:12 +0200)]
Use the new Movit VAO functionality.

See the Movit changelog for full rationale, but basically it works
around a crash bug in NVIDIA's drivers.

2 years agoFix a typo/thinko in the five-frames-ahead logic.
Steinar H. Gunderson [Tue, 4 Jul 2017 20:37:36 +0000 (22:37 +0200)]
Fix a typo/thinko in the five-frames-ahead logic.

2 years agoOptimize away some glGetUniformLocation calls.
Steinar H. Gunderson [Sun, 2 Jul 2017 09:30:39 +0000 (11:30 +0200)]
Optimize away some glGetUniformLocation calls.

2 years agoHard-code CQP mode instead of keeping VBR at the top. Fixes a crash with i965-va...
Steinar H. Gunderson [Fri, 30 Jun 2017 21:58:39 +0000 (23:58 +0200)]
Hard-code CQP mode instead of keeping VBR at the top. Fixes a crash with i965-va-driver 1.8.x, which now supports VBR.

2 years agoMove audio encoding over to its own mutex, again reducing mutex contention.
Steinar H. Gunderson [Thu, 29 Jun 2017 21:47:34 +0000 (23:47 +0200)]
Move audio encoding over to its own mutex, again reducing mutex contention.

2 years agoDon't bother adding audio for silent cards.
Steinar H. Gunderson [Thu, 29 Jun 2017 21:10:00 +0000 (23:10 +0200)]
Don't bother adding audio for silent cards.

2 years agoOnly report disk space anew every second. Saves 20% CPU or so on the UI thread (!).
Steinar H. Gunderson [Thu, 29 Jun 2017 20:53:24 +0000 (22:53 +0200)]
Only report disk space anew every second. Saves 20% CPU or so on the UI thread (!).

2 years agoFix a thread race on the jitter history, potentially leading to crashes.
Steinar H. Gunderson [Thu, 29 Jun 2017 20:21:48 +0000 (22:21 +0200)]
Fix a thread race on the jitter history, potentially leading to crashes.

2 years agoAdd a summary for the amount of margin we have in reaching the output clock (ie....
Steinar H. Gunderson [Thu, 29 Jun 2017 19:34:44 +0000 (21:34 +0200)]
Add a summary for the amount of margin we have in reaching the output clock (ie., whether we are early or late).

2 years agoWrite video to disk on a background thread; reduces mutex contention a fair bit when...
Steinar H. Gunderson [Thu, 29 Jun 2017 19:20:03 +0000 (21:20 +0200)]
Write video to disk on a background thread; reduces mutex contention a fair bit when recording to slow disks.

2 years agoFix a small memory leak.
Steinar H. Gunderson [Thu, 29 Jun 2017 19:15:29 +0000 (21:15 +0200)]
Fix a small memory leak.

2 years agoDo some hotfixes to reduce mutex contention (but this needs a rework).
Steinar H. Gunderson [Wed, 28 Jun 2017 22:57:01 +0000 (00:57 +0200)]
Do some hotfixes to reduce mutex contention (but this needs a rework).

2 years agoYield instead of busy-waiting on fences for NVIDIA cards.
Steinar H. Gunderson [Wed, 28 Jun 2017 19:34:58 +0000 (21:34 +0200)]
Yield instead of busy-waiting on fences for NVIDIA cards.

2 years agoGive the UI thread a name.
Steinar H. Gunderson [Wed, 28 Jun 2017 18:39:16 +0000 (20:39 +0200)]
Give the UI thread a name.

2 years agoFix a use-after-free when using video inputs. Found by GCC's -fsanitize=address.
Steinar H. Gunderson [Wed, 28 Jun 2017 17:50:32 +0000 (19:50 +0200)]
Fix a use-after-free when using video inputs. Found by GCC's -fsanitize=address.

2 years agoRework the queue drop algorithm again.
Steinar H. Gunderson [Sun, 25 Jun 2017 14:41:47 +0000 (16:41 +0200)]
Rework the queue drop algorithm again.

The old one worked fine for most cases, but when two cards drift
very slowly out of sync (and one of them is the master), it's inadequate;
we should simply drop one frame at the right moment and be done with it.
Of course, knowing what the right moment is can be tricky, due to jitter,
which we now explicitly model.

Also include a separate program that tests various properties of different
possible policies (used to determine which one to use), based on replaying
real event logs.

2 years agoSet realtime priority for the DeckLink thread if possible, to reduce jitter.
Steinar H. Gunderson [Sat, 24 Jun 2017 19:48:32 +0000 (21:48 +0200)]
Set realtime priority for the DeckLink thread if possible, to reduce jitter.

2 years agoRemove old card metrics when reinitializing cards.
Steinar H. Gunderson [Sat, 24 Jun 2017 17:42:02 +0000 (19:42 +0200)]
Remove old card metrics when reinitializing cards.

2 years agoFix a lock that was held too long in an edge case.
Steinar H. Gunderson [Thu, 22 Jun 2017 23:20:49 +0000 (01:20 +0200)]
Fix a lock that was held too long in an edge case.

2 years agoFix another Prometheus NaN problem.
Steinar H. Gunderson [Wed, 21 Jun 2017 19:50:37 +0000 (21:50 +0200)]
Fix another Prometheus NaN problem.

2 years agoAdd a metric for number of received frames per input, so that one can measure _actual...
Steinar H. Gunderson [Sat, 17 Jun 2017 16:51:01 +0000 (18:51 +0200)]
Add a metric for number of received frames per input, so that one can measure _actual_ fps.

2 years agoFix a metric name.
Steinar H. Gunderson [Sat, 17 Jun 2017 14:06:11 +0000 (16:06 +0200)]
Fix a metric name.

2 years agoAdd a summary for aggregated b-frame or not, since they are in general unaggregatable.
Steinar H. Gunderson [Sat, 17 Jun 2017 14:04:18 +0000 (16:04 +0200)]
Add a summary for aggregated b-frame or not, since they are in general unaggregatable.

2 years agoCorrect the scale of the memory metrics.
Steinar H. Gunderson [Sat, 17 Jun 2017 13:23:25 +0000 (15:23 +0200)]
Correct the scale of the memory metrics.

2 years agoFix compilation with Clang.
Steinar H. Gunderson [Sat, 17 Jun 2017 12:53:27 +0000 (14:53 +0200)]
Fix compilation with Clang.

2 years agoSwitch to summaries instead of histograms for latency; they were not getting precise...
Steinar H. Gunderson [Sat, 17 Jun 2017 12:40:42 +0000 (14:40 +0200)]
Switch to summaries instead of histograms for latency; they were not getting precise enough unless we had huge amounts of buckets.

2 years agoFix a pessimizing move (Clang warning).
Steinar H. Gunderson [Sat, 17 Jun 2017 12:03:30 +0000 (14:03 +0200)]
Fix a pessimizing move (Clang warning).

2 years agoSilence a Clang warning.
Steinar H. Gunderson [Sat, 17 Jun 2017 11:56:51 +0000 (13:56 +0200)]
Silence a Clang warning.