]> git.sesse.net Git - nageru/blob - NEWS
Release Nageru and Futatabi 1.9.2.
[nageru] / NEWS
1 Nageru and Futatabi 1.9.2, March 29th, 2020
2
3   - Support handling white balance directly in Nageru, without themes
4     manually inserting a WhiteBalanceEffect or handling set_wb().
5     To use it, call scene:add_white_balance() instead of
6     scene:add_effect(WhiteBalanceEffect.new()). If using this functionality,
7     white balance will be properly propagated to the MJPEG feed and
8     through Futatabi, so that replays get the correct white balance.
9     Futatabi's UI will still be uncorrected, though.
10
11   - Make it possible to siphon out a single MJPEG stream, for remote
12     debugging, single-camera recording, single-camera streaming via
13     Kaeru or probably other things. The URL for this is /feeds/N.mp4
14     where N is the card index (starting from zero).
15
16   - The theme can now access some audio settings; it can get (not set)
17     number of buses and names, get/set fader volume, get/set mute,
18     and get/set EQ parameters.
19
20   - In Futatabi, it is now possible to set custom source labels, with
21     the parameter --source-label NUM:LABEL (or -l NUM:LABEL).
22
23   - When the playback speed changes in Futatabi, ease into the new speed.
24     The easing period is nominally 200 ms, but it will be automatically
25     shortened or lengthened (up to as much as two seconds in extreme
26     cases, especially involving very slight speed change) if this
27     helps getting back into a cadence of hitting the original frames.
28     This can mean significant performance improvements when ramping
29     from higher speeds back into 100%.
30
31   - Updates for newer versions of CEF (tested with Chrome 80).
32
33   - Various bugfixes and performance improvements.
34
35
36 Nageru and Futatabi 1.9.1, November 17th, 2019
37
38   - Support disabling optional effects if a given other effect is _enabled_
39     (typically for mutually exclusive effects).
40     
41   - Make it possible for the theme to override the status line, by declaring
42     a function format_status_line() in the theme. Inspired by a C++ patch by
43     Alex Thomazo in the Breizhcamp repository.
44
45   - Various bugfixes.
46
47
48 Nageru and Futatabi 1.9.0, July 20th, 2019
49
50   - Significant reworking of the theme engine: Chains (now called scenes)
51     can now instantiate different versions behind-the-scenes instead of the
52     user having to worry about input types, low/high quality, or replacing
53     effects with others. Menus can have submenus and checkboxes. Finally, some
54     callbacks, such as num_channels(), have been replaced with easier-to-use
55     imperative functions, ie., an explicit call to Nageru.set_num_channels(N).
56
57     See the documentation for more information, or the included themes,
58     which have been ported to the new interfaces. Existing themes will continue
59     to run without modification, but the old interfaces are deprecated.
60
61     Martin Sandsmark contributed a bugfix to this work.
62
63   - Support cross-compilation. Patch from Helmut Grohne.
64
65   - Kaeru now has a parameter --disable-audio for transcoding streams
66     with no audio.
67
68   - Various bugfixes. In particular, work around an issue where Mesa's shader
69     cache interacts with Qt's EGL support to create a confusing crash with
70     “vertex shader lacks `main'”.
71
72
73 Nageru and Futatabi 1.8.6, April 19th, 2019
74
75   - Filenames for the recordings are now without colons; it caused
76     too much problems with various software, including most players.
77
78   - Various bugfixes.
79
80
81 Nageru and Futatabi 1.8.5, March 30th, 2019
82
83   - Experimental support for audio in Futatabi: The MJPEG export from
84     Nageru now supports audio, and Futatabi will store it and play it
85     back. Audio is currently only supported when playing at 100% speed
86     (no pitch shift or time stretching), and there is no audio output
87     to the Futatabi operator.
88
89   - Significant optimizations to MJPEG encoding, both when in use and when
90     not in use.
91
92   - Various bugfixes.
93
94
95 Nageru and Futatabi 1.8.4, March 11th, 2019
96
97   - Various bugfixes, in particular for 32-bit platforms.
98
99
100 Nageru and Futatabi 1.8.3, March 10th, 2019
101
102   - Allow controlling video mixing from MIDI events. Adapted from a patch
103     by Yann Dubreuil, from the BreizhCamp repository.
104
105   - Use ALSA hardware timestamps for input; gives more stable delay.
106     Patch by Yann Dubreuil, from the BreizhCamp repository.
107
108   - For FFmpeg inputs, add an option for playing as fast as possible
109     (set rate >= 10.0).
110
111   - In Futatabi, support queueing and playing clips with no cue-out point.
112     This opens up for new and even faster UI workflows.
113
114   - Many bugfixes.
115
116
117 Nageru and Futatabi 1.8.2, January 19th, 2019
118
119   - Futatabi now supports MIDI controllers like Nageru, including an editor
120     and a sample mapping for the Behringer CMD PL-1.
121
122   - Futatabi now supports changing master speed during play, both via a
123     MIDI controller and the GUI.
124
125   - Various bugfixes.
126
127
128 Nageru and Futatabi 1.8.1, December 30th, 2018
129
130   - Futatabi can now communicate its queue status through a subtitle track,
131     and Nageru can consume it. This allows Nageru themes to get precise
132     information programmatically, e.g. to show status or automatically
133     switch away when the queue is about to end.
134
135   - Futatabi can now reuse the computed flow across successive frames when
136     interpolating between the same frame pair. This significantly reduces
137     the GPU load when doing super-slow motion (slower than 0.5x).
138
139   - Various smaller fixes.
140
141
142 Nageru and Futatabi 1.8.0, December 20th, 2018
143
144   - Initial release of Futatabi, a multicamera slow motion video server
145     designed to be used with Nageru. Futatabi is currently in alpha stage
146     and largely undocumented.
147
148   - Add support for multi-camera export from Nageru. A multi-camera stream
149     contains all frames from all camera inputs (unless overridden by
150     --mjpeg-export-cards), unprocessed except for MJPEG encoding.
151     MJPEG encoding is done in hardware (via VA-API) on Skylake or newer,
152     or using libjpeg otherwise. The intended user of this stream is Futatabi.
153
154
155 Nageru 1.7.5, November 11th, 2018
156
157   - Fix a bug where --record-x264-video would not work when VA-API was
158     not present, making the option rather useless (broken in 1.7.2).
159     Bug reported by Peter De Schrijver.
160
161   - The build system has been switched to Meson; see the README for new
162     build instructions.
163
164   - Various smaller fixes.
165
166
167 Nageru 1.7.4, August 31st, 2018
168
169   - Rework the x264 speedcontrol presets, again. (They earlier assumed
170     we could control B-frame settings on the fly, which we cannot with
171     threaded lookahead.) Also support x264 >= 153, which can support
172     multiple bit depths in the same library.
173
174   - Default to SDI inputs instead of HDMI.
175
176   - Add a mode to run in full screen (--fullscreen). Adapted from a patch
177     by Yoann Dubreuil.
178
179   - Add support for lift/gamma/gain in the theme. Patch by Alexandre Thomazo.
180
181
182 Nageru 1.7.3, May 22nd, 2018
183
184   - When using multichannel audio, add a control for adjusting the
185     stereo width (from normal stereo to mono, all the way to
186     inverted stereo).
187
188   - Removed --http-coarse-timebase (it is now always on).
189
190   - Various bugfixes.
191
192
193 Nageru 1.7.2, April 28th, 2018
194
195   - Several improvements to video (FFmpeg) inputs: You can now use
196     them as audio sources, you can right-click on video channels
197     to change URL/filename on-the-fly, themes can ask for forced
198     disconnection (useful for network sources that are hanging),
199     and various other improvements. Be aware that the audio support
200     may still be somewhat rough, as A/V sync of arbitrary video
201     playout is a hard problem.
202
203   - The included themes have been fixed to properly make the returned
204     chain preparation functions independent of global state (e.g. if
205     the white balance for a channel was changed before the frame was
206     actually rendered). If you are using a custom theme, you may want
207     to apply similar fixes to it.
208
209   - In Metacube stream output, mark each keyframe with a pts metadata
210     block. This allows Cubemap 1.4.0 or newer to serve fMP4 fragments
211     for HLS from Nageru's output, without any further remuxing or
212     transcoding.
213
214   - If needed, Nageru will now automatically try to autodetect a
215     usable --va-display parameter by probing all DRM nodes for H.264
216     encoders. This removes the need to set --va-display in almost all
217     cases, and also removes the dependency on libpci.
218
219   - For GPUs that support querying available memory (in practice only
220     NVIDIA GPUs at the current time), expose the amount of used/total
221     GPU memory both on standard output and in the Prometheus metrics
222     (as well as included Grafana dashboard).
223
224   - The Grafana dashboard now supports heatmaps for the chosen x264
225     speedcontrol preset (requires Grafana 5.1 or newer). (There used to
226     be a heatmap earlier, but it was all broken.)
227
228   - Various bugfixes.
229
230
231 Nageru 1.7.1, March 26th, 2018
232
233   - Various bugfixes, mostly related to HTML and video inputs.
234
235
236 Nageru 1.7.0, March 8th, 2018
237
238   - Support for HTML5 graphics directly in Nageru, through CEF
239     (Chromium Embedded Framework). This performs better and is more
240     flexible than integrating with CasparCG over a socket. Note that
241     CEF is an optional component; see the documentation for more
242     information.
243
244   - Add an HTTP endpoint for enumerating channels and one for getting
245     only their colors. Intended for remote tally applications;
246     set the documentation.
247
248   - Add a video grid display that removes the audio controls and shows
249     the video channels only, potentially in multiple rows if that makes
250     for a larger viewing area.
251
252   - Themes can now present simple menus in the Nageru UI. See the
253     documentation for more information.
254
255   - Various bugfixes.
256
257
258 Nageru 1.6.4, January 25th, 2018
259
260   - Fix compilation with the upcoming FFmpeg 3.5.
261
262   - Switch to LuaJIT for the theme engine, which is faster.
263
264   - Various bugfixes and smaller optimizations.
265
266
267 Nageru 1.6.3, November 8th, 2017
268
269   - Add quick-cut keys (Q, W, E, etc.) below the preview keys.
270     Since it's easy to hit these by accident and put up a signal
271     you didn't want, they are disabled by default (they can be
272     enabled in the video menu, or with the command line flag
273     --quick-cut-keys).
274
275   - Rework the x264 speedcontrol presets to better match newer
276     x264 versions.
277
278   - Add an option for changing the HTTP port (--http-port).
279
280   - Various smaller bug and integration fixes.
281
282
283 Nageru 1.6.2, July 16th, 2017
284
285   - Various smaller Kaeru fixes, mostly around metrics. Also,
286     you can now adjust the x264 bitrate in Kaeru (in 100 kbit/sec
287     increments) by sending SIGUSR1 (higher) or SIGUSR2 (lower).
288
289
290 Nageru 1.6.1, July 9th, 2017
291
292   - Add native export of Prometheus metrics.
293
294   - Rework the frame queue drop algorithm. The new one should handle tricky
295     situations much better, especially when a card is drifting very slowly
296     against the master timer.
297
298   - Add Kaeru, an experimental transcoding tool based on Nageru code.
299     Kaeru can run headless on a server without a GPU to transcode a
300     Nageru stream into a lower-bitrate one, replacing VLC.
301
302   - Work around a bug in some versions of NVIDIA's OpenGL drivers that would
303     crash Nageru after about three hours (fix in cooperation with Movit).
304
305   - Fix a crash with i965-va-driver 1.8.x.
306
307   - Reduce mutex contention in certain critical places, causing lower tail
308     latency in the mixer.
309
310
311 Nageru 1.6.0, May 29th, 2017
312
313   - Add support for having videos (from file or from URL) as a separate
314     input channels, albeit with some limitations. Apart from the obvious use of
315     looping pause clips or similar, this can be used to integrate with CasparCG;
316     see the manual for more details.
317
318   - Add a frame analyzer (accessible from the Video menu) containing an
319     RGB histogram and a color dropped tool. This is useful in calibrating
320     video chains by playing back a known signal. Note that this adds a
321     dependency on QCustomPlot.
322
323   - Allow overriding Y'CbCr input interpretation, for inputs that don't
324     use the correct settings. Also, Rec. 601 is now used by default instead
325     of Rec. 709 for SD resolutions.
326
327   - Support other sample rates than 48000 Hz from bmusb.
328
329
330 Nageru 1.5.0, April 5th, 2017
331
332   - Support for low-latency HDMI/SDI output in addition to (or instead of) the
333     stream. This currently only works with DeckLink cards, not bmusb. See the
334     manual for more information.
335
336   - Support changing the resolution from the command line, instead of locking
337     everything to 1280x720.
338
339   - The A/V sync code has been rewritten to be more in line with Fons
340     Adriaensen's original paper. It handles several cases much better,
341     in particular when trying to match 59.94 and 60 Hz sources to each other.
342     However, it might occasionally need a few extra seconds on startup to
343     lock properly if startup is slow.
344
345   - Add support for using x264 for the disk recording. This makes it possible,
346     among other things, to run Nageru on a machine entirely without VA-API
347     support.
348
349   - Support for 10-bit Y'CbCr, both on input and output. (Output requires
350     x264 disk recording, as Quick Sync Video does not support 10-bit H.264.)
351     This requires compute shader support, and is in general a little bit
352     slower on input and output, due to the extra amount of data being shuffled
353     around. Intermediate precision is 16-bit floating-point or better,
354     as before.
355
356   - Enable input mode autodetection for DeckLink cards that support it.
357     (bmusb mode has always been autodetected.)
358
359   - Add functionality to add a time code to the stream; useful for debugging
360     latency.
361
362   - The live display is now both more performant and of higher image quality.
363
364   - Fix a long-standing issue where the preview displays would be too bright
365     when using an NVIDIA GPU. (This did not affect the finished stream.)
366
367   - Many other bugfixes and small improvements.
368
369
370 Nageru 1.4.2, November 24th, 2016
371
372   - Fix a thread race that would sometimes cause x264 streaming to go awry.
373
374
375 Nageru 1.4.1, November 6th, 2016
376
377   - Various bugfixes.
378
379
380 Nageru 1.4.0, October 26th, 2016
381
382   - Support for multichannel (or more accurately, multi-bus) audio,
383     choosable from the UI or using the --multichannel command-line
384     flag. In multichannel mode, you can take in inputs from multiple
385     different sources (or different channels on the same source, for
386     multichannel sound cards), apply effects to them separately and then
387     mix them together. This includes both audio from the video cards
388     as well as ALSA inputs, including hotplug. Ola Gundelsby contributed
389     invaluable feedback on this feature throughout the entire
390     development cycle.
391
392   - Support for having MIDI controllers control various aspects of the
393     audio UI, with relatively flexible mapping. Note that different
394     MIDI controllers can vary significantly in what protocol they speak,
395     so Nageru will not necessarily work with all. (The primary testing
396     controller has been the Akai MIDImix, and a pre-made mapping for
397     that is included. The Korg nanoKONTROL2 has also been tested and
398     works, but it requires some Korg-specific SysEx commands to make
399     the buttons and lights work.)
400
401   - Add a disk space indicator to the main window.
402
403   - Various bugfixes. In particular, an issue where the audio would pitch
404     up sharply after a series of many dropped frames has been fixed.
405
406
407 Nageru 1.3.4, August 2nd, 2016
408
409   - Various bugfixes.
410
411
412 Nageru 1.3.3, July 27th, 2016
413
414   - Various changes to make distribution packaging easier; in particular,
415     theme data can be picked up from /usr/local/share/nageru.
416
417   - Fix various FFmpeg deprecation warnings, now that we need FFmpeg
418     3.1 for other reasons anyway.
419
420
421 Nageru 1.3.2, July 23rd, 2016
422
423   - Allow limited hotplugging (unplugging and replugging) of USB cards.
424     You can use the new command-line option --num-fake-cards (-C) to add
425     fake cards that show only a single color and that will be replaced
426     by real cards as you plug them in; you can also unplug cards and have
427     them be replaced by fake cards. Fake cards can also be used for testing
428     Nageru without actually having any video cards available.
429
430   - Add Metacube timestamping of every keyframe, for easier detection of
431     streams not keeping up. Works with the new timestamp feature of
432     Cubemap 1.3.1. Will be ignored (save for some logging) in older
433     Cubemap versions.
434
435   - The included default theme has been reworked and cleaned up to be
436     more understandable and extensible.
437
438   - Add more command-line options for initial audio setup.
439
440
441 Nageru 1.3.1, July 1st, 2016
442
443  - Various display bugfixes.
444
445
446 Nageru 1.3.0, June 26th, 2016
447
448  - It is now possible, given enough CPU power (e.g., a quad-core Haswell or
449    faster desktop CPU), to output a stream that is suitable for streaming
450    directly to end users without further transcoding. In particular, this
451    includes support for encoding the network stream with x264 (the stream
452    saved to disk is still done using Quick Sync), for Metacube framing (for
453    streaming to the Cubemap reflector), and for choosing the network stream
454    mux. For more information, see the README.
455
456  - Add a flag (--disable-alsa-output) to disable ALSA monitoring output.
457
458  - Do texture uploads from the main thread instead of from separate threads;
459    may or may not improve stability with NVIDIA's proprietary drivers.
460
461  - When beginning a new video segment, the shutdown of the old encoder
462    is now done in a background thread, in order to not disturb the external
463    stream. The audio still goes into a somewhat random stream, though.
464
465  - You can now override the default stream-to-card mapping with --map-signal=
466    on the command line.
467
468  - Nageru now tries to lock itself into RAM if it has the permissions to do
469    so, for better realtime behavior. (Writing the stream to disk tends to
470    fill the buffer cache, eventually paging less-used parts of Nageru out.)
471
472  - Various fixes for deadlocks, memory leaks, and many other errors.
473
474
475 Nageru 1.2.1, April 15th, 2016
476
477  - Images are now updated from disk about every second, so that it is possible
478    to update e.g. overlays during streaming, although somewhat slowly.
479
480  - Fix support for PNG images.
481
482  - You can now send SIGHUP to start a new cut instead of using the menu.
483
484  - Added a --help option.
485
486  - Various tweaks to OpenGL fence handling.
487
488
489 Nageru 1.2.0, April 6th, 2016
490
491  - Support for Blackmagic's PCI and Thunderbolt cards, using the official
492    (closed-source) Blackmagic drivers. (You do not need the SDK installed, though.)
493    You can use PCI and USB cards pretty much interchangeably.
494
495  - Much more stable handling of frame queues on non-master cards. In particular,
496    you can have a master card on 50 Hz and another card on 60 Hz without getting
497    lots of warning messages and a 10+ frame latency on the second card.
498
499  - Many new options in the right click menu on cards: Adjustable video inputs,
500    adjustable audio inputs, adjustable resolutions, ability to select card for
501    master clock.
502
503  - Add support for starting with almost all audio processing turned off
504    (--flat-audio).
505
506  - The UI now marks inputs with red or green to mark them as participating in
507    the live or preview signal, respectively. Red takes priority. (Actually,
508    it merely asks the theme for a color for each input; the theme contains
509    the logic.)
510
511  - Add support for uncompressed video instead of H.264 on the HTTP server,
512    while still storing H.264 to files (--http-uncompressed-video). Note that
513    depending on your client, this might not actually be more CPU efficient
514    even on localhost, so be sure to check.
515
516  - Add a simpler, less featureful theme (simple.lua) that should be easier to
517    understand for beginners. Themes are now also choosable with -t on the command
518    line.
519
520  - Too many bugfixes and small tweaks to list. In particular, many memory leaks
521    in the streaming part have been identified and fixed.
522
523
524 Nageru 1.1.0, February 24th, 2016
525
526  - Support doing the H.264 encoding on a different graphics device from the one
527    doing the mixing. In particular, this makes it possible to use Nageru on an
528    NVIDIA GPU while still encoding H.264 video using Intel Quick Sync (NVENC
529    is not supported yet) -- it is less efficient since the data needs to be read
530    back via the CPU, but the NVIDIA cards and drivers are so much faster that it
531    doesn't really matter. Tested on a GTX 950 with the proprietary drivers.
532
533  - In the included example theme, fix fading to/from deinterlaced sources.
534
535  - Various smaller compilation, distribution and documentation fixes.
536
537
538 Nageru 1.0.0, January 30th, 2016
539
540  - Initial release.