FreeCalypso > hg > freecalypso-reveng
annotate pirelli/aec @ 384:dec73b00871d
pirelli/audio-tones: call waiting tone captured
| author | Mychaela Falconia <falcon@freecalypso.org> | 
|---|---|
| date | Wed, 10 Nov 2021 02:15:27 +0000 | 
| parents | 0f9606d1f8b8 | 
| children | 
| rev | line source | 
|---|---|
| 372 
0f9606d1f8b8
pirelli/aec: results of investigation into Pirelli's AEC config
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1 Reverse eng question: what does Pirelli's fw do with the AEC feature | 
| 
0f9606d1f8b8
pirelli/aec: results of investigation into Pirelli's AEC config
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 2 of Calypso DSP? | 
| 
0f9606d1f8b8
pirelli/aec: results of investigation into Pirelli's AEC config
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 3 | 
| 
0f9606d1f8b8
pirelli/aec: results of investigation into Pirelli's AEC config
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 4 Seeking an answer to this question, I sent an aur 12 command to Pirelli's fw | 
| 
0f9606d1f8b8
pirelli/aec: results of investigation into Pirelli's AEC config
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 5 via fc-tmsh. The response came back with 48 bytes of data, consistent | 
| 
0f9606d1f8b8
pirelli/aec: results of investigation into Pirelli's AEC config
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 6 with our reference TCS211 code with L1_NEW_AEC enabled. Here is the raw | 
| 
0f9606d1f8b8
pirelli/aec: results of investigation into Pirelli's AEC config
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 7 response in non-loudspeaker-call state: | 
| 
0f9606d1f8b8
pirelli/aec: results of investigation into Pirelli's AEC config
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 8 | 
| 
0f9606d1f8b8
pirelli/aec: results of investigation into Pirelli's AEC config
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 9 aur 12: 48 bytes | 
| 
0f9606d1f8b8
pirelli/aec: results of investigation into Pirelli's AEC config
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 10 offset 00: 02 00 01 00 14 00 CC 0C AD 59 00 40 32 00 00 10 | 
| 
0f9606d1f8b8
pirelli/aec: results of investigation into Pirelli's AEC config
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 11 offset 10: 00 10 00 00 04 00 00 00 9E FE 43 06 E5 16 34 36 | 
| 
0f9606d1f8b8
pirelli/aec: results of investigation into Pirelli's AEC config
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 12 offset 20: E5 16 43 06 9E FE B4 FC BA FE 0F 01 40 00 C7 FF | 
| 
0f9606d1f8b8
pirelli/aec: results of investigation into Pirelli's AEC config
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 13 | 
| 
0f9606d1f8b8
pirelli/aec: results of investigation into Pirelli's AEC config
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 14 In an active loudspeaker call, two settings change: | 
| 
0f9606d1f8b8
pirelli/aec: results of investigation into Pirelli's AEC config
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 15 | 
| 
0f9606d1f8b8
pirelli/aec: results of investigation into Pirelli's AEC config
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 16 aur 12: 48 bytes | 
| 
0f9606d1f8b8
pirelli/aec: results of investigation into Pirelli's AEC config
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 17 offset 00: 02 00 01 00 14 00 CC 0C FF 0F 00 40 32 00 00 10 | 
| 
0f9606d1f8b8
pirelli/aec: results of investigation into Pirelli's AEC config
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 18 offset 10: 00 10 00 00 04 00 60 00 9E FE 43 06 E5 16 34 36 | 
| 
0f9606d1f8b8
pirelli/aec: results of investigation into Pirelli's AEC config
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 19 offset 20: E5 16 43 06 9E FE B4 FC BA FE 0F 01 40 00 C7 FF | 
| 
0f9606d1f8b8
pirelli/aec: results of investigation into Pirelli's AEC config
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 20 | 
| 
0f9606d1f8b8
pirelli/aec: results of investigation into Pirelli's AEC config
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 21 Due to a misdesign in ETM (apparently unchanged between reference TCS211 and | 
| 
0f9606d1f8b8
pirelli/aec: results of investigation into Pirelli's AEC config
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 22 Pirelli's fw), the 48 bytes that come back are actually just 24 bytes of real | 
| 
0f9606d1f8b8
pirelli/aec: results of investigation into Pirelli's AEC config
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 23 data (new AEC config is 12 16-bit words) followed by 24 bytes of garbage | 
| 
0f9606d1f8b8
pirelli/aec: results of investigation into Pirelli's AEC config
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 24 padding. Decoding the returned 12 words of new AEC config, we get: | 
| 
0f9606d1f8b8
pirelli/aec: results of investigation into Pirelli's AEC config
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 25 | 
| 
0f9606d1f8b8
pirelli/aec: results of investigation into Pirelli's AEC config
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 26 aec_enable = 0x0002 | 
| 
0f9606d1f8b8
pirelli/aec: results of investigation into Pirelli's AEC config
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 27 continuous_filtering = 0x0001 | 
| 
0f9606d1f8b8
pirelli/aec: results of investigation into Pirelli's AEC config
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 28 granularity_attenuation = 0x0014 | 
| 
0f9606d1f8b8
pirelli/aec: results of investigation into Pirelli's AEC config
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 29 smoothing_coefficient = 0x0CCC | 
| 
0f9606d1f8b8
pirelli/aec: results of investigation into Pirelli's AEC config
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 30 max_echo_suppression_level = 0x59AD (handheld mode) or 0x0FFF (loudspeaker) | 
| 
0f9606d1f8b8
pirelli/aec: results of investigation into Pirelli's AEC config
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 31 vad_factor = 0x4000 | 
| 
0f9606d1f8b8
pirelli/aec: results of investigation into Pirelli's AEC config
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 32 absolute_threshold = 0x0032 | 
| 
0f9606d1f8b8
pirelli/aec: results of investigation into Pirelli's AEC config
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 33 factor_asd_filtering = 0x1000 | 
| 
0f9606d1f8b8
pirelli/aec: results of investigation into Pirelli's AEC config
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 34 factor_asd_muting = 0x1000 | 
| 
0f9606d1f8b8
pirelli/aec: results of investigation into Pirelli's AEC config
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 35 aec_visibility = 0 | 
| 
0f9606d1f8b8
pirelli/aec: results of investigation into Pirelli's AEC config
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 36 noise_suppression_enable = 0x0004 | 
| 
0f9606d1f8b8
pirelli/aec: results of investigation into Pirelli's AEC config
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 37 noise_suppression_level = 0 (handheld mode) or 0x0060 (loudspeaker) | 
