Kompilowałem dziś bibliotekę Tremor (stałoprzecinkowa implementacja libvorbis do odtwarzania OGG) pod Visual C++ 2005. Sama biblioteka zbudowała się bez żadnego problemu po użyciu załączonego pliku projektu, niestety inaczej było z przykładowym dekoderem umieszczonym w pliku ivorbisfile_example.c. Brakowało mu eksportów umieszczonych zazwyczaj w libvorbisfile - _ov_clear i inne zaczynające się od _ov. Po przydługiej kombinacji z budowaniem libvorbisfile z libvorbis i łaczeniem jej z Tremorem zauważyłem ciekawy plik znajdujący się w samym Tremorze. Nazywał się vorbisfile.c i - jak się okazało - nie był dołączony do domyślnego projektu, przez co biblioteka kompilowała się bez dostarczanych przez niego eksportów. Dodanie go do projektu załatwiło wszystkie problemy z kompilacją. Cóż, zawsze to jakaś nauczka na przyszłość.
Obsługa samego ivorbisfile_example.exe sprowadza się do ivorbisfile_example.exe <"Pijak Potrafi - Arise (main tune).ogg" >out.raw i potem - żeby odtworzyć plik - konwersji do formatu wav za pomocą SoXa: sox -r 44100 -s -w -c 1 -t raw out.raw out.wav
A cała ta zabawa potrzebna była do pracy przejściowej na studia - wynikiem ma być wersja kodeka dająca zaimplementować się w sprzęcie. W sprzęcie czyli nie na mikrokontrolerze, tylko w postaci układu scalonego bądź FPGA. Zobaczymy co z tego wyjdzie.
