28.11.2012 Views

Procesamiento digital de video en tiempo real y - Maestría en ...

Procesamiento digital de video en tiempo real y - Maestría en ...

Procesamiento digital de video en tiempo real y - Maestría en ...

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

<strong>Procesami<strong>en</strong>to</strong> <strong>digital</strong> <strong>de</strong> vi<strong>de</strong>o <strong>en</strong> <strong>tiempo</strong> <strong>real</strong> y “vi<strong>de</strong>o wall” con la PC 77<br />

5.7 Aplicación<br />

La aplicación construye <strong>en</strong> primera instancia el gráfico <strong>de</strong> filtros completo <strong>de</strong><br />

manera automática. La configuración obt<strong>en</strong>ida <strong>de</strong>p<strong>en</strong><strong>de</strong> <strong>de</strong> la fu<strong>en</strong>te seleccionada por el<br />

usuario (tarjeta <strong>de</strong> TV o un archivo multimedia), si la fu<strong>en</strong>te es un archivo, se <strong>de</strong>be crear<br />

una instancia <strong>de</strong>l admiministrador <strong>de</strong>l grafico <strong>de</strong> filtros que cree el gráfico <strong>de</strong> filtros y lo<br />

ponga <strong>en</strong> ejecución.<br />

Por otra parte <strong>de</strong>be proporcionar la v<strong>en</strong>tana <strong>de</strong> vi<strong>de</strong>o al sistema operativo para su<br />

<strong>de</strong>spliegue <strong>en</strong> la v<strong>en</strong>tana <strong>de</strong> la aplicación. También se requiere <strong>de</strong>splegar la pagina<br />

propietaria.<br />

Si el usuario seleccionó la tarjeta <strong>de</strong> captura <strong>de</strong> vi<strong>de</strong>o <strong>en</strong>tonces se requiere la<br />

elaboración automática <strong>de</strong>l gráfico <strong>de</strong> captura, para <strong>de</strong>spués insertar el filtro <strong>de</strong> efectos y<br />

finalm<strong>en</strong>te la reproducción <strong>de</strong>l vi<strong>de</strong>o <strong>en</strong> la v<strong>en</strong>tana <strong>de</strong> la aplicación. Veremos <strong>en</strong> los<br />

sigui<strong>en</strong>tes apartados casa uno <strong>de</strong> los pasos para la elaboración <strong>de</strong> nuestra aplicación.<br />

5.7.1 Ejecución <strong>de</strong> un archivo<br />

Una <strong>de</strong> las funciones <strong>de</strong> la aplicación es ejecutar un archivo multimedia. Esto<br />

incluye cuatro pasos básicos:<br />

1. Crear una instancia <strong>de</strong>l Manejador <strong>de</strong>l Gráfico <strong>de</strong> filtros.<br />

2. Usar el Manejador <strong>de</strong>l gráfico <strong>de</strong> filtros para crear un grafico <strong>de</strong> filtros.<br />

3. Usar el Manejador <strong>de</strong>l gráfico <strong>de</strong> filtros para ejecutar el gráfico <strong>de</strong> filtros<br />

4. Esperar a que la ejecución se complete<br />

Para llevar a cabo estas operaciones se hace uso <strong>de</strong> las sigui<strong>en</strong>tes interfaces COM:<br />

• IGraphBuil<strong>de</strong>r: Construye el grafico <strong>de</strong> filtros.<br />

• IMediaControl: Maneja el flujo <strong>de</strong> datos <strong>en</strong> el gráfico <strong>de</strong> filtros.<br />

• IMediaEv<strong>en</strong>t: Maneja los ev<strong>en</strong>tos <strong>en</strong> el gráfico <strong>de</strong> filtros.<br />

Iniciamos llamando a la función CoInitialize, la cual inicializa la librería COM.<br />

Entonces llamamos a la función CoCreateInstance para crear el Manejador <strong>de</strong>l gráfico <strong>de</strong><br />

filtros.<br />

IGraphBuil<strong>de</strong>r *pGraph;<br />

CoInitialize(NULL);<br />

CoCreateInstance(CLSID_FilterGraph, NULL, CLSCTX_INPROC_SERVER,<br />

IID_IGraphBuil<strong>de</strong>r, (void **)&pGB);

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!