Commit ef23a3c370ebe3b590d97c1f06db46bbdd10303d

Authored by luozhesi
1 parent 7b3077d0

upstream samplerate support 48K

in optek link two way mode
... ... @@ -377,7 +377,11 @@ XA_ERRORCODE xa_lc3_dec_main_process_init(U32 bitrate,U16 samplerate,U8 channels
377 377 if (app_main_data.share_link_role == SL_ROLE_MASTER)
378 378 {
379 379 if (frame_Time_ms == 5.0)
  380 + #ifdef UPSTREAM_SAMPLERATE_48k
  381 + arg.enc_frame_bytes = 30;
  382 + #else
380 383 arg.enc_frame_bytes = 25;
  384 + #endif
381 385 else
382 386 arg.enc_frame_bytes = 37;
383 387
... ... @@ -729,7 +733,7 @@ void lc3_dec_main_process_init(void)
729 733 {
730 734 codec_malloc_init ();
731 735 nedd_decode_frames = 0;
732   - if (optek_link_mode == BC_SF44K_T7_R1_PT5MS)
  736 + if (optek_link_mode == BC_SF44K_T7_R1_PT5MS || optek_link_mode == BC_SF44K_PT5MS)
733 737 {
734 738 app_main_data.playing_stream_sample_rate = 44100;
735 739 }
... ... @@ -780,10 +784,17 @@ void lc3_dec_main_process_init_for_master(void)
780 784 }
781 785 else
782 786 {
783   - if (xa_lc3_dec_main_process_init(40000,24000,1,5.0) != XA_NO_ERROR)
  787 + #ifdef UPSTREAM_SAMPLERATE_48k
  788 + if (xa_lc3_dec_main_process_init(48000,48000,1,5.0) != XA_NO_ERROR)
784 789 {
785 790 DBG_Printf("lc3 dec error!--\r\n");
786 791 }
  792 + #else
  793 + if (xa_lc3_dec_main_process_init(40000,24000,1,5.0) != XA_NO_ERROR)
  794 + {
  795 + DBG_Printf("lc3 dec error!--\r\n");
  796 + }
  797 + #endif
787 798 }
788 799
789 800 }
... ...
... ... @@ -695,7 +695,11 @@ void app_nav_rmt_convert_aux(void)
695 695
696 696 #if defined OPL_MODE_TWO_WAY || defined OPL_MODE_SINGLE_WAY
697 697 #if 1
698   - app_change_mode_req(GAME_HEADPHONE_PT_5MS_LP,100,51);
  698 + #ifdef UPSTREAM_SAMPLERATE_48k
  699 + app_change_mode_req(GAME_HEADPHONE_PT_5MS_LP,100,60);
  700 + #else
  701 + app_change_mode_req(GAME_HEADPHONE_PT_5MS_LP,100,50);
  702 + #endif
699 703 #else
700 704 if (optek_link_mode == GAME_HEADPHONE_PT_5MS_LP || optek_link_mode == BC_SF48K_PT5MS)
701 705 {
... ...
... ... @@ -1529,6 +1529,7 @@ void taskDec(void *pvParameters)
1529 1529
1530 1530 xa_lc3_dec_frame(&pOut_up,&len);
1531 1531
  1532 + #ifndef UPSTREAM_SAMPLERATE_48k
1532 1533 short *p = pOut_up;
1533 1534 //24k to 48K
1534 1535 for(i=0; i<len/2; i++)
... ... @@ -1549,7 +1550,7 @@ void taskDec(void *pvParameters)
1549 1550
1550 1551 extern void *upStreamHandle;
1551 1552 optek_bqdiir_mono_16b_process (upStreamHandle,pOut_up,pOut_up,len/2);
1552   -
  1553 + #endif
1553 1554
1554 1555 //master_rev_flag = 0xff;
1555 1556 if (fifo_put_data(&AdcInFifo, pOut_up,len) != len)
... ...
... ... @@ -122,7 +122,7 @@
122 122 #define BT_PA_ENABLE
123 123
124 124 /***********************OPTEK LINK 2.0******************************/
125   -#define OPTEK_LINK_ENABLE
  125 +//#define OPTEK_LINK_ENABLE
126 126
127 127 #ifdef OPTEK_LINK_ENABLE
128 128
... ... @@ -134,6 +134,10 @@
134 134 #define OPL_MODE_TWO_WAY // use optek link lib:optek_link_5ms.a
135 135 //#define OPL_MODE_SWF // use optek link lib:optek_link_5ms_for_swf.a
136 136
  137 +#ifdef OPL_MODE_TWO_WAY
  138 +#define UPSTREAM_SAMPLERATE_48k
  139 +#endif
  140 +
137 141 #if (defined OPL_MODE_TWO_WAY || (defined OPL_MODE_SINGLE_WAY && defined OPL_MASTER_ENABLE))
138 142 #define LC3_ENCODE_ENABLE
139 143 #endif
... ...
... ... @@ -193,10 +193,17 @@ void csbm_tx_init(U16 sample_rate,U8 bt_src)
193 193 }
194 194 else
195 195 {
196   - if (xa_lc3_enc_main_init(40000,24000,1,5.0) != XA_NO_ERROR)
  196 + #ifdef UPSTREAM_SAMPLERATE_48k
  197 + if (xa_lc3_enc_main_init(48000,48000,1,5.0) != XA_NO_ERROR)
197 198 {
198 199 DBG_Printf("lc3 enc init error\n\r");
199 200 }
  201 + #else
  202 + if (xa_lc3_enc_main_init(40000,24000,1,5.0) != XA_NO_ERROR)
  203 + {
  204 + DBG_Printf("lc3 enc init error\n\r");
  205 + }
  206 + #endif
200 207 }
201 208
202 209 upStreamHandle = optek_bqriir_open(codec_malloc(optek_bqriir_alloc(SR_24K_MAX_BIQUAD)),SR_24K_MAX_BIQUAD,sr_24k_dsp_coef);
... ... @@ -268,7 +275,7 @@ extern FIFO audio_delay_fifo;
268 275 if (xa_lc3_enc_main_init(160000,sample_rate,2,5.0) != XA_NO_ERROR)
269 276 {
270 277 DBG_Printf("lc3 enc init error\n\r");
271   - }
  278 + }
272 279 }
273 280
274 281 #endif
... ... @@ -407,20 +414,34 @@ void csbm_put_tx_unencoded_data(short *ptr,U16 len)
407 414 short *pIn = ptr;
408 415 short *pOut = ptr;
409 416
  417 + #ifdef UPSTREAM_SAMPLERATE_48k
  418 + pIn += 1;
  419 +
  420 + len >> 2;
  421 +
  422 + for (i=0;i<(len);i++)
  423 + {
  424 + *pOut++ = *pIn;
  425 + pIn += 2;
  426 + }
  427 +
  428 + xa_lc3_enc_frame(ptr,len,&plc3,&pOutDataLen);
  429 + #else
410 430 optek_bqdiir_stereo_16b_process (upStreamHandle,ptr,ptr,len/2);
411 431
412 432 pIn += 1;
  433 +
  434 + len >> 3;
413 435
414   - for (i=0;i<(len>>3);i++)
  436 + for (i=0;i<(len);i++)
415 437 {
416 438 *pOut++ = *pIn;
417 439 pIn += 4;
418   - }
419   - //second step stereo to mono
420   - //optek_hifi2_stereo_16b_to_mono(ptr,ptr,len>>2);
  440 + }
421 441
422   - xa_lc3_enc_frame(ptr,len>>3,&plc3,&pOutDataLen);
423   - //DBG_Assert(pOutDataLen == 25);
  442 + xa_lc3_enc_frame(ptr,len,&plc3,&pOutDataLen);
  443 + #endif
  444 +
424 445 if (bc_tx_data.tx_len == 0 && pOutDataLen)
425 446 {
426 447 memcpy(bc_tx_data.tx_data+bc_tx_data.cur_data_len,plc3,pOutDataLen);
... ... @@ -1041,6 +1062,11 @@ u8 optek_link_slave_conn_cb (u8 mode, u8 *slave_max_tx_len, u8 *slave_max_rx_len
1041 1062 *slave_max_tx_len = OPTEK_LINK_MASTER_NO_RX_LEN;
1042 1063 *slave_max_rx_len = 100;
1043 1064 }
  1065 + else if (optek_link_mode == BC_SF44K_T7_R1_PT5MS || optek_link_mode == BC_SF44K_PT5MS)
  1066 + {
  1067 + *slave_max_tx_len = OPTEK_LINK_MASTER_NO_RX_LEN;
  1068 + *slave_max_rx_len = 108;
  1069 + }
1044 1070 else if (mode == BC_SF48K_PT7P5MS)
1045 1071 {
1046 1072 *slave_max_tx_len = OPTEK_LINK_MASTER_NO_RX_LEN;
... ... @@ -1050,7 +1076,7 @@ u8 optek_link_slave_conn_cb (u8 mode, u8 *slave_max_tx_len, u8 *slave_max_rx_len
1050 1076 #if (defined OPL_MODE_TWO_WAY)
1051 1077 else if (mode == GAME_HEADPHONE_PT_5MS_LP)
1052 1078 {
1053   - *slave_max_tx_len = 51;
  1079 + *slave_max_tx_len = 60;
1054 1080 *slave_max_rx_len = 100;
1055 1081 }
1056 1082 else if (mode == GAME_HEADPHONE_PT7P5MS_T7R3E)
... ...
... ... @@ -286,7 +286,12 @@ uint8_t optek_link_role_change_slave_to_scan (uint8_t act_id);
286 286
287 287 #define TEST_MODE GAME_HEADPHONE_PT_5MS_LP
288 288 #define MASTER_MAX_TX_LEN 100
289   -#define SLAVE_MAX_TX_LEN 51
  289 +
  290 +#ifdef UPSTREAM_SAMPLERATE_48k
  291 +#define SLAVE_MAX_TX_LEN 60
  292 +#else
  293 +#define SLAVE_MAX_TX_LEN 50
  294 +#endif
290 295
291 296
292 297
... ...
Please register or login to post a comment