a2dp: reset dec format after LC3 playback

A2DP decoder format will be set to LC3 during playback,
need to reset the value when playback is done.

Change-Id: Icb70dbb2a92e657885276518296e2b6fa45a4c02
diff --git a/hal/audio_extn/a2dp.c b/hal/audio_extn/a2dp.c
index 03ea67a..4a0f964 100644
--- a/hal/audio_extn/a2dp.c
+++ b/hal/audio_extn/a2dp.c
@@ -3049,7 +3049,7 @@
     }
 
     if (a2dp.bt_lib_sink_handle && !a2dp.a2dp_sink_started
-       && !a2dp.a2dp_sink_total_active_session_requests) {
+       && !a2dp.a2dp_sink_total_active_session_requests && a2dp.audio_sink_start) {
         ALOGD("calling BT module stream start");
         /* This call indicates BT IPC lib to start capture */
         ret =  a2dp.audio_sink_start();
@@ -3161,6 +3161,9 @@
     struct abr_dec_cfg_t dummy_reset_cfg;
     int ret = 0;
 
+    if (a2dp.bt_decoder_format == CODEC_TYPE_LC3)
+        a2dp.bt_decoder_format = CODEC_TYPE_INVALID;
+
     ctl_dec_data = mixer_get_ctl_by_name(a2dp.adev->mixer, MIXER_SOURCE_DEC_CONFIG_BLOCK);
     if (!ctl_dec_data) {
         ALOGE("%s: ERROR A2DP decoder config mixer control not identifed", __func__);
@@ -3264,7 +3267,7 @@
         a2dp.a2dp_sink_total_active_session_requests--;
 
     if (a2dp.bt_lib_sink_handle && a2dp.a2dp_sink_started
-        && !a2dp.a2dp_sink_total_active_session_requests) {
+        && !a2dp.a2dp_sink_total_active_session_requests && a2dp.audio_sink_stop) {
         ALOGV("calling BT module stream stop");
         ret = a2dp.audio_sink_stop();
         if (ret < 0)
@@ -3279,7 +3282,7 @@
             ALOGE("stop stream to BT IPC lib failed");
         else
             ALOGV("stop steam to BT IPC lib successful");
-        a2dp.bt_decoder_format = MEDIA_FMT_NONE;
+        a2dp.bt_decoder_format = CODEC_TYPE_INVALID;
         reset_codec_config();
         a2dp.a2dp_sink_started = false;
     }