MMC is a service running in minijail that isolates codec implementations from the Bluetooth process and system resources. It is an independent daemon that spawns codec servers on demand to communicate with their corresponding codec clients living in Floss.
init
, cleanup
, transcode
.init
: set up transcoder and return frame size accepted by the transcoder.cleanup
: clear the transcoder context.transcode
: transcode input data, store result in the given output buffer, and return the transcoded data length.ConfigParam
.ConfigParam
to create its corresponding server in CodecInit
.CodecClient
from within the BT processCodecClient
.init
: set up ConfigParam
and pass it to CodecClient
.transcode
: pass input and output buffer, and specify the input data size and the output buffer capacity. transcode
returns transcoded data length on success, and negative error number otherwise.cleanup
: when a session ends, cleanup
should be called.