Skip to content

lc3 plugin initial version

Taruntej Kanakamalla requested to merge tkanakamalla/gstreamer:lc3 into main

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)

Edited by Taruntej Kanakamalla

Merge request reports