제가 블루투스를 이용해서 mp3 플레이어를 만들려고 하는데요

음악파일을 전송하기 위해서는 U-art 로는 힘들고

usb를 이용해야 한답니다.

그래서 PI 보드를 구입할 예정이구요


당장은 재고가 없어서 일주일 뒤에나 구입이 가능하다는........
ㅡㅡ;;


제가 하려는 것이

호스트 컴퓨터를 tx , 보드를 rx 단으로

해서 파일을 전송하고...



전송받은 파일을 madplay 를 이용해서 재생을 시키고

스피커를 연결하여 듣는것인데요...


원래는 이 메일을 underbit 라는 madplay를 만든 회사에 보냈는데

메일이 안보내지더라구요..

그래서 어디 딴데다 물어볼데도 마땅치 않아서


여기에 여쭈어보는 것이 제일 지금으로서는 나을 것같아서 글을 올립니다.



우선 MP3 Decoder의 입출력 시스템이 궁금합니다.

파일 입출력으로 되어 있다면 Encoding 된 File(*.mp3)를 읽어서 Decoding을
할것 같군요.

1Frame의 길이를 알고 싶은데요..

그리고 1Frame의 Decoding시간을 알고 싶구요..
그래야 Frame당 Decoding 시간을 알 수 있으니까요..


만약에 1Frame의 길이는 512byte이고 1Frame을 Decoding하는 시간이 50ms이
면 1초를 Decoding하기 위해서 필요한 Frame수가 나오겠죠.

1초를 Decoding 하기 위한 Frame수 = 1/50ms = 20개이네요

1초를 Decoding하기 위한 Data량 = 512byte*20 = 10kbyte 가 될테구요..
대략 82Kbps로 볼수 있겠네요 ^^;

그러면 20개의 Frame을 받을수 있는 무선 전송의 Band Width는 Bluetooth의
Packet에 따라 다르기 때문에 500kbps라고 하면 이렇게 되면 무선쪽이 더 빠르
기 때문에

Buffering을 많이 할 필요가 없지만 무선 상황이 안좋을수 있기 때문에
Buffering은 기본적으로 해야 할것으로 보입니다.

하지만 이와 반대의 상황이라면 Buffering을 많이 해야 끊기지 않고 Play를 할
수 있을겁니다.

그리고 무선상황과 관련없이 UART를 통해서 Decoder 보드와 블루투스 보드가
붙어서 동작된다면

UART의 최대 전송속도는 115.2Kbps이고 MP3 File(약 4M)은 128Kbps라면 Real
Time으로 재생하기에 128kbps - 115.2kbps = 12.5kbps가 모자랍니다.

이 모자라는 만큼 계산을 해서 Buffering을 해야 할것 같습니다.

일단 테스트 차원에서 64~96KbpsFile을 전송하여 Decoding이 되는지 테스트를
해보려고 하긴 합니다.



그런데 문제는......

버퍼링을 하기 위해서 madplay 소스의 어떤 화일의 어느 부분을 수정해야 할지

막막하다는 것입니다 .

c소스만 80개가 되더군요..


madplay 의 프레임에 관한 성질을 알고

mp3 파일의 크기도 알고

블루투스 전송의 baudrate 도 알면서

c 소스의 버퍼링에 관한 부분을 수정을 해주면

될것 같긴한데요.


아는 것이 없어서 막막합니다 .

고수님들..
도와주세요..