]> granicus.if.org Git - esp-idf/commitdiff
component/bt: Fix bug: a2dp disc_rsn error when as master
authorbaohongde <baohongde@espressif.com>
Tue, 6 Mar 2018 06:11:28 +0000 (14:11 +0800)
committerbaohongde <baohongde@espressif.com>
Tue, 6 Mar 2018 06:11:28 +0000 (14:11 +0800)
components/bt/bluedroid/bta/av/bta_av_aact.c
components/bt/bluedroid/bta/av/bta_av_main.c

index c0f0b3398dcf6937a49580312d3b982537ddde63..6498acd972e1e09c28991b415b5642cf2d918aa0 100644 (file)
@@ -514,6 +514,9 @@ static void bta_av_proc_stream_evt(UINT8 handle, BD_ADDR bd_addr, UINT8 event, t
             p_msg->disc_rsn = p_data->hdr.err_param;
             break;
             */
+            case AVDT_DISCONNECT_IND_EVT:
+                p_msg->hdr.offset = p_data->hdr.err_param;
+                break;
             default:
                 break;
             }
index f44186c6d6c6c7117cc916d8131222bd93fc3711..be141b6e4baff3d08632023f4384374527a722e1 100644 (file)
@@ -1239,9 +1239,10 @@ BOOLEAN bta_av_hdl_event(BT_HDR *p_msg)
         bta_av_sm_execute(&bta_av_cb, p_msg->event, (tBTA_AV_DATA *) p_msg);
     } else {
         APPL_TRACE_VERBOSE("handle=0x%x\n", p_msg->layer_specific);
+        tBTA_AV_SCB *p_scb = bta_av_hndl_to_scb(p_msg->layer_specific);
+        p_scb->disc_rsn = p_msg->offset;
         /* stream state machine events */
-        bta_av_ssm_execute( bta_av_hndl_to_scb(p_msg->layer_specific),
-                            p_msg->event, (tBTA_AV_DATA *) p_msg);
+        bta_av_ssm_execute(p_scb, p_msg->event, (tBTA_AV_DATA *) p_msg);
     }
     return TRUE;
 }