From 0551b9eca7a6550cc1df6f78e54b56fe6388ae24 Mon Sep 17 00:00:00 2001 From: Andrzej Kaczmarek Date: Wed, 22 Jan 2014 11:34:47 +0100 Subject: [PATCH] android/hal-audio: Initialize SBC encoder --- android/hal-audio.c | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git a/android/hal-audio.c b/android/hal-audio.c index f53dba034..8a5fb1bf4 100644 --- a/android/hal-audio.c +++ b/android/hal-audio.c @@ -28,6 +28,8 @@ #include #include +#include + #include "audio-msg.h" #include "hal-log.h" #include "hal-msg.h" @@ -53,6 +55,8 @@ struct audio_input_config { struct sbc_data { a2dp_sbc_t sbc; + + sbc_t enc; }; static int sbc_get_presets(struct audio_preset *preset, size_t *len); @@ -184,6 +188,19 @@ static int sbc_get_presets(struct audio_preset *preset, size_t *len) return i; } +static void sbc_init_encoder(struct sbc_data *sbc_data) +{ + a2dp_sbc_t *in = &sbc_data->sbc; + sbc_t *out = &sbc_data->enc; + + DBG(""); + + sbc_init_a2dp(out, 0L, in, sizeof(*in)); + + out->endian = SBC_LE; + out->bitpool = in->max_bitpool; +} + static int sbc_codec_init(struct audio_preset *preset, void **codec_data) { struct sbc_data *sbc_data; @@ -199,6 +216,8 @@ static int sbc_codec_init(struct audio_preset *preset, void **codec_data) memcpy(&sbc_data->sbc, preset->data, preset->len); + sbc_init_encoder(sbc_data); + *codec_data = sbc_data; return AUDIO_STATUS_SUCCESS; @@ -206,8 +225,11 @@ static int sbc_codec_init(struct audio_preset *preset, void **codec_data) static int sbc_cleanup(void *codec_data) { + struct sbc_data *sbc_data = (struct sbc_data *) codec_data; + DBG(""); + sbc_finish(&sbc_data->enc); free(codec_data); return AUDIO_STATUS_SUCCESS; -- 2.47.3