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 | 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