Crate x42ltc_sys
source ·Expand description
bindgen commandline
The following commandline was used to create the initial bindings:
bindgen vendor/src/ltc.h -o src/bindings.rs --with-derive-defaults
Structs
- Extended LTC frame - includes audio-sample position offsets, volume, etc
- Human readable time representation, decimal values.
Constants
- < encoder init or re-init does not touch the BGF bits (initial values after initialization is zero)
- < parity bit is left untouched when setting or in/decrementing the encoder frame-number
- < the Timecode is wall-clock aka freerun. This also sets BGF1 (unless LTC_BGF_DONT_TOUCH is given)
- < LTCFrame <> SMPTETimecode converter and LTCFrame increment/decrement use date, also set BGF2 to ‘1’ when encoder is initialized or re-initialized (unless LTC_BGF_DONT_TOUCH is given)
- < 30fps
- < 25fps
- < 30fps
- < 24fps
Functions
- Create a new LTC decoder.
- Release memory of decoder. @param d decoder handle
- Remove all LTC frames from the internal queue. @param d decoder handle
- Count number of LTC frames currently in the queue. @param d decoder handle @return number of queued frames
- Decoded LTC frames are placed in a queue. This function retrieves a frame from the queue, and stores it at LTCFrameExt*
- Feed the LTC decoder with new audio samples.
- Wrapper around \ref ltc_decoder_write that accepts 64-bit floating point audio samples. Note: internally libltc uses 8 bit only.
- Wrapper around \ref ltc_decoder_write that accepts 32-bit floating point audio samples. Note: internally libltc uses 8 bit only.
- Wrapper around \ref ltc_decoder_write that accepts signed 16 bit audio samples. Note: internally libltc uses 8 bit only.
- Wrapper around \ref ltc_decoder_write that accepts unsigned 16 bit audio samples. Note: internally libltc uses 8 bit only.
- reset the write-pointer of the encoder-buffer @param e encoder handle
- Copy the accumulated encoded audio to the given sample-buffer and flush the internal buffer.
- Allocate and initialize LTC audio encoder.
- Move the encoder to the previous timecode frame. This is useful for encoding reverse LTC. uses \ref ltc_frame_decrement() internally.
- Generate LTC audio for given byte of the LTC-frame and place it into the internal buffer.
- Encode a full LTC frame at fixed speed. This is equivalent to calling \ref ltc_encoder_encode_byte 10 times for bytes 0..9 with speed 1.0.
- Encode a full LTC frame at fixed speed -1. This is equivalent to calling \ref ltc_encoder_encode_byte 10 times for bytes 9..0, rolling in reverse at speed 1.
- Terminate encoding and add final transition
- Release memory of the encoder. @param e encoder handle
- Copy the accumulated encoded audio to the given sample-buffer and flush the internal buffer.
- Retrieve a pointer to the accumulated encoded audio-data.
- Query the length of the internal buffer. It is allocated to hold audio-frames for exactly one LTC frame for the given sample-rate and frame-rate. ie. (1 + sample-rate / fps) bytes
- Retrieve a pointer to the accumulated encoded audio-data.
- Get encoder signal rise-time / signal filtering
- Low-level access to the encoder internal LTCFrame data
- Query the current encoder timecode.
- Query the volume of the generated LTC signal
- Move the encoder to the next timecode frame. uses \ref ltc_frame_increment() internally.
- Change the encoder settings without re-allocating any library internal data structure (realtime safe). changing the fps and or sample-rate implies a buffer flush, and biphase state reset.
- reset ecoder state. flushes buffer, reset biphase state
- Configure a custom size for the internal buffer.
- Configure a custom size for the internal buffer.
- Set encoder signal rise-time / signal filtering
- Low-level access to the internal LTCFrame data.
- Set the encoder LTC-frame to the given SMPTETimecode. The next call to \ref ltc_encoder_encode_byte or \ref ltc_encoder_encode_frame will encode this time to LTC audio-samples.
- Set the user-bits of the frame to the given data.
- Set the volume of the generated LTC signal
- LTCFrame sample alignment offset.
- Decrement the timecode by one Frame (1/framerate seconds) and set the Frame’s parity bit accordingly (see \ref ltc_frame_set_parity)
- Get the 32-bits unsigned integer from the user-data bits. The data should be written LSB first in the frame
- Increment the timecode by one Frame (1/framerate seconds) and set the Frame’s parity bit accordingly (see \ref ltc_frame_set_parity)
- Parse Binary Coded Group Flags into standard independent format: bit 0 (1) - BGF 0, bit 1 (2) - BGF 1, bit 2 (4) - BGF 2
- Reset all values of a LTC FRAME to zero, except for the sync-word (0x3FFD) at the end. The sync word is set according to architecture (big/little endian). Also set the Frame’s parity bit accordingly (see \ref ltc_frame_set_parity) @param frame the LTCFrame to reset
- Set the parity of the LTC frame.
- Convert binary LTCFrame into SMPTETimecode struct
- Translate SMPTETimecode struct into its binary LTC representation and set the LTC frame’s parity bit accordingly (see \ref ltc_frame_set_parity)
Type Aliases
- encoder and LTCframe <> timecode operation flags
- the standard defines the assignment of the binary-group-flag bits basically only 25fps is different, but other standards defined in the SMPTE spec have been included for completeness.
- sample-count offset - 64bit wide
- default audio sample type: 8bit unsigned (mono)