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 ...
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