Sviluppo di una piattaforma per lo streaming multimediale - MobiLab ...
Sviluppo di una piattaforma per lo streaming multimediale - MobiLab ...
Sviluppo di una piattaforma per lo streaming multimediale - MobiLab ...
You also want an ePaper? Increase the reach of your titles
YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.
<strong>Sviluppo</strong> <strong>di</strong> <strong>una</strong> <strong>piattaforma</strong> <strong>per</strong> <strong>lo</strong> <strong>streaming</strong> multime<strong>di</strong>ale in ambiente Android<br />
l’interazione tra utente e servizio MUM implementa un terzo control<strong>lo</strong> dei dati. Su<br />
questo canale viaggiano ad esempio i coman<strong>di</strong> <strong>di</strong> avvio e interruzione del<strong>lo</strong> <strong>streaming</strong><br />
effettuati dall’utente.<br />
2.3 – Le classi d'utilità dell'architettura SOMA<br />
Il package Unibo è <strong>una</strong> libreria java, creata dalla collaborazione fra i laboratori<br />
DEIS dell'Univarsità degli Stu<strong>di</strong> <strong>di</strong> Bo<strong>lo</strong>gna e DIS dell'Università degli Stu<strong>di</strong> <strong>di</strong><br />
Napoli “Federico II”, contenente le classi che implementano i componenti necessari<br />
<strong>per</strong> creare e gestire le catene <strong>di</strong> plug-In e <strong>per</strong>mettere il control<strong>lo</strong> a livel<strong>lo</strong> del singo<strong>lo</strong><br />
frame.<br />
Attraverso i componenti offerti da tale package è possibile implementare meccanismi<br />
<strong>di</strong> buffering, oppure variare <strong>di</strong>namicamente la stessa catena <strong>di</strong> plug-in.<br />
Cominciamo con l'analizzare la prima libreria – unibo.handoff.client – che incorpora<br />
tutte le classi le cui funzionalità ricadono sotto la responsabilità del client; tra queste<br />
in<strong>di</strong>chiamo ReceiveStreamReader e BufferRender, due classi utilizzate <strong>per</strong> gestire la<br />
connessione RTP <strong>di</strong> basso livel<strong>lo</strong>.<br />
ReceiveStreamReader recu<strong>per</strong>a il DataSource inviato dal sender e <strong>lo</strong> avvia<br />
gestendo <strong>lo</strong> stream <strong>di</strong> dati, <strong>per</strong> poi memorizzare il tutto all'interno del buffer scelto: è<br />
cioè il produttore del nostro buffer (in grafica è il Thread <strong>di</strong> lettura frame).<br />
BufferRender invece estrae dal buffer i frame e ne effettua il rendering video.<br />
In particolare, nei test del laboratorio CiNi, il file estratto dal buffer viene registrato e<br />
salvato sul <strong>di</strong>sco rigido <strong>per</strong> i test <strong>di</strong> qualità (Thread <strong>di</strong> Rendering).<br />
Questa registrazione avviene tramite la classe AVIMultiplexerLinux che deco<strong>di</strong>fica<br />
tramite un NativeDecoder <strong>lo</strong> stream e <strong>lo</strong> salva in un formato visualizzabile.<br />
33