Commit ef23a3c370ebe3b590d97c1f06db46bbdd10303d
1 parent
7b3077d0
upstream samplerate support 48K
in optek link two way mode
Showing
7 changed files
with
66 additions
and
15 deletions
No preview for this file type
| @@ -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