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

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

<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 45<br />

}<br />

if (WAIT_OBJECT_0 == WaitForSingleObject(hEv<strong>en</strong>t, 100))<br />

{<br />

while (hr = pEv<strong>en</strong>t->GetEv<strong>en</strong>t(&evCo<strong>de</strong>, &param1, &param2, 0), SUCCEEDED(hr))<br />

{<br />

printf("Ev<strong>en</strong>t co<strong>de</strong>: %#04x\n Params: %d, %d\n", evCo<strong>de</strong>, param1, param2);<br />

hr = pEv<strong>en</strong>t->FreeEv<strong>en</strong>tParams(evCo<strong>de</strong>, param1, param2);<br />

bDone = (EC_COMPLETE == evCo<strong>de</strong>);<br />

}<br />

}<br />

Debido a que el gráfico <strong>de</strong> filtros automáticam<strong>en</strong>te ajusta o reinicialaza el ev<strong>en</strong>to<br />

cuando sea apropiado, la aplicación no <strong>de</strong>bería hacerlo. También, cuando se actualiza el<br />

gráfico <strong>de</strong> filtros, el gráfico <strong>de</strong> filtros cierra el manejador <strong>de</strong> ev<strong>en</strong>tos, así no hace uso <strong>de</strong>l<br />

manejador <strong>de</strong> ev<strong>en</strong>tos <strong>de</strong>spués <strong>de</strong> este punto.<br />

3.9 Hardware <strong>en</strong> el gráfico <strong>de</strong> filtros<br />

3.9.1 Filtros Envoltura (Wrapper)<br />

Todos los filtros DirectShow son compon<strong>en</strong>tes <strong>de</strong> software <strong>en</strong> el modo usuario. Para<br />

que un dispositivo hardware <strong>en</strong> el modo kernel como una tarjeta <strong>de</strong> captura <strong>de</strong> vi<strong>de</strong>o/sonido<br />

se añada al gráfico <strong>de</strong> filtros <strong>de</strong> DirectShow, el dispositivo <strong>de</strong>be ser repres<strong>en</strong>tado como un<br />

filtro <strong>en</strong> el modo usuario <strong>de</strong>ntro <strong>de</strong>l gráfico <strong>de</strong> filtros. Esta función se lleva a cabo para<br />

varios tipos <strong>de</strong> dispositivos por filtros especializados llamados filtros <strong>en</strong>voltura(wrapper<br />

filters), provistos con DirectShow.<br />

Los filtros <strong>en</strong>voltura trabajan soportando las interfaces COM que repres<strong>en</strong>tan las<br />

capacida<strong>de</strong>s esperadas <strong>de</strong>l dispositivo. La aplicación usa estas interfaces para pasar<br />

información hacia y <strong>de</strong>s<strong>de</strong> el filtro, el filtro traduce las llamadas a la interfase <strong>en</strong><br />

información que el controlador <strong>de</strong>l dispositivo pueda compr<strong>en</strong><strong>de</strong>r, y <strong>en</strong>tonces el filtro pasa<br />

esta información hacia y <strong>de</strong>s<strong>de</strong> el controlador <strong>en</strong> el modo kernel.<br />

Para los <strong>de</strong>sarrolladores <strong>de</strong> aplicaciones, el principio <strong>de</strong> <strong>en</strong>volver dispositivos <strong>de</strong><br />

hardware como filtros <strong>en</strong> modo usuario significa que las aplicaciones controlan dispositivos<br />

<strong>de</strong> la misma forma que ellos controlan cualquier otro filtro DirectShow. No se requiere una<br />

programación especial <strong>en</strong> la parte <strong>de</strong> la aplicación; todos los <strong>de</strong>talles involucrados <strong>en</strong> la<br />

comunicación con el dispositivo <strong>en</strong> el modo kernel son <strong>en</strong>capsulados <strong>de</strong>ntro <strong>de</strong>l filtro<br />

mismo.<br />

3.9.2 Vi<strong>de</strong>o para dispositivos Windows<br />

Para soportar las ultimas tarjetas <strong>de</strong> captura Vi<strong>de</strong>o for Windows (VfW), DirectShow<br />

provee el filtro <strong>de</strong> captura VFW. Cuando una tarjeta VfW esta pres<strong>en</strong>te <strong>en</strong> el sistema, esta<br />

pue<strong>de</strong> ser <strong>de</strong>scubierta usando el System Device Enumerator 7 . El Enumerator se utiliza<br />

también para añadir el filtro <strong>de</strong> captura VfW al grafico y asociar este con la tarjeta que fue<br />

7 Aplicación cont<strong>en</strong>ida <strong>en</strong> DirectX 8.0

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

Saved successfully!

Ooh no, something went wrong!