Az a gondom, hogy a libmad kimenet egy fixed-point 32 bites szám, ebből kellene nekem egy előjeles 16 bites számot csinálni. (int16_t)
Kipróbáltam a mindkét forráskódban található konvertálót, de egyiknél sincs normális kimenet. Vagy valami zaj van, vagy minden mintánál a "clip" résznél a minta kisebb, mint a -MAD_F_ONE.
Amennyiben a libmad kimenetét 1:1-ben belemásolom a lejátszandó pufferbe, akkor nagyon torzan, de megszólal a dekódolt mp3.
Nem tudom, fontos-e, de a PIC32-ben (a többi PIC-kel ellentétben) egy MIPS M4K processzormag van; az adatlap 12. oldala szerint az adatok little-endian módban tárolódnak.
Nincs valami ötletetek, hogyan lehetne jól átalakítani a libmad kimenetét?
Köszönettel: raron
- raron blogja
- A hozzászóláshoz be kell jelentkezni
- 1275 megtekintés
Hozzászólások
Csinálj egy mp3-at 1kHz szinusszal jobb csatornára, egyet a bal csatornára, dekódoltasd és nézd meg a kimenetet.
Jut eszembe. Nézd meg a minimad-et, az asszem pont azt csinálja ami neked kell.
http://m.baert.free.fr/contrib/docs/libmad/doxy/html/minimad_8c.html
--
"Maradt még 2 kB-om. Teszek bele egy TCP-IP stacket és egy bootlogót. "
- A hozzászóláshoz be kell jelentkezni
Köszönöm, ezzel, illetve a sourceforge-os példával sikerült összerakni. Most van egy állandó kattogás olyan 50--100 ms -onként.
(Lehet, hogy nem tudja olyan gyorsan feltölteni a puffert...)
- A hozzászóláshoz be kell jelentkezni