Cos'è OGG VORBIS?
OggVorbis è un CODEC audio per utilizzi generali pensato per consentire la massima flessibilità
di codifica possibile, permettendo di scalare la qualità per ottenere il miglior compromesso con la compressione.
Il tanto famoso MP3 difficilmente riesce a star dietro all'evoluzione che questo algoritmo di compressione.
Per chi non lo sapesse OggVorbis è un algoritmo completamente gratuito. Sono distribuiti in licenza GPL programmi
per la codifica e la decodifica, ma anche audioplayer (anche winamp è compatibile con OggVorbis).
E gli sviluppatori??? Chi fosse interessato ad inglobare l'algoritmo all'interno della propria applicazione non deve
far altro che andare nel sito e scaricare il materiale necessario. Anzi... vi dirò di più! Se ve ne intendete di
programmazione e avete delle necessità particolari, potete anche andare a modificare qualsiasi dettaglio, anche nelle
scelte dell'algoritmo, visto che Vorbis fornisce tutte le librerie e un SDK veramente completo e ben dettagliato.
A questo scopo, vorrei descrivere le librerie fornite e darvi un idea di come si compila il progetto oggvorbis
utilizzando Visual Studio 6.
Libreria LibOGG
Prima di iniziare a parlare di Vorbis (che è il vero e proprio algoritmo di compressione) bisogna introdurre
OGG.
In sostanza è il contenitore dei dati riguardanti
il vostro file audio codificato. Vorbis ha bisogno di una
struttura ben definita per contenere le informazioni in modo ordinato e soprattutto sicuro (a tale scopo è previsto
un controllo dell'errore CRC). La libreria OGG si scarica
qui. Il file
di interesse è libogg source (1.0.1).
Quando lo scompattate
trovate una serie di directory tra cui una denominata WIN32 che contiene i progetti da compilare per Windows.
Se non siete interessati a mettere mano all'interno di OGG potete utilizzare l'
SDK
che ha già queste librerie compilate!
Libreria LibVORBIS
La libreria
VORBIS contiene invece l'algoritmo
vero e proprio.
Quando scompattate il file .zip troverete alcune cartelle. La directory Win32 contiene tutti i progetti
per Visual Studio da compilare e ci sono anche dei file batch che semplificano la compilazione. La directory lib contiene
invece tutte i file necessari per compilare la libreria (sono quelli che dovete modificare se volete mettere mano
nell'algoritmo).
WIN32 SDK
Potete scaricare l'intero
SDK dove sono incluse
tutte le librerie precedenti. Naturalmente le librerie qui sono già compilate. Questo ambiente vi serve solo se volete includere
OGGVORBIS nei vostri progetti senza modificarlo.
Guida alla compilazione di OGGVORBIS con Visual Studio 6
Vi illustrerò passo passo le operazioni da seguire per compilare il file di esempio vorbis_example.c situato nella
directory con gli esempi dell SDK.
1. Copiate i file dell'SDK in una directory comoda da individuare (ad esempio c:\vorbis_sdk)
2. bisogna adesso specificare a Visual C++ dove trovare i file necessari alla compilazione. Per fare ciò avviate
visual C, andate nel menù Tool|Option e selezionate il tab Directory. Includete il path C:\vorbis_sdk\include tra i
percorsi dei file da includere e il path c:\vorbis_sdk\lib tra i percorsi delle librerie.
3. Create un nuovo progetto VC Win32 console application. Probabilmente è meglio scegliere una directory per questo
progetto diversa da quella dove si trova l'sdk
4. Copiate il file vorbisfile_example.c nella directory del vostro progetto e aggiungetelo al progetto stesso.
5. Potete già compilare il file ma non potete ancora fare il build dell'applicazione
6. Bisogna adesso linkare le librerie di OGGVORBIS. Per fare ciò andate nel menù Project|Settings e scegliete la lista
di librerie nominate "object/library modules". Aggiungete le librerie ogg_d.lib, vorbis_d.lib e vorbisfile_d.lib. Notate che per
default è selezionato debug versio. Dovete settare anche le librerie per la versione Release. Scegliete quindi Win32 Release
nel menù a tendina "Setting For" e includete le librerie ogg.lib, vorbis.lib e vorbisfile.lib.
7. Adesso potete costruire l'applicazione. Non dovrebbe segnalarvi alcun errore.
8. Per eseguire il file .exe creato dovete copiare in una directory inclusa nel path di sistema (ad esempio Windows) le dll
che trovate all'interno dell'SDK.
Seguendo questi semplici passi dovreste riuscire a compilare tutto senza problemi. Per discussioni particolari potete
rivolgervi al
forum di
Bitportal.it.
Notate che il file di esempio prevede l'utilizzo di stdin e stdout quindi se volete reindirizzare il vostro input e
output su file dovete scrivere il codice relativo.