4 Replies Latest reply on Dec 12, 2018 10:33 PM by AnjanaM_61

    A2DP sink configuration

    nismc_3872836

      Hi,

       

      I'm currently debugging some audio quality issues our system is having with over A2DP (dropouts, pops, crackles), notably using phones transferring high data rates in the order of 40-50kB/s. Other phones with lower data rates in the order of 30kB/s do not suffer such problems. These figures were measured over the air using a bluetooth analyser.

       

      My question is: what is the best way to configure the A2DP sink on our CYBT343026 in order to eliminate these issues? Currently it is setup like the example code given:

       

      /** A2DP sink configuration data */
      wiced_bt_a2dp_config_data_t handsfree_audio_config =
      {
          .feature_mask = 0,                                          /* feature mask */
          .codec_capabilities =
          {
              .count = sizeof(handsfree_audio_codec_capabilities) / sizeof(handsfree_audio_codec_capabilities[0]),
              .info  = handsfree_audio_codec_capabilities,            /* codec configuration */
          },
          .p_param =
          {
              .buf_depth_ms                   = 300,                                          /* in msec */
              .start_buf_depth                = 50,                                           /* start playback percentage of the buffer depth */
              .target_buf_depth               = 50,                                           /* target level percentage of the buffer depth */
              .overrun_control                = WICED_BT_A2DP_SINK_OVERRUN_CONTROL_FLUSH_DATA,/* overrun flow control flag */
              .adj_ppm_max                    = +300,                                         /* Max PPM adjustment value */
              .adj_ppm_min                    = -300,                                         /* Min PPM adjustment value */
              .adj_ppb_per_msec               = 200,                                          /* PPM adjustment per milli second */
              .lvl_correction_threshold_high  = +2000,                                        /* Level correction threshold high value */
              .lvl_correction_threshold_low   = -2000,                                        /* Level correction threshold low value */
              .adj_proportional_gain          = 20,                                           /* Proportional component of total PPM adjustment */
              .adj_integral_gain              = 2,                                            /* Integral component of total PPM adjustment */
          },
      };
      

       

      Also, is there any way to detect/quantify packet loss, or any general failures with A2DP? Would also appreciate any additional info on the different parameters that can be affected!

       

      Nick