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