Commit graph

18 commits

Author SHA1 Message Date
Sebastian Dröge
484cb51445 Implement hopefully working dynamic framebuffer assignments
We try to allocate as many frames as were configured by looking for a
big enough range of unused contiguous frames while taking the configured
modes into account.
2021-11-10 18:05:52 +02:00
Sebastian Dröge
bfdf93ecd1 Configure fewer frames per channel by default
The number of frame stores / frame buffers can't be used like this as
the actual number of frames that can be used also depends on the
resolution.

If too many frames are used and the card's memory runs full, strange
problems (green frames, channels leaking into each other, etc.) will
appear.

As such, configure 8 frames for the source by default and half the queue
length for the sink. If anything else is needed, manual configuration
via the properties has to happen based on the expected workload on all
channels and the characteristics of the card in use.
2021-11-01 16:12:05 +02:00
Sebastian Dröge
22c0b9ed41 Disable channel when exiting from the capture/output thread 2021-08-27 15:13:44 +03:00
Sebastian Dröge
d61b415230 Add properties for selecting capture/output frame buffers to use
And calculate them automatically be default based on the number of frame
buffers available and the number of channels.

This works around various bugs in the AJA SDK when selecting these
manually.

See AJA support ticket #5056.
2021-08-27 15:04:30 +03:00
Sebastian Dröge
a2b30015c7 Add AJA device provider 2021-08-27 14:42:13 +03:00
Sebastian Dröge
735768b905 Add support for UHD/UHD2 modes and SDI quad-link modes 2021-07-06 15:23:17 +03:00
Sebastian Dröge
8075fe577c Streamline VANC/geometry/standard configuration between source and sink
This shouldn't have any effect but makes the configuration the same on
both sides.
2021-03-05 21:50:22 +02:00
Sebastian Dröge
195ffb2101 Work around AJA SDK truncating ADF packets in SD modes when writing to TALL frames
ADF packets that are not a multiple of 12 large are truncated at the end
in SD modes. Instead of directly converting all the packets at once like
for non-SD modes, do the conversion (partially) manually.
2021-03-05 17:56:27 +02:00
Sebastian Dröge
e70dcfa588 Output captions on line 12 instead of line 9
1080p2997 for example does not allow line 9 in TALL frames.
2021-03-05 13:41:56 +02:00
Sebastian Dröge
bdddb634f7 Fill VANC area with black instead of zeroes when outputting TALL frames 2021-03-05 13:41:22 +02:00
Sebastian Dröge
b64c7f3fdc Only propose the AJA allocator from the sink if no TALL frames are allocated 2021-02-19 20:39:58 +02:00
Sebastian Dröge
19f752f8d6 Output VANC via "TALL" video frames if firmware VANC extraction can't be used
This is the case if the device does not support it, or if the output
channel and SDI output are not the same.
2021-02-19 19:41:09 +02:00
Sebastian Dröge
fe248a23e4 Fill ANC buffers from the GStreamer streaming thread and not the rendering thread 2021-02-19 14:47:08 +02:00
Sebastian Dröge
7ce3f2f400 Implement signal loss and frame drop detection in the source 2021-02-09 15:46:48 +02:00
Sebastian Dröge
12380026e6 Simplify configuration of timecode index and embedded audio source 2021-02-09 15:08:26 +02:00
Sebastian Dröge
00c2fcfc8e Improve sink drift calculation by working with the transfer times 2021-02-09 13:50:13 +02:00
Sebastian Dröge
7be26718b8 Add configuration for audio source, embedded audio input and timecode index 2021-02-09 13:24:20 +02:00
Sebastian Dröge
577e9f936b Initial commit 2021-02-08 22:35:45 +02:00