]> git.sesse.net Git - nageru/log
nageru
7 years agoRelease Nageru 1.5.0. 1.5.0
Steinar H. Gunderson [Wed, 5 Apr 2017 21:27:04 +0000 (23:27 +0200)]
Release Nageru 1.5.0.

7 years agoSpelling fix.
Steinar H. Gunderson [Mon, 3 Apr 2017 21:31:07 +0000 (23:31 +0200)]
Spelling fix.

7 years agoMake the mixer much less noisy when dealing with frame rate mismatches.
Steinar H. Gunderson [Wed, 5 Apr 2017 20:14:24 +0000 (22:14 +0200)]
Make the mixer much less noisy when dealing with frame rate mismatches.

7 years agoMake a friendlier error message if OpenGL initialization fails.
Steinar H. Gunderson [Sat, 1 Apr 2017 18:30:06 +0000 (20:30 +0200)]
Make a friendlier error message if OpenGL initialization fails.

7 years agoMovit 1.5.0 is released.
Steinar H. Gunderson [Wed, 22 Mar 2017 17:03:10 +0000 (18:03 +0100)]
Movit 1.5.0 is released.

7 years agoFix secondary output from TimecodeRenderer; it was not updated for RGBA updates going...
Steinar H. Gunderson [Fri, 17 Mar 2017 19:03:31 +0000 (20:03 +0100)]
Fix secondary output from TimecodeRenderer; it was not updated for RGBA updates going away. It somehow worked by accident, though.

7 years agoFix timecode rendering for 10-bit output.
Steinar H. Gunderson [Fri, 17 Mar 2017 18:59:42 +0000 (19:59 +0100)]
Fix timecode rendering for 10-bit output.

7 years agoIf not using VA-API zerocopy, don't write extra copy textures.
Steinar H. Gunderson [Thu, 16 Mar 2017 18:43:11 +0000 (19:43 +0100)]
If not using VA-API zerocopy, don't write extra copy textures.

Saves some precious memory bandwidth.

7 years agoSupport CRF for x264, similar to the CQP mode we already use in Quick Sync Video.
Steinar H. Gunderson [Wed, 15 Mar 2017 22:55:06 +0000 (23:55 +0100)]
Support CRF for x264, similar to the CQP mode we already use in Quick Sync Video.

7 years agoSupport 4:2:2 v210 (10-bit) output for DeckLink.
Steinar H. Gunderson [Wed, 15 Mar 2017 22:07:24 +0000 (23:07 +0100)]
Support 4:2:2 v210 (10-bit) output for DeckLink.

This again requires compute shaders; my GTX 950 needs a bit under 0.1 ms
to convert a 720p frame from the 16-bit planar representation. It replaces the
flag for 10-bit x264.

v210 is, as far as I understand, pretty much the native format for the DeckLink
cards, but I believe the conversion happens in hardware, so there shouldn't
be any significant speed gains to be have.

7 years agoSupport 10-bit x264 output.
Steinar H. Gunderson [Mon, 13 Mar 2017 22:55:11 +0000 (23:55 +0100)]
Support 10-bit x264 output.

Requires a 10-bit-compiled x264. Probably breaks DeckLink output for now.

7 years agoSupport loading 10-bit x264 dynamically.
Steinar H. Gunderson [Mon, 13 Mar 2017 20:55:02 +0000 (21:55 +0100)]
Support loading 10-bit x264 dynamically.

7 years agoAdd support for recording the x264 video to disk.
Steinar H. Gunderson [Mon, 13 Mar 2017 18:05:37 +0000 (19:05 +0100)]
Add support for recording the x264 video to disk.

This makes recording entirely independent on Quick Sync Video
(or VA-API, if you wish). There's no way of running two separate
x264 encodes, though; you get the same as for the stream.

7 years agoRemoved an obsolete TODO.
Steinar H. Gunderson [Sat, 11 Mar 2017 15:47:15 +0000 (16:47 +0100)]
Removed an obsolete TODO.

7 years agoFix a fence that was not waited on correctly in the DeckLink output.
Steinar H. Gunderson [Fri, 10 Mar 2017 21:12:55 +0000 (22:12 +0100)]
Fix a fence that was not waited on correctly in the DeckLink output.

7 years agoSupport switching Y'CbCr coefficients midway, which will allow doing the Right Thing...
Steinar H. Gunderson [Wed, 8 Mar 2017 22:54:46 +0000 (23:54 +0100)]
Support switching Y'CbCr coefficients midway, which will allow doing the Right Thing(TM) (BT.601 when you can for greater stream compatibility, BT.709 when you must for HDMI/SDI output) automatically.

7 years agoDisplay a copy of the Y'CbCr images instead of an RGB565 copy.
Steinar H. Gunderson [Wed, 8 Mar 2017 00:11:35 +0000 (01:11 +0100)]
Display a copy of the Y'CbCr images instead of an RGB565 copy.

This is both higher-quality (the 16-bit artifacts were getting rather
annoying), more true to what's actually being output, _and_ higher performance
(well, at least lower memory bandwidth; I haven't benchmarked in practice),
since we can use multi-output to make extra copies on-the-fly when writing
instead of doing it explicitly. Sample calculation for a 1280x720 image; let's
say it is one megapixel for ease of calculation:

  GL_565:  2 MB written (565 texture), 2 MB read during display = 4 MB used
  Y'CbCr:  1.0 + 0.5 MB written (Y' texture plus half-res dual-channel CbCr texture),
           same amount read during display = 3 MB used

We could have reused the full-resolution CbCr texture, saving the 0.5 MB
write, but that make the readback 3 MB instead of 1.5 MB, so it's a net loss.

Ideally, we'd avoid the copies altogether, cutting the writes away
and getting to 1.5 MB, but interactions with VA-API zerocopy seemingly
made that impossible.

7 years agoRemove a dead code line.
Steinar H. Gunderson [Wed, 1 Mar 2017 19:25:17 +0000 (20:25 +0100)]
Remove a dead code line.

Found by Coverity Scan.

7 years agoMake the API for begin_frame()/end_frame() in VideoEncoder a bit more sensible.
Steinar H. Gunderson [Mon, 27 Feb 2017 22:18:24 +0000 (23:18 +0100)]
Make the API for begin_frame()/end_frame() in VideoEncoder a bit more sensible.

7 years agoCorrect a comment.
Steinar H. Gunderson [Mon, 27 Feb 2017 22:06:30 +0000 (23:06 +0100)]
Correct a comment.

7 years agoMake QuickSync surfaces be allocated dynamically.
Steinar H. Gunderson [Sun, 26 Feb 2017 22:24:01 +0000 (23:24 +0100)]
Make QuickSync surfaces be allocated dynamically.

Instead of specifying that frame N always uses surface N % 16,
we allocate dynamically from a pool. This both makes a lot more
sense, and also allows us to hold onto surfaces for other reasons
(like that we want to render _from_ them) in a future patch.

This also necessitated explicit usage tracking of reference frames
in order to avoid display corruption (you can't reuse a surface
before its dependent frames are also done rendering); I'm unsure
if this actually was correct before, but it's possible that the
implicit serialization made sure it actually was, because I've
run the existing code pretty hard before without seeing reference
frame corruption.

7 years agoIn QuickSyncEncoderImpl, make RefPicList* local variables; no need to hold permanent...
Steinar H. Gunderson [Sun, 26 Feb 2017 21:28:21 +0000 (22:28 +0100)]
In QuickSyncEncoderImpl, make RefPicList* local variables; no need to hold permanent state for them.

7 years agobmusb 0.6.0 is in experimental.
Steinar H. Gunderson [Sat, 25 Feb 2017 10:03:28 +0000 (11:03 +0100)]
bmusb 0.6.0 is in experimental.

7 years agoFix an issue where our v210 texture would be too narrow, since there are two differen...
Steinar H. Gunderson [Sun, 26 Feb 2017 17:14:41 +0000 (18:14 +0100)]
Fix an issue where our v210 texture would be too narrow, since there are two different conventions for the width.

7 years agoUnbreak 10-bit input on NVIDIA.
Steinar H. Gunderson [Sun, 26 Feb 2017 15:50:23 +0000 (16:50 +0100)]
Unbreak 10-bit input on NVIDIA.

7 years agoFix an issue where the v210 input texture would have an inefficient width.
Steinar H. Gunderson [Sun, 26 Feb 2017 15:47:50 +0000 (16:47 +0100)]
Fix an issue where the v210 input texture would have an inefficient width.

7 years agoMake sure we do not ask for sRGB backbuffers when rendering to screen.
Steinar H. Gunderson [Sun, 26 Feb 2017 15:18:00 +0000 (16:18 +0100)]
Make sure we do not ask for sRGB backbuffers when rendering to screen.

7 years agoDo not try to stop and restart on DeckLink mode switch if we are not running.
Steinar H. Gunderson [Sun, 26 Feb 2017 15:17:45 +0000 (16:17 +0100)]
Do not try to stop and restart on DeckLink mode switch if we are not running.

7 years agoAdd a copy of the right-click HDMI/SDI output video menu on the main menu bar.
Steinar H. Gunderson [Sat, 25 Feb 2017 09:36:50 +0000 (10:36 +0100)]
Add a copy of the right-click HDMI/SDI output video menu on the main menu bar.

7 years agoSupport 10-bit capture, both on bmusb and on DeckLink drivers.
Steinar H. Gunderson [Tue, 21 Feb 2017 17:42:26 +0000 (18:42 +0100)]
Support 10-bit capture, both on bmusb and on DeckLink drivers.

7 years agoRemove an assert that no longer holds.
Steinar H. Gunderson [Tue, 21 Feb 2017 16:48:58 +0000 (17:48 +0100)]
Remove an assert that no longer holds.

7 years agoRefactor upload_func by splitting out some helper functions.
Steinar H. Gunderson [Sun, 19 Feb 2017 16:45:15 +0000 (17:45 +0100)]
Refactor upload_func by splitting out some helper functions.

7 years agoSet num_levels correctly on the input format.
Steinar H. Gunderson [Sun, 19 Feb 2017 15:59:26 +0000 (16:59 +0100)]
Set num_levels correctly on the input format.

7 years agoMake DeckLinkCapture work with non-interleaved buffers.
Steinar H. Gunderson [Sun, 19 Feb 2017 15:56:42 +0000 (16:56 +0100)]
Make DeckLinkCapture work with non-interleaved buffers.

7 years agoMake ImageInput shutdown immediate, instead of waiting for the sleep to time out.
Steinar H. Gunderson [Sun, 12 Feb 2017 19:11:23 +0000 (20:11 +0100)]
Make ImageInput shutdown immediate, instead of waiting for the sleep to time out.

7 years agoFix so one can use images with other resolutions than 1280x720.
Steinar H. Gunderson [Sun, 12 Feb 2017 19:03:21 +0000 (20:03 +0100)]
Fix so one can use images with other resolutions than 1280x720.

7 years agoIf we get a buffer underrun on resampling, reset the loop filter, since it probably...
Steinar H. Gunderson [Sun, 12 Feb 2017 18:36:56 +0000 (19:36 +0100)]
If we get a buffer underrun on resampling, reset the loop filter, since it probably contains bad data.

7 years agoAdd a switch for writing a timecode to the stream; useful for latency debugging.
Steinar H. Gunderson [Sun, 12 Feb 2017 18:23:08 +0000 (19:23 +0100)]
Add a switch for writing a timecode to the stream; useful for latency debugging.

7 years agoFix --input-mapping= crashing on startup.
Steinar H. Gunderson [Sat, 11 Feb 2017 18:41:21 +0000 (19:41 +0100)]
Fix --input-mapping= crashing on startup.

7 years agoFix an issue with the correction factor locking to 0.95.
Steinar H. Gunderson [Sat, 11 Feb 2017 18:22:36 +0000 (19:22 +0100)]
Fix an issue with the correction factor locking to 0.95.

Basically what was happening is that if the master card lost
or corrupted a frame, which we didn't set a timestamp on,
causing it to have steady_clock::time_point::min(). This would
in turn cause us to assume a latency of trillions of seconds,
throwing off the filter and essentially making it be 0.95 forever.

The fix is twofold; we always set timestamps, but also make
ourselves robust to the ones that are way off (negative uptime).

7 years agoIgnore data from MIDI through; it causes us to basically go into an infinite loop.
Steinar H. Gunderson [Sat, 11 Feb 2017 18:22:18 +0000 (19:22 +0100)]
Ignore data from MIDI through; it causes us to basically go into an infinite loop.

7 years agoIn the MIDI mapper, handle lost events without exiting the thread.
Steinar H. Gunderson [Sat, 11 Feb 2017 18:15:54 +0000 (19:15 +0100)]
In the MIDI mapper, handle lost events without exiting the thread.

7 years agoFix a compiler warning.
Steinar H. Gunderson [Fri, 10 Feb 2017 23:51:22 +0000 (00:51 +0100)]
Fix a compiler warning.

7 years agoFix a variable name.
Steinar H. Gunderson [Fri, 10 Feb 2017 23:51:16 +0000 (00:51 +0100)]
Fix a variable name.

7 years agoAllow adjusting the maximum input queue length by a command-line flag.
Steinar H. Gunderson [Fri, 10 Feb 2017 19:58:50 +0000 (20:58 +0100)]
Allow adjusting the maximum input queue length by a command-line flag.

7 years agoAdd a missing OPTION_ prefix to some enums.
Steinar H. Gunderson [Fri, 10 Feb 2017 18:49:14 +0000 (19:49 +0100)]
Add a missing OPTION_ prefix to some enums.

7 years agoWhen the output card is active, disable the controls to change the master clock ...
Steinar H. Gunderson [Fri, 10 Feb 2017 23:45:05 +0000 (00:45 +0100)]
When the output card is active, disable the controls to change the master clock -- it is locked anyway.

7 years agoRefactor QueueLengthPolicy.
Steinar H. Gunderson [Fri, 10 Feb 2017 00:07:24 +0000 (01:07 +0100)]
Refactor QueueLengthPolicy.

In particular, dropped frames are now counted as part of the queue length.

7 years agoDefault to SMPTE Level A if possible; Level B is uncommon and has problems with at...
Steinar H. Gunderson [Wed, 8 Feb 2017 21:05:44 +0000 (22:05 +0100)]
Default to SMPTE Level A if possible; Level B is uncommon and has problems with at least my SDI->HDMI converter on 3G-SGI video formats.

7 years agoMake it possible to choose the DeckLink output video mode through the GUI.
Steinar H. Gunderson [Wed, 8 Feb 2017 20:38:12 +0000 (21:38 +0100)]
Make it possible to choose the DeckLink output video mode through the GUI.

7 years agoSmall optimization.
Steinar H. Gunderson [Tue, 7 Feb 2017 17:41:16 +0000 (18:41 +0100)]
Small optimization.

7 years agoOn first input, special-case too large queue, not just too small.
Steinar H. Gunderson [Mon, 6 Feb 2017 23:48:22 +0000 (00:48 +0100)]
On first input, special-case too large queue, not just too small.

Fixes problems with low delay and an output timer that starts pretty
slowly (e.g. the HDMI/SDI output timer).

7 years agoRework the audio/video sync algorithm.
Steinar H. Gunderson [Thu, 2 Feb 2017 23:03:58 +0000 (00:03 +0100)]
Rework the audio/video sync algorithm.

It turns out I've been misunderstanding parts of Fons' paper;
my estimation is different, and although it works surprisingly well
for something that's hardly supposed to work at all, it has some
significant problems with edge cases like frame rates being _nearly_
off (e.g. 59.94 Hz input on a 60 Hz output); the estimated delay
under the old algorithm will be a very slow sawtooth, which isn't
nice even after being passed through the filter.

The new algorithm probably still isn't 100% identical to zita-ajbridge,
but it should be much closer to how the algorithm is intended to work.
In particular, it makes a real try to understand that an output frame
can arrive between two input frames in time; this makes it dependent
on the system clock, but that's really the core that was missing from
the algorithm, so it's really more a feature than a bug.

I've made some real attempts at making all the received timestamps
more stable; FakeCapture is a bit odd still (especially at startup)
since it has its thing of just doing frames late instead of dropping
them, but it generally seems to work OK. For cases of frame rate
mismatch (even pretty benign ones), the correction rate seems to be
two orders of magnitude more stable, i.e., the maximum difference
from 1.0 during normal operation is greatly reduced.

7 years agoUpgrade bmusb to get more stable FakeCapture timestamps.
Steinar H. Gunderson [Wed, 1 Feb 2017 23:49:13 +0000 (00:49 +0100)]
Upgrade bmusb to get more stable FakeCapture timestamps.

7 years agoDo not try to adjust the audio timer during HDMI/SDI output preroll.
Steinar H. Gunderson [Sun, 29 Jan 2017 00:08:06 +0000 (01:08 +0100)]
Do not try to adjust the audio timer during HDMI/SDI output preroll.

7 years agoFix so setting of output cards from the command line works again.
Steinar H. Gunderson [Thu, 26 Jan 2017 19:29:11 +0000 (20:29 +0100)]
Fix so setting of output cards from the command line works again.

7 years agoAdd a menu entry to go to the online manual.
Steinar H. Gunderson [Wed, 25 Jan 2017 23:49:54 +0000 (00:49 +0100)]
Add a menu entry to go to the online manual.

7 years agoAdd a beginning UI to switch HDMI/SDI outputs live.
Steinar H. Gunderson [Wed, 25 Jan 2017 23:34:01 +0000 (00:34 +0100)]
Add a beginning UI to switch HDMI/SDI outputs live.

7 years agoWhen switching output cards, do it from the mixer thread.
Steinar H. Gunderson [Wed, 25 Jan 2017 22:45:02 +0000 (23:45 +0100)]
When switching output cards, do it from the mixer thread.

This is a _lot_ easier to reason about (and also much more stable
in practice), but we're still having some issues with delays
on disabling video input.

7 years agoName the ImageInput update threads, too.
Steinar H. Gunderson [Wed, 25 Jan 2017 18:25:44 +0000 (19:25 +0100)]
Name the ImageInput update threads, too.

7 years agoGive all of our threads meaningful names, to aid with debugging.
Steinar H. Gunderson [Wed, 25 Jan 2017 18:20:28 +0000 (19:20 +0100)]
Give all of our threads meaningful names, to aid with debugging.

7 years agoFix transitioning into having no HDMI/SDI output (output_card_index=1).
Steinar H. Gunderson [Tue, 24 Jan 2017 23:03:57 +0000 (00:03 +0100)]
Fix transitioning into having no HDMI/SDI output (output_card_index=1).

7 years agoWork around some deadlock issues when changing output card.
Steinar H. Gunderson [Tue, 24 Jan 2017 22:55:06 +0000 (23:55 +0100)]
Work around some deadlock issues when changing output card.

This feels pretty hackish and not necessarily safe, but it will
do for now. This should hopefully be a pretty rare operation.

7 years agoMake the last pointers in CaptureCard into unique_ptr; the amount of manual bookkeepi...
Steinar H. Gunderson [Tue, 24 Jan 2017 22:22:06 +0000 (23:22 +0100)]
Make the last pointers in CaptureCard into unique_ptr; the amount of manual bookkeeping was getting silly when we have a good solution already in place.

7 years agoFix an issue where parked capture cards would be deleted, causing use-after-free.
Steinar H. Gunderson [Tue, 24 Jan 2017 00:08:30 +0000 (01:08 +0100)]
Fix an issue where parked capture cards would be deleted, causing use-after-free.

7 years agoRemove a FIXME; practical loopback testing showed this was right.
Steinar H. Gunderson [Mon, 23 Jan 2017 19:13:34 +0000 (20:13 +0100)]
Remove a FIXME; practical loopback testing showed this was right.

7 years agoMake the default input mapping ignore the output card.
Steinar H. Gunderson [Mon, 23 Jan 2017 00:01:41 +0000 (01:01 +0100)]
Make the default input mapping ignore the output card.

7 years agoThe DeckLink manual recommends pause + flush over stop for changing mode.
Steinar H. Gunderson [Sun, 22 Jan 2017 21:52:01 +0000 (22:52 +0100)]
The DeckLink manual recommends pause + flush over stop for changing mode.

7 years agoEnable input mode autodetection for DeckLink cards that support it.
Steinar H. Gunderson [Sun, 22 Jan 2017 21:49:47 +0000 (22:49 +0100)]
Enable input mode autodetection for DeckLink cards that support it.

7 years agoUp the timebase so that it can handle 23.976 fps accurately.
Steinar H. Gunderson [Sun, 22 Jan 2017 21:39:21 +0000 (22:39 +0100)]
Up the timebase so that it can handle 23.976 fps accurately.

7 years agoMake for clean shutdown of the output cards.
Steinar H. Gunderson [Sun, 22 Jan 2017 11:51:12 +0000 (12:51 +0100)]
Make for clean shutdown of the output cards.

7 years agoIf a DeckLink card has multiple subdevices, label them.
Steinar H. Gunderson [Sat, 21 Jan 2017 20:38:51 +0000 (21:38 +0100)]
If a DeckLink card has multiple subdevices, label them.

Makes it slightly easier to tell the devices apart on e.g. a Duo 2.

7 years agoSupport DeckLink cards that don't have an HDMI connector.
Steinar H. Gunderson [Thu, 19 Jan 2017 23:44:10 +0000 (00:44 +0100)]
Support DeckLink cards that don't have an HDMI connector.

Setting input or output to HDMI on SDI-only cards is an error,
even if HDMI/SDI generally outputs to both on combined cards.

7 years agoAdd support for DeckLink HDMI/SDI output.
Steinar H. Gunderson [Wed, 18 Jan 2017 22:06:13 +0000 (23:06 +0100)]
Add support for DeckLink HDMI/SDI output.

This is pretty raw still; audio isn't tested much, there's no
documentation, hardcoded 720p60 and no GUI control. But most
of the basic ideas are in place, so it should be a reasonable
base to build on.

7 years agoAdd a flag to output Y'CbCr using Rec. 709 coefficients.
Steinar H. Gunderson [Sun, 15 Jan 2017 20:05:39 +0000 (21:05 +0100)]
Add a flag to output Y'CbCr using Rec. 709 coefficients.

We will be needing this for HDMI/SDI output.

7 years agoSplit DeckLink mode summarization into a separate shared file.
Steinar H. Gunderson [Wed, 11 Jan 2017 21:06:51 +0000 (22:06 +0100)]
Split DeckLink mode summarization into a separate shared file.

Useful when we want output.

7 years agoMove find_received_timestamp() into print_latency.h, so that multiple consumers can...
Steinar H. Gunderson [Mon, 9 Jan 2017 22:51:16 +0000 (23:51 +0100)]
Move find_received_timestamp() into print_latency.h, so that multiple consumers can use it.

7 years agoAdd UYVY support to ChromaSubsampler.
Steinar H. Gunderson [Mon, 9 Jan 2017 22:33:26 +0000 (23:33 +0100)]
Add UYVY support to ChromaSubsampler.

7 years agoUpgrade bmusb to one with more working 1080i/1080p modes.
Steinar H. Gunderson [Sun, 15 Jan 2017 23:24:04 +0000 (00:24 +0100)]
Upgrade bmusb to one with more working 1080i/1080p modes.

7 years agoAdd a tiny explanatory comment.
Steinar H. Gunderson [Sat, 14 Jan 2017 01:02:09 +0000 (02:02 +0100)]
Add a tiny explanatory comment.

7 years agoRename bmusb_mutex to card_mutex; it is not really bound to bmusb anymore.
Steinar H. Gunderson [Wed, 11 Jan 2017 23:59:41 +0000 (00:59 +0100)]
Rename bmusb_mutex to card_mutex; it is not really bound to bmusb anymore.

7 years agoSupport interlaced inputs with the official DeckLink driver.
Steinar H. Gunderson [Sun, 15 Jan 2017 11:04:48 +0000 (12:04 +0100)]
Support interlaced inputs with the official DeckLink driver.

7 years agoMake scan speed much more aggressive; seemingly there are some pauses from the driver...
Steinar H. Gunderson [Sun, 15 Jan 2017 10:36:15 +0000 (11:36 +0100)]
Make scan speed much more aggressive; seemingly there are some pauses from the driver, too.

7 years agoMake for cleaner on/off transitions in DeckLinkCapture.
Steinar H. Gunderson [Sat, 14 Jan 2017 10:32:17 +0000 (11:32 +0100)]
Make for cleaner on/off transitions in DeckLinkCapture.

7 years agoMove chroma subsampling into its own class.
Steinar H. Gunderson [Mon, 9 Jan 2017 22:11:06 +0000 (23:11 +0100)]
Move chroma subsampling into its own class.

This was starting to get a bit large to be part of Mixer, and with
4:2:2 coming up, it makes even more sense to split it out.

7 years agoIf running with unlimited amounts of lockable memory (e.g. as root), give a less...
Steinar H. Gunderson [Mon, 26 Dec 2016 14:12:09 +0000 (15:12 +0100)]
If running with unlimited amounts of lockable memory (e.g. as root), give a less confusing status message.

7 years agoPrepare get_one_frame_from_each_card() interface for different clocks.
Steinar H. Gunderson [Sat, 24 Dec 2016 10:50:00 +0000 (11:50 +0100)]
Prepare get_one_frame_from_each_card() interface for different clocks.

This interface is more flexible, and less bound to the idea of having
the master clock locked to an input card.

7 years agobmusb 0.5.3 is now in stretch.
Steinar H. Gunderson [Sat, 24 Dec 2016 00:07:24 +0000 (01:07 +0100)]
bmusb 0.5.3 is now in stretch.

7 years agoStart capturing only when the mixer is ready.
Steinar H. Gunderson [Fri, 23 Dec 2016 23:06:34 +0000 (00:06 +0100)]
Start capturing only when the mixer is ready.

Seemingly creating a context etc. can take 70+ ms, and letting the
capture cards insert stuff freely for that time confuses ResamplingQueue
(plus probably our video queue length policy). Delay it until we are
actually ready to process output frames.

7 years agoMake the resampling audio queue length adjustable with a flag.
Steinar H. Gunderson [Fri, 23 Dec 2016 22:03:11 +0000 (23:03 +0100)]
Make the resampling audio queue length adjustable with a flag.

7 years agoFix a bug where we would give wrong pts to the QuickSync encoder.
Steinar H. Gunderson [Fri, 23 Dec 2016 13:54:12 +0000 (14:54 +0100)]
Fix a bug where we would give wrong pts to the QuickSync encoder.

7 years agoCorrect/improve output chroma subsampling; it turned out we were essentially not...
Steinar H. Gunderson [Fri, 16 Dec 2016 19:44:58 +0000 (20:44 +0100)]
Correct/improve output chroma subsampling; it turned out we were essentially not doing any filtering horizontally.

7 years agoSet the right texture sampler for the subsampling shader (used to work by accident).
Steinar H. Gunderson [Fri, 16 Dec 2016 19:33:16 +0000 (20:33 +0100)]
Set the right texture sampler for the subsampling shader (used to work by accident).

7 years agoWait for frames in render order, not QuickSync order.
Steinar H. Gunderson [Mon, 12 Dec 2016 22:15:19 +0000 (23:15 +0100)]
Wait for frames in render order, not QuickSync order.

Now that we have x264 and uncompressed outputs, there's no need
to add extra latency for these cases, and the gain for going in
QuickSync order is rather marginal anyway, as long as GPUs don't
render out-of-order.

7 years agoMove QuickSyncEncoderImpl's definition into its own header.
Steinar H. Gunderson [Sun, 11 Dec 2016 12:37:50 +0000 (13:37 +0100)]
Move QuickSyncEncoderImpl's definition into its own header.

It is only used from that single file (naturally enough), but it
ended up cluttering the .cpp file a lot.

7 years agoMove mixer latency measurement to after buffer map.
Steinar H. Gunderson [Sat, 10 Dec 2016 18:11:53 +0000 (19:11 +0100)]
Move mixer latency measurement to after buffer map.

7 years agoAdd a switch to print video latency.
Steinar H. Gunderson [Sat, 10 Dec 2016 14:58:35 +0000 (15:58 +0100)]
Add a switch to print video latency.

This ignores mux latency and audio latency, but it's a very good start
for ongoing low-latency debugging.

Requires bmusb 0.5.3.

7 years agoMake it possible to set width/height on the command line, instead of compiling it...
Steinar H. Gunderson [Sun, 4 Dec 2016 20:11:26 +0000 (21:11 +0100)]
Make it possible to set width/height on the command line, instead of compiling it into the binary.

7 years agoMake the aspect calculations follow from WIDTH/HEIGHT instead of hardcoding 16:9.
Steinar H. Gunderson [Sun, 4 Dec 2016 15:39:56 +0000 (16:39 +0100)]
Make the aspect calculations follow from WIDTH/HEIGHT instead of hardcoding 16:9.

7 years agoRelease Nageru 1.4.2. 1.4.2
Steinar H. Gunderson [Thu, 24 Nov 2016 17:07:02 +0000 (18:07 +0100)]
Release Nageru 1.4.2.