]>
git.sesse.net Git - nageru/log
Steinar H. Gunderson [Sun, 31 Mar 2019 12:17:15 +0000 (14:17 +0200)]
Fix -o short option.
Steinar H. Gunderson [Sun, 31 Mar 2019 12:16:43 +0000 (14:16 +0200)]
Errors in flags do not need core dumps.
Steinar H. Gunderson [Sat, 30 Mar 2019 14:55:49 +0000 (15:55 +0100)]
Release Nageru and Futatabi 1.8.5.
Steinar H. Gunderson [Sat, 30 Mar 2019 13:45:58 +0000 (14:45 +0100)]
Add audio output when playing at 100% speed.
Fairly untested, but should work both on single-track export and
on realtime output. No audio stretching or pitch shift, so only
plays when we're at regular speed. Note: There's no monitor output yet,
so the Futatabi operator will be deaf. There are also no VU bars.
Steinar H. Gunderson [Sat, 30 Mar 2019 13:23:58 +0000 (14:23 +0100)]
Fix storing of audio sizes in the database.
Steinar H. Gunderson [Sat, 30 Mar 2019 12:51:42 +0000 (13:51 +0100)]
Tiny fix in variational_refinement.txt.
Steinar H. Gunderson [Fri, 29 Mar 2019 21:34:44 +0000 (22:34 +0100)]
bmusb 0.7.4 is out, and we need it.
Steinar H. Gunderson [Thu, 28 Mar 2019 19:25:59 +0000 (20:25 +0100)]
Make multitrack export include audio.
Steinar H. Gunderson [Thu, 28 Mar 2019 18:10:24 +0000 (19:10 +0100)]
Remove a legacy FFmpeg test which is no longer needed (we have required 4.0 for a while).
Steinar H. Gunderson [Thu, 28 Mar 2019 17:57:57 +0000 (18:57 +0100)]
Make Futatabi accept and record the audio, although it cannot use it for anything yet.
Steinar H. Gunderson [Thu, 28 Mar 2019 17:49:01 +0000 (18:49 +0100)]
Include the raw audio in the MJPEG output.
Steinar H. Gunderson [Thu, 28 Mar 2019 08:25:13 +0000 (09:25 +0100)]
Fix handling of truncated frame files.
Steinar H. Gunderson [Wed, 27 Mar 2019 23:56:20 +0000 (00:56 +0100)]
On errors, abort() instead of exit(1); exit() in a multithreaded program just gives more problems, and we want a core file.
Steinar H. Gunderson [Wed, 27 Mar 2019 22:15:54 +0000 (23:15 +0100)]
In Futatabi, ignore non-video streams for now.
Steinar H. Gunderson [Mon, 25 Mar 2019 20:33:49 +0000 (21:33 +0100)]
Correct a tiny miscalculation in convert_fixed24_to_fp32().
Steinar H. Gunderson [Fri, 22 Mar 2019 21:56:41 +0000 (22:56 +0100)]
If a HTTP server backlog becomes very large (>1 GB), kill the connection to avoid runaway OOM.
Steinar H. Gunderson [Mon, 18 Mar 2019 21:53:21 +0000 (22:53 +0100)]
Fix some memory leaks in the VA-API upload code (also make it more RAII-ish to be fail safe).
Steinar H. Gunderson [Mon, 18 Mar 2019 18:31:18 +0000 (19:31 +0100)]
Increase the size of the VA-API resource freelist, to try to trickle the threading issues a tiny bit less.
Steinar H. Gunderson [Mon, 18 Mar 2019 18:29:38 +0000 (19:29 +0100)]
Use vaCreateImage + vaPutImage instead of vaDeriveImage.
Seemingly, this largely fixes the L3 issues I've been seeing, taking
CPU usage down from ~2.1–2.2 to ~1.4 cores.
A test run with eight full 1080p59.94 inputs demonstrates that it can
be done without the GPU keeling over, although there are some issues with
VA-API threading.
Steinar H. Gunderson [Sun, 17 Mar 2019 21:53:36 +0000 (22:53 +0100)]
When uploading MJPEG data to VA-API, do it directly into the buffer.
Besides the obvious of spending less time copying, this has two positive effects:
- The VA-API thread is no longer a choke point; uploading can happen from
multiple cores.
- With one copy less, we seem to be reducing L3 cache pressure a bit;
at some point between five and six 1080p sources, we “fall off a cliff”
wrt. the L3 and start thrashing. This doesn't fix the issue, but alleviates
it somewhat.
All in all, we seem to go down from ~2.6 to ~2.1–2.2 cores used with one
720p channel and five 1080p channels. I haven't tried saturating channels
yet to see how many we can actually encode.
Steinar H. Gunderson [Sun, 17 Mar 2019 18:15:13 +0000 (19:15 +0100)]
Fix more repetition of the Userdata cast.
Steinar H. Gunderson [Sat, 16 Mar 2019 23:42:31 +0000 (00:42 +0100)]
Fix some overly repetitive code in PBOFrameAllocator.
Steinar H. Gunderson [Thu, 14 Mar 2019 08:32:34 +0000 (09:32 +0100)]
Fix a confusing variable name (frame_bytes sounded like a number of bytes).
Steinar H. Gunderson [Wed, 13 Mar 2019 20:36:40 +0000 (21:36 +0100)]
Fix an unneeded copy when muxing MJPEGs.
Saves ~10% of one core at five 1080p50 sources.
Steinar H. Gunderson [Mon, 11 Mar 2019 22:40:21 +0000 (23:40 +0100)]
Release Nageru and Futatabi 1.8.4.
Steinar H. Gunderson [Mon, 11 Mar 2019 22:39:43 +0000 (23:39 +0100)]
Various fixes for 32-bit platforms.
Steinar H. Gunderson [Sun, 10 Mar 2019 22:29:24 +0000 (23:29 +0100)]
Move to one JPEG decoder thread per view.
This is, surprisingly, the most useful for VA-API decodes; they can
have long latency at 1080p, and Futatabi's dropping scheme sometimes
caused massive unfairness. Our system doesn't pipeline all that
nicely, so just having multiple threads was the simplest solution.
The risk is that we now access VA-API from multiple threads, which
has a tendency to tickle bugs, but we'll see.
Of course, for CPU decoding, you will also benefit.
Steinar H. Gunderson [Sun, 10 Mar 2019 19:23:25 +0000 (20:23 +0100)]
Release Nageru and Futatabi 1.8.3.
Steinar H. Gunderson [Sun, 10 Mar 2019 11:40:35 +0000 (12:40 +0100)]
Unbreak audio transcoding in Kaeru, which has seemingly been broken from the very start.
Steinar H. Gunderson [Sun, 10 Mar 2019 11:04:27 +0000 (12:04 +0100)]
For FFmpeg inputs, add an option for playing as fast as possible.
This is intended for live streams, where setting rate 2.0 or similar
would cause it to spew errors and keep resetting the clock. This mode
is automatically activated if rate >= 10.0.
Steinar H. Gunderson [Sun, 10 Mar 2019 00:36:14 +0000 (01:36 +0100)]
Get rid of an unneeded sleep and message on Futatabi exit.
Steinar H. Gunderson [Sat, 9 Mar 2019 21:01:00 +0000 (22:01 +0100)]
Fix an issue where Matroska HTTP FFmpeg streams would not correctly restart on connection close.
Steinar H. Gunderson [Sat, 9 Mar 2019 21:00:40 +0000 (22:00 +0100)]
Add a failsafe for interrupted FFmpeg streams.
Steinar H. Gunderson [Sat, 9 Mar 2019 20:35:59 +0000 (21:35 +0100)]
Fix a hang on exit when doing MJPEG encoding with VA-API.
Steinar H. Gunderson [Sat, 9 Mar 2019 20:33:16 +0000 (21:33 +0100)]
Fix a MIDI-related deadlock in the GUI code.
Steinar H. Gunderson [Sat, 9 Mar 2019 20:15:07 +0000 (21:15 +0100)]
Fix a broken database definition.
Steinar H. Gunderson [Sat, 9 Mar 2019 19:40:11 +0000 (20:40 +0100)]
Add some asserts to guard against nonsensical start pts.
Steinar H. Gunderson [Sat, 9 Mar 2019 18:08:18 +0000 (19:08 +0100)]
Fix a crash in Futatabi when two threads wanted to write to the database at the same time.
Steinar H. Gunderson [Sat, 9 Mar 2019 17:59:44 +0000 (18:59 +0100)]
Make the number of files into a #define.
Steinar H. Gunderson [Sat, 9 Mar 2019 17:44:18 +0000 (18:44 +0100)]
Update some error messages.
Steinar H. Gunderson [Sat, 9 Mar 2019 17:41:34 +0000 (18:41 +0100)]
Use REPLACE instead of INSERT for changing state and settings.
Steinar H. Gunderson [Sat, 9 Mar 2019 17:13:53 +0000 (18:13 +0100)]
Use REPLACE instead of INSERT + DELETE for frame files.
Steinar H. Gunderson [Fri, 8 Mar 2019 21:56:52 +0000 (22:56 +0100)]
Allow controlling video mixing from MIDI events.
Adapted from a patch by Yann Dubreuil, from the BreizhCamp repository.
Steinar H. Gunderson [Fri, 8 Mar 2019 21:03:46 +0000 (22:03 +0100)]
Adapt to newer CEF versions.
Steinar H. Gunderson [Wed, 6 Mar 2019 19:07:39 +0000 (20:07 +0100)]
Fix some unneeded copying of encoded JPEGs around (would take ~15% of uninterpolated export).
Steinar H. Gunderson [Wed, 6 Mar 2019 19:02:13 +0000 (20:02 +0100)]
Add Shift+Ctrl for super-fast scrubbing.
Steinar H. Gunderson [Wed, 6 Mar 2019 17:51:31 +0000 (18:51 +0100)]
Give the ALSA threads names.
Patch by Yann Dubreuil, from the BreizhCamp repository.
Steinar H. Gunderson [Wed, 6 Mar 2019 17:48:18 +0000 (18:48 +0100)]
Use ALSA timestamps for marking input data.
This reportedly gives much more stable delay, as the timer is sampled
when the audio actually arrives in the kernel. Patch by Yann Dubreuil,
from the BreizhCamp repository.
Steinar H. Gunderson [Wed, 6 Mar 2019 17:43:19 +0000 (18:43 +0100)]
Remove unused variable in ALSAInput.
Steinar H. Gunderson [Mon, 4 Mar 2019 08:17:44 +0000 (09:17 +0100)]
Fix detection of non-system CEF, when no system CEF package is installed.
Patch by Marcus Nilsen.
Steinar H. Gunderson [Mon, 4 Mar 2019 08:12:31 +0000 (09:12 +0100)]
Fix a one-past-the-end access on Futatabi startup.
Reported by Marcus Nilsen.
Steinar H. Gunderson [Fri, 1 Mar 2019 22:29:28 +0000 (23:29 +0100)]
Make TIMEBASE signed again; unsigned caused pts bugs, as signed * unsigned = signed.
Steinar H. Gunderson [Thu, 28 Feb 2019 21:30:46 +0000 (22:30 +0100)]
Fix a segfault that could happen with FFmpeg inputs and slow startup.
Steinar H. Gunderson [Wed, 27 Feb 2019 22:23:17 +0000 (23:23 +0100)]
Mark infinite clips as such in the machine-readable part of the subtitle track.
Steinar H. Gunderson [Tue, 26 Feb 2019 23:35:19 +0000 (00:35 +0100)]
Make it possible to queue and play clips with no cue-out set (infinite clips). Note that you can only have one of them in the clip list for the time being.
Steinar H. Gunderson [Tue, 26 Feb 2019 23:33:19 +0000 (00:33 +0100)]
Be more lenient about the playlist focus; this was too much (we should at least be able to queue and then immediately play).
Steinar H. Gunderson [Sat, 23 Feb 2019 21:53:19 +0000 (22:53 +0100)]
Fix compilation with non-system CEF.
Steinar H. Gunderson [Thu, 21 Feb 2019 22:30:49 +0000 (23:30 +0100)]
Rescale the pts/dts properly in the MJPEG encoder (matters only if we switch mux away from mp4).
Steinar H. Gunderson [Tue, 19 Feb 2019 23:38:38 +0000 (00:38 +0100)]
Mark a TODO.
Steinar H. Gunderson [Tue, 19 Feb 2019 23:25:43 +0000 (00:25 +0100)]
Remove the unused frame_length parameter to AudioMixer::add_audio().
Steinar H. Gunderson [Tue, 19 Feb 2019 08:39:05 +0000 (09:39 +0100)]
More tweaks to the memcpy_interleaved multiversioning.
Steinar H. Gunderson [Sun, 17 Feb 2019 19:38:11 +0000 (20:38 +0100)]
Make it possible to hide displays (and re-show them again). Not persistent for now.
Steinar H. Gunderson [Sun, 17 Feb 2019 17:49:04 +0000 (18:49 +0100)]
Clang seemingly does not have working function multiversioning yet.
Steinar H. Gunderson [Sun, 17 Feb 2019 17:09:39 +0000 (18:09 +0100)]
Fix display of out padding points.
Steinar H. Gunderson [Fri, 15 Feb 2019 21:58:02 +0000 (22:58 +0100)]
Enable function multiversioning for memcpy_interleaved().
This makes the AVX2 version actually be used in practice (nobody really
compiles with -march=native).
Steinar H. Gunderson [Thu, 14 Feb 2019 23:10:06 +0000 (00:10 +0100)]
Add MJPEG export metrics.
Steinar H. Gunderson [Thu, 14 Feb 2019 22:53:54 +0000 (23:53 +0100)]
Increase the MJPEG encoding queue size by a lot.
Steinar H. Gunderson [Wed, 13 Feb 2019 22:41:50 +0000 (23:41 +0100)]
Add support for aborting playing a clip early.
Steinar H. Gunderson [Wed, 13 Feb 2019 08:18:01 +0000 (09:18 +0100)]
Fix an overflow issue with long (>= 10 min) clips.
Steinar H. Gunderson [Tue, 29 Jan 2019 21:54:54 +0000 (22:54 +0100)]
Add basic Futatabi documentation to the README.
Steinar H. Gunderson [Tue, 29 Jan 2019 20:29:21 +0000 (21:29 +0100)]
Split cue padding into separate in and out settings.
Steinar H. Gunderson [Tue, 22 Jan 2019 17:30:38 +0000 (18:30 +0100)]
Fix overly aggressive snapping at very low speeds.
Steinar H. Gunderson [Sat, 19 Jan 2019 21:57:27 +0000 (22:57 +0100)]
Release Nageru and Futatabi 1.8.2.
Steinar H. Gunderson [Sat, 19 Jan 2019 21:57:18 +0000 (22:57 +0100)]
Add Yngve's copyright to the README.
Steinar H. Gunderson [Sat, 19 Jan 2019 21:46:22 +0000 (22:46 +0100)]
Work around a crash on exit.
Steinar H. Gunderson [Sat, 19 Jan 2019 21:38:38 +0000 (22:38 +0100)]
Add a MIDI mapping editor for Futatabi.
Steinar H. Gunderson [Sat, 19 Jan 2019 12:58:24 +0000 (13:58 +0100)]
Make the master light speed maximum inclusive instead of exclusive
Less confusing when in an UI, and also doesn't require us to have
some spinners at max 127 and some at max 128 (save for pitch bend).
Steinar H. Gunderson [Sat, 19 Jan 2019 12:18:24 +0000 (13:18 +0100)]
Move controller_spin_box.h to shared, so that the upcoming Futatabi MIDI editor can use it.
Steinar H. Gunderson [Fri, 18 Jan 2019 20:45:00 +0000 (21:45 +0100)]
Fix some Clang 7 warnings.
Steinar H. Gunderson [Fri, 18 Jan 2019 00:09:40 +0000 (01:09 +0100)]
Make MIDIMappingDialog reuse some of the code from midi_mapper_util.h.
Steinar H. Gunderson [Thu, 17 Jan 2019 23:47:37 +0000 (00:47 +0100)]
Add support for a master speed MIDI light.
Steinar H. Gunderson [Thu, 17 Jan 2019 21:18:13 +0000 (22:18 +0100)]
Add infrastructure for MIDI lights that are controllers instead of notes.
Steinar H. Gunderson [Thu, 17 Jan 2019 19:39:45 +0000 (20:39 +0100)]
Unbreak the cue in and out lights.
Steinar H. Gunderson [Thu, 17 Jan 2019 19:36:08 +0000 (20:36 +0100)]
Make the preview light blink and be solid like the play light is.
Steinar H. Gunderson [Thu, 17 Jan 2019 00:05:43 +0000 (01:05 +0100)]
Make the MIDI play button blinking when something is ready to play, and solid when actually playing.
Steinar H. Gunderson [Wed, 16 Jan 2019 23:16:19 +0000 (00:16 +0100)]
Only enable play if something is actually selected.
Steinar H. Gunderson [Wed, 16 Jan 2019 22:10:16 +0000 (23:10 +0100)]
Blink the lock light if dragging the speed slider when locked.
Steinar H. Gunderson [Wed, 16 Jan 2019 22:00:53 +0000 (23:00 +0100)]
Support non-binary MIDI lights (ie., with an on-velocity different from 1).
No UI support yet. Most likely we'll only have UI support in Futatabi.
Steinar H. Gunderson [Wed, 16 Jan 2019 21:49:33 +0000 (22:49 +0100)]
Remove a non-defined member function from MIDIMapper.
Steinar H. Gunderson [Wed, 16 Jan 2019 21:46:47 +0000 (22:46 +0100)]
Add some controls for locking the master speed to 100%.
Steinar H. Gunderson [Tue, 15 Jan 2019 22:09:50 +0000 (23:09 +0100)]
Support changing overall playing speed at runtime, using a slider or a MIDI controller.
Steinar H. Gunderson [Tue, 15 Jan 2019 17:39:10 +0000 (18:39 +0100)]
When sending original frames, do the reading in the queueing thread.
Earlier, we'd only preload it and hope the encoder's second read would
come from the cache. But this is more consistent, and perhaps more
importantly, it fixes a race on the FrameReader, where the two threads
would try accessing it at the same time, causing the file descriptor
to be closed while being used, and a crash.
Now, the FrameReaders are consistently accessed from one thread only.
Steinar H. Gunderson [Sat, 12 Jan 2019 19:41:25 +0000 (20:41 +0100)]
Remove a debug message.
Steinar H. Gunderson [Sat, 12 Jan 2019 19:26:22 +0000 (20:26 +0100)]
Turn off guessing if the source bus contains the pitch bend controller.
Steinar H. Gunderson [Thu, 10 Jan 2019 18:28:46 +0000 (19:28 +0100)]
Support pitch bend as a virtual MIDI controller.
The primary reason this is important is that it's got higher range
(up to 14-bit). Also, DJ controllers with a slider typically send
pitch bend values, so it's useful just to get to use them.
Steinar H. Gunderson [Wed, 9 Jan 2019 22:57:47 +0000 (23:57 +0100)]
Add an example Futatabi MIDI mapping for the Behringer CMD PL-1.
Steinar H. Gunderson [Wed, 9 Jan 2019 22:54:13 +0000 (23:54 +0100)]
Add basic MIDI input support (jog, cue in/out, play, camera switch) to Futatabi. No editor yet.
Steinar H. Gunderson [Wed, 9 Jan 2019 21:40:54 +0000 (22:40 +0100)]
Only enable the queue button if we can actually queue something.
Steinar H. Gunderson [Wed, 9 Jan 2019 21:34:09 +0000 (22:34 +0100)]
Only enable the preview button if we can actually preview something.
Steinar H. Gunderson [Tue, 8 Jan 2019 23:24:26 +0000 (00:24 +0100)]
Split the MIDI mapping proto file in two; one that will be shared with Futatabi soon, and one that is for Nageru only.