grabación de tinycap

Los problemas de grabación inevitablemente necesitan capturar los datos pcm originales para analizar la forma de onda.Actualmente, la mayoría de Android se basa en tinyalsa para implementar interfaces relacionadas con el audio, por lo que es natural dar este paso en el proceso de depuración.

El código fuente predeterminado de MTK solo incluye el modo de la interfaz tinyalsa y no compila la herramienta de comando tinyalsa en la versión predeterminada

En el directorio de código fuente externo / tinyalsa, compile un solo archivo para generar un archivo ejecutable binario out / target / product / k37mv1_64_bsp / system / bin
tinyhostless
tinymix
tinypcminfo
tinycap
tinyplay

各种 命令 的 用法 por ejemplo.
adb root
adb shell
k37mv1_64_bsp: / # tinycap
Uso: tinycap file.wav [-D card] [-d device] [-c channels] [-r rate] [-b bits] [-p period_size] [-n n nperiods] [-T tiempo de captura]

tarjeta ------
dispositivo de tarjeta de sonido ------ dispositivo de captura / reproducción tinycap debe encontrar los
canales correspondientes del dispositivo de captura ------ número de canales
velocidad ------
bits de frecuencia de muestreo --- - -
Número de dígitos period_size-tamaño de segmento de muestreo único
n_periods-número de segmento de muestreo
tiempo de captura-tiempo de registro

Antes de que tinycap registre oficialmente los datos de pcm, primero abra la configuración del mezclador. Si no está familiarizado con él, podemos resolver este problema de manera inversa, es decir,
podemos ejecutar tinymix sin registrar los datos de pcm y
puede ver lo siguiente estado de configuración:

k37mv1_64_bsp:/ # tinymix
Mixer name: 'mt-snd-card'
Number of controls: 89
ctl     type    num     name                                     value

0       ENUM    1       Audio_Amp_R_Switch                       Off
1       ENUM    1       Audio_Amp_L_Switch                       Off
2       ENUM    1       Voice_Amp_Switch                         Off
3       ENUM    1       Speaker_Amp_Switch                       Off
4       ENUM    1       Headset_Speaker_Amp_Switch               Off
5       ENUM    1       Headset_PGAL_GAIN                        -4Db
6       ENUM    1       Headset_PGAR_GAIN                        -4Db
7       ENUM    1       Handset_PGA_GAIN                         8Db
8       ENUM    1       Lineout_PGAR_GAIN                        0Db
9       ENUM    1       Lineout_PGAL_GAIN                        0Db
10      ENUM    1       AUD_CLK_BUF_Switch                       Off
11      ENUM    1       Ext_Speaker_Amp_Switch                   Off
12      ENUM    1       Receiver_Speaker_Switch                  Off
13      ENUM    1       Audio_ADC_1_Switch                       Off
14      ENUM    1       Audio_ADC_2_Switch                       Off
15      ENUM    1       Audio_ADC_3_Switch                       Off
16      ENUM    1       Audio_ADC_4_Switch                       Off
17      ENUM    1       Audio_Preamp1_Switch                     OPEN
18      ENUM    1       Audio_ADC_1_Sel                          Preamp
19      ENUM    1       Audio_ADC_2_Sel                          Preamp
20      ENUM    1       Audio_ADC_3_Sel                          idle
21      ENUM    1       Audio_ADC_4_Sel                          idle
22      ENUM    1       Audio_PGA1_Setting                       18Db
23      ENUM    1       Audio_PGA2_Setting                       18Db
24      ENUM    1       Audio_PGA3_Setting                       0Db
25      ENUM    1       Audio_PGA4_Setting                       0Db
26      ENUM    1       Audio_MicSource1_Setting                 ADC1
27      ENUM    1       Audio_MicSource2_Setting                 ADC1
28      ENUM    1       Audio_MicSource3_Setting                 ADC1
29      ENUM    1       Audio_MicSource4_Setting                 ADC1
30      ENUM    1       Audio_MIC1_Mode_Select                   DCCMODE
31      ENUM    1       Audio_MIC2_Mode_Select                   DCCMODE
32      ENUM    1       Audio_MIC3_Mode_Select                   ACCMODE
33      ENUM    1       Audio_MIC4_Mode_Select                   ACCMODE
34      ENUM    1       Audio_Mic_Power_Mode                     normal
35      ENUM    1       Audio_Vow_ADC_Func_Switch                Off
36      ENUM    1       Audio_Preamp2_Switch                     OPEN
37      ENUM    1       Audio_Vow_Digital_Func_Switch            Off
38      ENUM    1       Audio_Vow_MIC_Type_Select                HandsetAMIC
39      INT     1       Audio VOWCFG0 Data                       0
40      INT     1       Audio VOWCFG1 Data                       0
41      INT     1       Audio VOWCFG2 Data                       8995
42      INT     1       Audio VOWCFG3 Data                       42856
43      INT     1       Audio VOWCFG4 Data                       111
44      INT     1       Audio VOWCFG5 Data                       1
45      INT     1       Audio_VOW_State                          0
46      ENUM    1       SineTable_DAC_HP                         Off
47      ENUM    1       DAC_LOOP_DAC_HS                          Off
48      ENUM    1       DAC_LOOP_DAC_HP                          Off
49      ENUM    1       Voice_Call_DAC_DAC_HS                    Off
50      ENUM    1       SineTable_UL2                            Off
51      ENUM    1       Pmic_Loopback                            Off
52      INT     1       Audio HP ImpeDance Setting               5000
53      ENUM    1       Audio_Speaker_class_Switch               CLASSAB
54      ENUM    1       Audio_Speaker_PGA_gain                   12Db
55      ENUM    1       Audio_Speaker_OC_Falg                    Off
56      ENUM    1       Audio_Speaker_CurrentSensing             Off
57      ENUM    1       Audio_Speaker_CurrentPeakDetector        Off
58      INT     1       Audio AUXADC Data                        -1
59      ENUM    1       Speech_MD_USAGE                          Off
60      ENUM    1       Audio_Hdmi_SideGen_Switch                Off
61      ENUM    1       Audio_i2s0_SideGen_Switch                Off
62      ENUM    1       Audio_i2s0_hd_Switch                     Off
63      ENUM    1       Audio_ExtCodec_EchoRef_Switch            Off
64      INT     1       Audio Mrgrx Volume                       65536
65      ENUM    1       cmb stub Audio Control                   CMB_STUB_AIF_3
66      ENUM    1       Audio_I2S0dl1_hd_Switch                  Off
67      INT     1       Audio IRQ1 CNT                           0
68      ENUM    1       deep_buffer_dl_hd_Switch                 Off
69      INT     1       deep_buffer_irq_cnt                      0
70      ENUM    1       dl1bt_memif_select                       dl1
71      ENUM    1       Audio_FMTX_hd_Switch                     On
72      ENUM    1       Audio_SineGen_Switch                     OFF
73      ENUM    1       Audio_SineGen_SampleRate                 48K
74      ENUM    1       Audio_SineGen_Amplitude                  1/128
75      ENUM    1       Audio_Sidetone_Switch                    Off
76      ENUM    1       Audio_Mode_Switch                        Normal_Mode
77      INT     1       Audio HPL Offset                         1974
78      INT     1       Audio HPR Offset                         1986
79      ENUM    1       Audio_Debug_Setting                      Off
80      ENUM    1       Audio_Ipoh_Setting                       Off
81      ENUM    1       Audio_I2S1_Setting                       Off
82      INT     2       Audio_DL2_DataTransfer                   -1 -1
83      INT     1       Audio_LowLatency_Debug                   0
84      INT     1       Audio_Assign_DRAM                        0
85      ENUM    1       Pmic_Anc_Switch                          ANCON
86      INT     1       Audio FM I2S Volume                      65536
87      ENUM    1       fast_dl_hd_Switch                        Off
88      ENUM    1       I2S low Jitter function                  Off

Luego, primero podemos abrir la aplicación de grabación y usar tinymix para ver los cambios de configuración

k37mv1_64_bsp:/ # tinymix
Mixer name: 'mt-snd-card'
Number of controls: 89
ctl     type    num     name                                     value

0       ENUM    1       Audio_Amp_R_Switch                       Off
1       ENUM    1       Audio_Amp_L_Switch                       Off
2       ENUM    1       Voice_Amp_Switch                         Off
3       ENUM    1       Speaker_Amp_Switch                       Off
4       ENUM    1       Headset_Speaker_Amp_Switch               Off
5       ENUM    1       Headset_PGAL_GAIN                        -4Db
6       ENUM    1       Headset_PGAR_GAIN                        -4Db
7       ENUM    1       Handset_PGA_GAIN                         8Db
8       ENUM    1       Lineout_PGAR_GAIN                        0Db
9       ENUM    1       Lineout_PGAL_GAIN                        0Db
10      ENUM    1       AUD_CLK_BUF_Switch                       On
11      ENUM    1       Ext_Speaker_Amp_Switch                   Off
12      ENUM    1       Receiver_Speaker_Switch                  Off
13      ENUM    1       Audio_ADC_1_Switch                       On
14      ENUM    1       Audio_ADC_2_Switch                       On
15      ENUM    1       Audio_ADC_3_Switch                       Off
16      ENUM    1       Audio_ADC_4_Switch                       Off
17      ENUM    1       Audio_Preamp1_Switch                     IN_ADC1
18      ENUM    1       Audio_ADC_1_Sel                          Preamp
19      ENUM    1       Audio_ADC_2_Sel                          Preamp
20      ENUM    1       Audio_ADC_3_Sel                          idle
21      ENUM    1       Audio_ADC_4_Sel                          idle
22      ENUM    1       Audio_PGA1_Setting                       18Db
23      ENUM    1       Audio_PGA2_Setting                       18Db
24      ENUM    1       Audio_PGA3_Setting                       0Db
25      ENUM    1       Audio_PGA4_Setting                       0Db
26      ENUM    1       Audio_MicSource1_Setting                 ADC1
27      ENUM    1       Audio_MicSource2_Setting                 ADC1
28      ENUM    1       Audio_MicSource3_Setting                 ADC1
29      ENUM    1       Audio_MicSource4_Setting                 ADC1
30      ENUM    1       Audio_MIC1_Mode_Select                   DCCMODE
31      ENUM    1       Audio_MIC2_Mode_Select                   DCCMODE
32      ENUM    1       Audio_MIC3_Mode_Select                   ACCMODE
33      ENUM    1       Audio_MIC4_Mode_Select                   ACCMODE
34      ENUM    1       Audio_Mic_Power_Mode                     normal
35      ENUM    1       Audio_Vow_ADC_Func_Switch                Off
36      ENUM    1       Audio_Preamp2_Switch                     IN_ADC3
37      ENUM    1       Audio_Vow_Digital_Func_Switch            Off
38      ENUM    1       Audio_Vow_MIC_Type_Select                HandsetAMIC
39      INT     1       Audio VOWCFG0 Data                       0
40      INT     1       Audio VOWCFG1 Data                       0
41      INT     1       Audio VOWCFG2 Data                       8995
42      INT     1       Audio VOWCFG3 Data                       42856
43      INT     1       Audio VOWCFG4 Data                       111
44      INT     1       Audio VOWCFG5 Data                       1
45      INT     1       Audio_VOW_State                          0
46      ENUM    1       SineTable_DAC_HP                         Off
47      ENUM    1       DAC_LOOP_DAC_HS                          Off
48      ENUM    1       DAC_LOOP_DAC_HP                          Off
49      ENUM    1       Voice_Call_DAC_DAC_HS                    Off
50      ENUM    1       SineTable_UL2                            Off
51      ENUM    1       Pmic_Loopback                            Off
52      INT     1       Audio HP ImpeDance Setting               5000
53      ENUM    1       Audio_Speaker_class_Switch               CLASSAB
54      ENUM    1       Audio_Speaker_PGA_gain                   12Db
55      ENUM    1       Audio_Speaker_OC_Falg                    Off
56      ENUM    1       Audio_Speaker_CurrentSensing             Off
57      ENUM    1       Audio_Speaker_CurrentPeakDetector        Off
58      INT     1       Audio AUXADC Data                        -1
59      ENUM    1       Speech_MD_USAGE                          Off
60      ENUM    1       Audio_Hdmi_SideGen_Switch                Off
61      ENUM    1       Audio_i2s0_SideGen_Switch                Off
62      ENUM    1       Audio_i2s0_hd_Switch                     Off
63      ENUM    1       Audio_ExtCodec_EchoRef_Switch            Off
64      INT     1       Audio Mrgrx Volume                       65536
65      ENUM    1       cmb stub Audio Control                   CMB_STUB_AIF_3
66      ENUM    1       Audio_I2S0dl1_hd_Switch                  Off
67      INT     1       Audio IRQ1 CNT                           0
68      ENUM    1       deep_buffer_dl_hd_Switch                 Off
69      INT     1       deep_buffer_irq_cnt                      0
70      ENUM    1       dl1bt_memif_select                       dl1
71      ENUM    1       Audio_FMTX_hd_Switch                     On
72      ENUM    1       Audio_SineGen_Switch                     OFF
73      ENUM    1       Audio_SineGen_SampleRate                 48K
74      ENUM    1       Audio_SineGen_Amplitude                  1/128
75      ENUM    1       Audio_Sidetone_Switch                    Off
76      ENUM    1       Audio_Mode_Switch                        Normal_Mode
77      INT     1       Audio HPL Offset                         1974
78      INT     1       Audio HPR Offset                         1986
79      ENUM    1       Audio_Debug_Setting                      Off
80      ENUM    1       Audio_Ipoh_Setting                       Off
81      ENUM    1       Audio_I2S1_Setting                       Off
82      INT     2       Audio_DL2_DataTransfer                   -1 -1
83      INT     1       Audio_LowLatency_Debug                   0
84      INT     1       Audio_Assign_DRAM                        0
85      ENUM    1       Pmic_Anc_Switch                          ANCON
86      INT     1       Audio FM I2S Volume                      65536
87      ENUM    1       fast_dl_hd_Switch                        Off
88      ENUM    1       I2S low Jitter function                  Off
k37mv1_64_bsp:/ #

La comparación encontró que solo hay algunas configuraciones diferentes, por lo que esto sienta las bases para que nuestro tinycap registre datos pcm.

El dispositivo bajo adb ejecuta la configuración de ruta de tinymix

tinymix Audio_ADC_1_Switch On

tinymix Audio_ADC_2_Switch On

tinymix Audio_Preamp1_Switch IN_ADC1

tinymix Audio_Preamp2_Switch IN_ADC3

Finalmente ejecútelo para tomar los datos pcm de grabación originales

tinycap /sdcard/file.wav -D 0 -d 1 -c 2 -r 48000 -b 16

Supongo que te gusta

Origin blog.csdn.net/jeephao/article/details/108228809
Recomendado
Clasificación