도와주세요!!
EZ-S3C6410 보드를 이용해서 pcm 데이터를 재생 하려고 함니다
aplay로는 사운드가 정상적으로 나오는데요
aplay -fcd ac.pcm <<정상 동작
직접 작성한 플레이어로는 소리가 이상하게 나와요
일단 재생은 되는데 한 1초 ?0.5초? 가량 정상 속도로 재생되다가 그이후 1.5배정도되는 속도로 재생이 되는 이상한 현상이있어서
sampling rate 가 이상한거같은데
189 int speed = 44100;
190 printf("[%d]",ioctl(fd_soundcard, SNDCTL_DSP_SPEED,&speed));
191 sound_buff_size = soundcard_get_buff_size();
192 sound_buff = ( char *)malloc( sound_buff_size);
193 int fd = open (argv[1],O_RDONLY);
194 while( TRUE)
195 {
196
197 read_size = read( fd , sound_buff, 2);
198 if (read_size == 0) break;
199 write( fd_soundcard, sound_buff, 2);
200 }
201
202 close (fd);
구문임니다 ioctl은 에러없이 정상 작동 되는것을 확인 하엿는데요
사운드가 자꾸만 속도가 바뀌는 문제가 발생하니 알수가 없어서요
도와주시면 감사하겟습니다
직접 PCM데이터를 바로 write하신거 같은데, 그러지 마시고요, alsa sdk 포팅해서 해보세요.
직접해도 되긴하나 비트레이트 등 수작업으로 다 하셔야 할것 같은데.. 그냥 alsa sdk 포팅해서 해보세요.