Commit Graph

220 Commits

Author SHA1 Message Date
Martin Pulec
c1d6bb84b0 DeckLink: continue if CoInit fails on diff. mode 2023-02-24 12:02:32 +01:00
Martin Pulec
c5395fe662 DeckLink drift fixer: set SoxR as default 2022-11-14 08:57:48 +01:00
Martin Pulec
d72f3fe8ff DeckLink: BMD_CONFIG_SET_ACTION->BMD_CONFIG_SET
+ prepend '\t' to decklink display device (prettier)
2022-11-11 12:13:11 +01:00
Martin Pulec
a0adcad4cb blackmagic_common: remove BMD_CONFIG_SET
BMD_CONFIG_SET is superseded by BMD_CONFIG_SET_ACTION (without hardcoded
"goto error;")
2022-11-08 16:49:37 +01:00
Martin Pulec
4834b1f76e DeckLink disp.: hide modes if not fullhelp
The listing can be very long (especially for 8K Pro), hiding the actual
option syntax.
2022-10-26 13:45:44 +02:00
Martin Pulec
4362836515 DeckLink disp. updates: mostly pretty-print 2022-10-26 11:45:55 +02:00
Martin Pulec
366c826ec6 DeckLink disp.: replaced rang 2022-10-26 11:27:57 +02:00
Martin Pulec
45b815952b DeckLink disp.: small updates
- try to minimize git diff with fc5f482 for DeckLink disp
- hide the resampler parameters to fullhelp
2022-10-26 09:20:50 +02:00
Martin Pulec
bbdc0efb0c moved DeckLink drift related code to sep. file. 2022-10-26 09:20:50 +02:00
Martin Pulec
befb613532 DeckLink disp.: AudioDriftFixer - del default dct.
Removed default destructor - the values were hardcoded anyways, so use
brace-or-equals initializers directly.
2022-10-26 09:20:50 +02:00
Martin Pulec
787731fd96 DeckLink disp.: simplified parsing
rather hard-fail than silently continue (user may not see the message)
2022-10-26 09:20:50 +02:00
Martin Pulec
a6235673d5 DeckLink disp.: don't measure dur. of (audio) putf
Frame scheduling is clearly non-blocking but even the sync calls are
non-blocking - for video, next video frame is replaced, for audio, the
samples are written to ring buffer (with possible overflow). So the
numbers are almost everytime near zero.
2022-10-26 09:20:50 +02:00
Martin Pulec
45c33130ba moved DecklinkAudioSummary calls to AudioDriftFixer 2022-10-26 09:20:49 +02:00
Martin Pulec
8039506d72 DeckLink disp.: simplify _init
this reverts the corresponding changes in db20fa3
2022-10-26 09:20:49 +02:00
Martin Pulec
44c77fa88e fixed log levels
reverted some increased verbosity from merge
2022-10-26 09:20:49 +02:00
Martin Pulec
f224e62872 DeckLink disp.: disable resampler by default 2022-10-25 15:50:11 +02:00
Martin Pulec
1122cfe410 removed unused code after merge 2022-10-25 15:50:08 +02:00
Martin Pulec
14bff97622 Merge branch 'aw-sohonet-wip-deck-drift' 2022-10-25 15:47:31 +02:00
Martin Pulec
05aea72a3c moved some functions from misc to text
moved text-related functions from utils/misc to utils/text
2022-10-13 09:16:16 +02:00
Martin Pulec
42b3fc1558 common handling of modules printing usage
Return a macro ((void *) 1) from modules returning pointer to signalize
that help was printed (for correct UG return value). This replaces the
old behavior when module class specific value (eg. &display_init_noerr)
was returned.
2022-10-12 12:05:19 +02:00
Martin Pulec
f7cc336cac decklink disp.: implemented timeout 2022-10-05 16:24:24 +02:00
Martin Pulec
00801fa3d4 video display: updated putf api - use timeout
Replace blocking/nonblock/discard flags with numerical timeout for
fine-grainer control of latency.

The original flags are kept as convenience macros so the API changes is
only small as long as non-block (default) or blocking is used.
2022-10-05 16:24:24 +02:00
Martin Pulec
02e52afa7b video display FPS ind.: provide name by module
Use name (MOD_NAME) provided by module rather than name given from
command-line. Those 2 may not match - in command-line it is
case-insensitive so ("gl" or even "gL" would be printed inestead of
expected "GL"). Also there may be input/output module of the same name
(eg. decklink) for which we may want to distinguish.
2022-09-27 15:52:28 +02:00
Martin Pulec
bd53ae9ac9 DeckLink disp.: timecode improvements
- use 16 bytes to be safe (compiler incorrectly warns)
- allocate temporary variable on heap
- improved asserts for assumed numeric ranges (counting with leap
  seconds)
2022-09-26 13:35:43 +02:00
Martin Pulec
19e8d968bf DeckLink cap./disp.: check profile for 3D
Verify if active profile is compatible with 3D mode - if not, suggest profile
change.
2022-09-22 08:19:07 +02:00
aw-sohonet
11efbce61e Updated dynamic resampler to use SOXR
* Added soxr 0.1.3 as an external dependency (for the resampling code)
* Removed resampler quality parameter
* The decklink drift fixing class has been changed to be disabled by default. The help for the decklink has also been updated to include details about the dynamic resampling process.
* Stopped the dynamic resampler spamming the verbose log too much
2022-09-12 10:02:29 +01:00
andrew.walker
2a7931a154 Fixed a boolean being the wrong way around 2022-09-12 10:02:29 +01:00
andrew.walker
872e2eccd9 Updated the jitter values to be far more forgiving 2022-09-12 10:02:29 +01:00
andrew.walker
f94c55437b Updated to fix some off by 1 errors which was causing major drifts in of itself. 2022-09-12 10:02:29 +01:00
andrew.walker
c2c405d899 Updated the decklink to always resample towards the target 2022-09-12 10:02:29 +01:00
andrew.walker
47190f9a0b Have the decklink report stats more often 2022-09-12 10:02:29 +01:00
andrew.walker
54182f2c26 Fixed the correct way around for the time diff calculation 2022-09-12 10:02:29 +01:00
andrew.walker
e44130004f Added some additional stats to capture 2022-09-12 10:02:29 +01:00
andrew.walker
64161f943e Added comments to added functions that were missing them, and changed a log line to better reflect the error case it was covering. 2022-09-12 10:02:29 +01:00
andrew.walker
ecba755771 Updated to be able to variably set the minHz, maxHz, and target buffer fill for the audio drifting class 2022-09-12 10:02:29 +01:00
andrew.walker
a4ed6c685c Updated audio summary struct variable name to be "audio_summary" 2022-09-12 10:02:29 +01:00
andrew.walker
6ac3c69df7 Moved the overflow code to be generic for both low-latency and non-low-latency. Made the summary output look more like other examples. 2022-09-12 10:02:29 +01:00
andrew.walker
474c7c6696 Resolved casting issues when the previous buffer has not been set for the first time. 2022-09-12 10:02:29 +01:00
andrew.walker
1ed3c8da09 Reorganised so that the class doesn't need a forward declaration and added some additional formatting. 2022-09-12 10:02:29 +01:00
andrew.walker
adbd605014 Added an audio summary class to the decklink to get periodic updates to various stats (resample count, etc). 2022-09-12 10:02:29 +01:00
andrew.walker
f674ea027c Changed the code to average over a smaller amount of time. To have a slightly lower target fill count. To have a lower scaling of possible deltas in the sample rate (5-50 -> 1-5). The amount required to resample is now calculated as the distance from the boundary to the average buffer, not the distance from the target buffer to the average buffer. 2022-09-12 10:02:29 +01:00
andrew.walker
49c56395d5 Fixed floating point calculations to be correct when converting 32bit ints to floats. Fixed class names and initialisation of objects in the decklink state. 2022-09-12 10:02:29 +01:00
andrew.walker
c852f61579 Updated with comments and removal of some unnecessary log lines (and changing some to DEBUG). Added some tidying of the deck drift audio class that should make it more easily applicable to other cards. Changed so that now the audio drift class is always enabled (and that no_drift_fix) disables it's functionality. 2022-09-12 10:02:29 +01:00
andrew.walker
fb0ba11995 Updated to introduce threading for the channels in resampling 2022-09-12 10:02:29 +01:00
andrew.walker
ce03347236 Updated to have the fix in for tail buffer when the decompressed audio is 4 bytes per sample. 2022-09-12 10:02:29 +01:00
andrew.walker
6880a5a602 Added some additional debug for 32bit audio resampling. 2022-09-12 10:02:29 +01:00
andrew.walker
da436e47b0 Updated with some intial threading code and handling for 32bps audio resampling 2022-09-12 10:02:29 +01:00
andrew.walker
2727485c89 Removed set fps calls as they are no longer present. Fixed some casting issues to remove compiler warnings. 2022-09-12 10:02:29 +01:00
andrew.walker
aae91eb636 Added comments for the changes that were made to the resampling code and removed all unecessary log lines as part of the investigation into the code. 2022-09-12 10:02:29 +01:00
andrew.walker
bdf75e2276 Latest updates for working resampling 2022-09-12 10:02:29 +01:00