lc3 plugin initial version
Audio codec plugin for LC3 written using https://github.com/google/liblc3
Specification : https://www.bluetooth.com/specifications/specs/low-complexity-communication-codec-1-0/
Example pipelines:
Encoder:
gst-launch-1.0 audiotestsrc num-buffers=1000 ! lc3enc ! audio/x-lc3,frame-duration-us=10000,frame-bytes=100,channels=2,rate=48000 ! filesink location=enc.lc3
Decoder:
gst-launch-1.0 filesrc location=enc.lc3 blocksize=200 ! audio/x-lc3,frame-duration-us=10000,frame-bytes=100,channels=2,rate=48000 ! lc3dec ! pulsesink
In the above example, we use capsfilter to communicate the Common Session Configuration
with the encoder and decoder through the caps. Since we know the frame bytes (byte count) values as 100, we set filesrc to send fixed number of bytes (frame_bytes * channels) in every buffer.
In the real scenario, the frame bytes (byte count), frame duration etc will be shared as via the element upstream (to the lc3dec
) and downstream (to the lc3enc
) and these shall be aware of how many bytes each encoded frame will contain.
To run the unit test suite
meson test --suite gst-plugins-bad elements_lc3
fixes #2472 (closed)