分享

音频等记录

 宇宙之彬 2018-09-13
arecord -c 2 -r 44100 -f S16_LE -D plughw:4,0 record.pcm







root@atlas7-arm:/media/disk#                                 
root@atlas7-arm:/media/disk# aplay -D plughw:0,1 greetlogo.wav         
Playing WAVE 'greetlogo.wav' : Signed 16 bit Little Endian, Rate 44100 Hz, Stereo                                                  
root@atlas7-arm:/media/disk# aplay -D hw:0,1 greetlogo.wav            
Playing WAVE 'greetlogo.wav' : Signed 16 bit Little Endian, Rate 44100 Hz, Stereo                                                  
Warning: rate is not accurate (requested = 44100Hz, got = 48000Hz)       please, try the plug plugin                                            
aplay: pcm_write:1947: write error: Bad address                    
root@atlas7-arm:/media/disk# aplay -D plughw:0,1 greetlogo.wav                           
Playing WAVE 'greetlogo.wav' : Signed 16 bit Little Endian, Rate 44100 Hz, Stereo 
aplay -Dplug:dmix
手机互联:

echo 1 > /sys/bus/platform/devices/ci_hdrc.0/inputs/a_apple_rs_req
roleswitch /dev/bus/usb/001/002 1

./roleswitch /dev/bus/usb/001/003 1
Request role switch (Support CarPlay) successful
///////////////////////////////////////////////////////////////////////////
车速
单片机工作时对gpio0管脚有配置:devmem 0x10E40100 0x44220300 读出结果为
转速设置成功方法:
1.短接主板上U8 4与6脚后上电
2. devmem 0x10E40100                       //0x44230303 查看管脚配置成功
cat /sys/bus/platform/devices/10d90000.pulsec/l_num  //与主电源一起的当蓝色线短路时有脉冲计数

seep_ ill_det 


//////////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////////
gst-launch-1.0 v4l2src device=/dev/video0 norm=45056  ! video/x-raw, format=RGB,width=800,height=480 ! queue ! v4l2sink device=/dev/video2

gst-launch-1.0 v4l2src device=/dev/video0 norm=45056 ! video/x-raw, width=720,height=480 ! v4l2sink device=/dev/video1

gst-inspect-1.0 v4l2src
gst-inspect-1.0 v4l2sink



gst-launch-1.0 v4l2src device=/dev/video0 norm=45056 \
! video/x-raw, width=720,height=480 ! v4l2sink device=/dev/video2




gst-inspect-1.0 v4l2src
gst-inspect-1.0 v4l2sink


cvbs 切换
devmem 0x10db281c 8 66  // cvbs1
devmem 0x10db281c 8 2   // cvbs0 

sudo cp -af *  /media/a/root/
/////////////////////////////////////////////////////////////////////////////////
测试LINE0

amixer sset 'Input path' LINE0
arecord  -f S16_LE -r 8000 -t wav | aplay



aux 探测事件
#define KEY_AUX 0x186
hexdump -C /dev/input/event0  


00000200  de 39 e2 57 29 a1 08 00  01 00 86 01 01 00 00 00  |.9.W)...........|  按下
00000210  de 39 e2 57 29 a1 08 00  00 00 00 00 00 00 00 00  |.9.W)...........|


00000220  df 39 e2 57 08 05 08 00  01 00 86 01 00 00 00 00  |.9.W............|  抬起
00000230  df 39 e2 57 08 05 08 00  00 00 00 00 00 00 00 00  |.9.W............|
/////////////////////////////////////////////////////////////////////////////////////////
麦克风测试
amixer sset 'Input path' MIC0
arecord  -f S16_LE -r 8000 -t wav | aplay

arecord -c 1 -t wav -r 16000 -f S16_LE -Dhw:0,10 /tmp/record_16kHz-carplayvoicecall.wav 
arecord -c 1 -t wav -r 8000 -f S16_LE -Dhw:0,10
mic调整
devmem 0x10E40354
devmem 0x10E40350 32 0x3
//clr
devmem 0x10E4025C 32
//set  
devmem 0x10E40258 32 0x3
//



Direct Stream Mixing PCM                                                       

Its setup is:                                                                  

  stream       : PLAYBACK                                                      

  access       : RW_INTERLEAVED                                                

  format       : S16_LE                                                        

  subformat    : STD                                                           

  channels     : 2                                                             

  rate         : 48000                                                         

  exact rate   : 48000 (48000/1)                                               

  msbits       : 16                                                            

  buffer_size  : 23760                                                         

  period_size  : 720   每次传输的数据长度。值越小,时延越小,cpu占用就越高。                                                        

  period_time  : 15000                                                         

  tstamp_mode  : NONE                                                          

  period_step  : 1                                                              

  avail_min    : 720   缓冲区空闲区大于该值时,pcm_mmap_write()才往缓冲写数据。这个 值越大,往缓冲区写入数据的次数就越少,面临XRUN的机会就越大。Android samsung tuna 设备在screen_off时增大该值以减小功耗,在screen_on时减小该 值以减小XRUN的机会。                                                          

  period_event : 0                                                             

  start_threshold  : 23760     缓冲区的数据超过该值时,硬件开始启动数据传输。如果太大, 从开始播放到声音出来时延太长,甚至可导致太短促的声音根本播不出来;如果太小, 又可能容易导致XRUN.                                                 

  stop_threshold   : 23760    缓冲区空闲区大于该值时,硬件停止传输。默认情况下,这个数 为整个缓冲区的大小,即整个缓冲区空了,就停止传输。但偶尔的原因导致缓冲区空, CPU忙,增大该值,继续播放缓冲区的历史数据,而不关闭再启动硬件传输(一般此 时有明显的声音卡顿),可以达到更好的体验。                                                 

  silence_threshold: 0      silence_threshold. 这个值本来是配合stop_threshold使用,往缓冲区填充静音 数据,这样就不会重播历史数据了。但如果没有设定silence_size,这个值会生效吗? 求解??                                                    

  silence_size : 0                                                             

  boundary     : 1557135360    

                                               

Hardware PCM card 0 'kas-audio-card' device 0 subdevice 0                      

Its setup is:                                                                  

  stream       : PLAYBACK                                                      

  access       : MMAP_INTERLEAVED                                              

  format       : S16       : 48000                                             

  exact rate   : 48000 (48000/1)                                               

  msbits       : 16                                                            

  buffer_size  : 28800                                                         

  period_size  : 720                                                            

  period_time  : 15000                                                         

  tstamp_mode  : ENABLE                                                        

  period_step  : 1                                                              

  avail_min    : 720                                                           

  period_event : 0                                                             

  start_threshold  : 1                                                          

  stop_threshold   : 1887436800                                                

  silence_threshold: 0                                                         

  silence_size : 1887436800                                                     

  boundary     : 1887436800                                                    

  appl_ptr     : 0                                                             

  hw_ptr       : 0

 

 

 

ALSA使用了环形buffer来存储回放和录音的数据,这里使用了2个指针来维护设备和应用间的通信,一个指针指向硬件当前处理的数据,另一个指针指向应用程序最后处理的数据,现代的的音频芯片允许编程改变传输的时间周期,这意味着音频流的数据被分割成很多小块,当一个小块传输完成时,设备对应用程序进行响应。


ALSA
编程有bufferperiodframesamplebyte等概念,之间的关系如下:
buffer = N periods;
period = N frames;
frame = N bytes;  //
如:对于单声道16ADN=2



主要有三大技术标准组织制定压缩标准:
a)ITU,主要制定有线语音的压缩标准(g系列),有g711/g722/g726/g729等。
b)3GPP,主要制定无线语音的压缩标准(amr系列等), 有amr-nb/amr-wb。后来ITU吸纳了amr-wb,形成了g722.2。
c)MPEG,主要制定音乐的压缩标准,有11172-3,13818-3/7,14496-3等。
一些大公司或者组织也制定压缩标准,比如iLBC,OPUS。

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多