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,7 +377,11 @@ XA_ERRORCODE xa_lc3_dec_main_process_init(U32 bitrate,U16 samplerate,U8 channels
377 if (app_main_data.share_link_role == SL_ROLE_MASTER) 377 if (app_main_data.share_link_role == SL_ROLE_MASTER)
378 { 378 {
379 if (frame_Time_ms == 5.0) 379 if (frame_Time_ms == 5.0)
  380 + #ifdef UPSTREAM_SAMPLERATE_48k
  381 + arg.enc_frame_bytes = 30;
  382 + #else
380 arg.enc_frame_bytes = 25; 383 arg.enc_frame_bytes = 25;
  384 + #endif
381 else 385 else
382 arg.enc_frame_bytes = 37; 386 arg.enc_frame_bytes = 37;
383 387
@@ -729,7 +733,7 @@ void lc3_dec_main_process_init(void) @@ -729,7 +733,7 @@ void lc3_dec_main_process_init(void)
729 { 733 {
730 codec_malloc_init (); 734 codec_malloc_init ();
731 nedd_decode_frames = 0; 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 app_main_data.playing_stream_sample_rate = 44100; 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,10 +784,17 @@ void lc3_dec_main_process_init_for_master(void)
780 } 784 }
781 else 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 DBG_Printf("lc3 dec error!--\r\n"); 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,7 +695,11 @@ void app_nav_rmt_convert_aux(void)
695 695
696 #if defined OPL_MODE_TWO_WAY || defined OPL_MODE_SINGLE_WAY 696 #if defined OPL_MODE_TWO_WAY || defined OPL_MODE_SINGLE_WAY
697 #if 1 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 #else 703 #else
700 if (optek_link_mode == GAME_HEADPHONE_PT_5MS_LP || optek_link_mode == BC_SF48K_PT5MS) 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,6 +1529,7 @@ void taskDec(void *pvParameters)
1529 1529
1530 xa_lc3_dec_frame(&pOut_up,&len); 1530 xa_lc3_dec_frame(&pOut_up,&len);
1531 1531
  1532 + #ifndef UPSTREAM_SAMPLERATE_48k
1532 short *p = pOut_up; 1533 short *p = pOut_up;
1533 //24k to 48K 1534 //24k to 48K
1534 for(i=0; i<len/2; i++) 1535 for(i=0; i<len/2; i++)
@@ -1549,7 +1550,7 @@ void taskDec(void *pvParameters) @@ -1549,7 +1550,7 @@ void taskDec(void *pvParameters)
1549 1550
1550 extern void *upStreamHandle; 1551 extern void *upStreamHandle;
1551 optek_bqdiir_mono_16b_process (upStreamHandle,pOut_up,pOut_up,len/2); 1552 optek_bqdiir_mono_16b_process (upStreamHandle,pOut_up,pOut_up,len/2);
1552 - 1553 + #endif
1553 1554
1554 //master_rev_flag = 0xff; 1555 //master_rev_flag = 0xff;
1555 if (fifo_put_data(&AdcInFifo, pOut_up,len) != len) 1556 if (fifo_put_data(&AdcInFifo, pOut_up,len) != len)
@@ -122,7 +122,7 @@ @@ -122,7 +122,7 @@
122 #define BT_PA_ENABLE 122 #define BT_PA_ENABLE
123 123
124 /***********************OPTEK LINK 2.0******************************/ 124 /***********************OPTEK LINK 2.0******************************/
125 -#define OPTEK_LINK_ENABLE 125 +//#define OPTEK_LINK_ENABLE
126 126
127 #ifdef OPTEK_LINK_ENABLE 127 #ifdef OPTEK_LINK_ENABLE
128 128
@@ -134,6 +134,10 @@ @@ -134,6 +134,10 @@
134 #define OPL_MODE_TWO_WAY // use optek link lib:optek_link_5ms.a 134 #define OPL_MODE_TWO_WAY // use optek link lib:optek_link_5ms.a
135 //#define OPL_MODE_SWF // use optek link lib:optek_link_5ms_for_swf.a 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 #if (defined OPL_MODE_TWO_WAY || (defined OPL_MODE_SINGLE_WAY && defined OPL_MASTER_ENABLE)) 141 #if (defined OPL_MODE_TWO_WAY || (defined OPL_MODE_SINGLE_WAY && defined OPL_MASTER_ENABLE))
138 #define LC3_ENCODE_ENABLE 142 #define LC3_ENCODE_ENABLE
139 #endif 143 #endif
@@ -193,10 +193,17 @@ void csbm_tx_init(U16 sample_rate,U8 bt_src) @@ -193,10 +193,17 @@ void csbm_tx_init(U16 sample_rate,U8 bt_src)
193 } 193 }
194 else 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 DBG_Printf("lc3 enc init error\n\r"); 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 upStreamHandle = optek_bqriir_open(codec_malloc(optek_bqriir_alloc(SR_24K_MAX_BIQUAD)),SR_24K_MAX_BIQUAD,sr_24k_dsp_coef); 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,7 +275,7 @@ extern FIFO audio_delay_fifo;
268 if (xa_lc3_enc_main_init(160000,sample_rate,2,5.0) != XA_NO_ERROR) 275 if (xa_lc3_enc_main_init(160000,sample_rate,2,5.0) != XA_NO_ERROR)
269 { 276 {
270 DBG_Printf("lc3 enc init error\n\r"); 277 DBG_Printf("lc3 enc init error\n\r");
271 - } 278 + }
272 } 279 }
273 280
274 #endif 281 #endif
@@ -407,20 +414,34 @@ void csbm_put_tx_unencoded_data(short *ptr,U16 len) @@ -407,20 +414,34 @@ void csbm_put_tx_unencoded_data(short *ptr,U16 len)
407 short *pIn = ptr; 414 short *pIn = ptr;
408 short *pOut = ptr; 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 optek_bqdiir_stereo_16b_process (upStreamHandle,ptr,ptr,len/2); 430 optek_bqdiir_stereo_16b_process (upStreamHandle,ptr,ptr,len/2);
411 431
412 pIn += 1; 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 *pOut++ = *pIn; 438 *pOut++ = *pIn;
417 pIn += 4; 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 if (bc_tx_data.tx_len == 0 && pOutDataLen) 445 if (bc_tx_data.tx_len == 0 && pOutDataLen)
425 { 446 {
426 memcpy(bc_tx_data.tx_data+bc_tx_data.cur_data_len,plc3,pOutDataLen); 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,6 +1062,11 @@ u8 optek_link_slave_conn_cb (u8 mode, u8 *slave_max_tx_len, u8 *slave_max_rx_len
1041 *slave_max_tx_len = OPTEK_LINK_MASTER_NO_RX_LEN; 1062 *slave_max_tx_len = OPTEK_LINK_MASTER_NO_RX_LEN;
1042 *slave_max_rx_len = 100; 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 else if (mode == BC_SF48K_PT7P5MS) 1070 else if (mode == BC_SF48K_PT7P5MS)
1045 { 1071 {
1046 *slave_max_tx_len = OPTEK_LINK_MASTER_NO_RX_LEN; 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,7 +1076,7 @@ u8 optek_link_slave_conn_cb (u8 mode, u8 *slave_max_tx_len, u8 *slave_max_rx_len
1050 #if (defined OPL_MODE_TWO_WAY) 1076 #if (defined OPL_MODE_TWO_WAY)
1051 else if (mode == GAME_HEADPHONE_PT_5MS_LP) 1077 else if (mode == GAME_HEADPHONE_PT_5MS_LP)
1052 { 1078 {
1053 - *slave_max_tx_len = 51; 1079 + *slave_max_tx_len = 60;
1054 *slave_max_rx_len = 100; 1080 *slave_max_rx_len = 100;
1055 } 1081 }
1056 else if (mode == GAME_HEADPHONE_PT7P5MS_T7R3E) 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,7 +286,12 @@ uint8_t optek_link_role_change_slave_to_scan (uint8_t act_id);
286 286
287 #define TEST_MODE GAME_HEADPHONE_PT_5MS_LP 287 #define TEST_MODE GAME_HEADPHONE_PT_5MS_LP
288 #define MASTER_MAX_TX_LEN 100 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