PIC32 és MAD (software-es mp3 dekódolás)

Sziasztok!

Egy PIC32-es mikrovezérővel szeretnék mp3-at dekódolni. Elméletileg a uC elég gyors hozzá.
Van is 2 link: egyik és a másik.

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

Hozzászólások