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

2. Si el pin salida acepta la conexión, este llama a IPin::ReceiveConnection <strong>en</strong> el pin<br />

<strong>en</strong>trada.<br />

3. Si el pin <strong>en</strong>trada también acepta la conexión, la conexión int<strong>en</strong>ta llevarse a cabo y<br />

los pins serán conectados.<br />

Algunos pins pue<strong>de</strong>n ser <strong>de</strong>sconectados y conectados mi<strong>en</strong>tras el filtro esta activo. Este<br />

tipo <strong>de</strong> reconexión se <strong>de</strong>nomina reconexión dinámica. Sin embargo, la mayoría <strong>de</strong> los<br />

filtros no soportan la reconexión dinámica. De hecho no fue posible <strong>real</strong>izar una reconexión<br />

dinámica con filtros que manipulas<strong>en</strong> vi<strong>de</strong>o y audio al mismo <strong>tiempo</strong>.<br />

Los filtros son usualm<strong>en</strong>te conectados <strong>en</strong> or<strong>de</strong>n downstream ( <strong>en</strong> otras palabras, los pins<br />

<strong>en</strong>trada <strong>de</strong> los filtros son conectados antes <strong>de</strong> sus pins salida). Un filtro siempre <strong>de</strong>be<br />

soportar este or<strong>de</strong>n <strong>de</strong> conexión..<br />

5.6.2 Negociando los tipos <strong>de</strong> Media<br />

Cuando el Manejador <strong>de</strong>l gráfico <strong>de</strong> filtros llama al método IPin::Connect, este ti<strong>en</strong>e<br />

varias opciones para especificar un tipo <strong>de</strong> media:<br />

• Tipo completo: Si el tipo <strong>de</strong> media esta completam<strong>en</strong>te especificado, los pins<br />

int<strong>en</strong>tan conectarse con este tipo. Si no son <strong>de</strong>l mismo, el int<strong>en</strong>to <strong>de</strong> conexión falla.<br />

• Tipo <strong>de</strong> media parcial: Un tipo <strong>de</strong> media es parcial si el tipo principal, subtipo, o<br />

tipo <strong>de</strong> formato es GUID_NULL. El valor GUID_NULL actúa como un "comodín",<br />

indicando que cualquier valor es aceptable. El pin negocia un tipo que es consist<strong>en</strong>te<br />

con el tipo parcial.<br />

• Sin tipo <strong>de</strong> media: Si el Manejador <strong>de</strong>l Grafico <strong>de</strong> filtros pasa un apuntador NULL,<br />

el pin pue<strong>de</strong> aceptar cualquier tipo <strong>de</strong> media que sea compatible a ambos pins.<br />

Si los pins se conectan, la conexión siempre ti<strong>en</strong>e un tipo <strong>de</strong> media completo. El<br />

propósito <strong>de</strong>l tipo <strong>de</strong> media <strong>de</strong>terminado por el Manejador <strong>de</strong>l gráfico <strong>de</strong> filtros es limitar<br />

los posibles tipos <strong>de</strong> conexión.<br />

Durante el proceso <strong>de</strong> negociación, el salida pin propone un tipo <strong>de</strong> media, llamando al<br />

método IPin::ReceiveConnection <strong>de</strong>l pin <strong>en</strong>trada. El pin <strong>en</strong>trada pue<strong>de</strong> aceptar o rechazar<br />

el tipo propuesto. Este proceso se repite hasta que el pin <strong>en</strong>trada acepta el tipo, o el salida<br />

pin recorre todos los tipos y la conexión falla.<br />

5.6.3 Negociación <strong>de</strong> Asignadores<br />

Cuando dos pins se conectan, ellos necesitan un mecanismo para intercambiar datos<br />

multimedia. El mecanismo es <strong>de</strong>nominado transporte. En g<strong>en</strong>eral, la arquitectura<br />

DirectShow es neutral <strong>en</strong> relación con los transportes. Dos filtros pue<strong>de</strong>n acordar<br />

conectarse utilizando cualquier transporte que ambos soport<strong>en</strong>.<br />

El transporte más común es el <strong>de</strong> memoria local. Con este transporte, los datos<br />

media se manti<strong>en</strong><strong>en</strong> <strong>en</strong> la memoria principal. Un objeto llamado un asignador es

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

Saved successfully!

Ooh no, something went wrong!