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 116<br />
}<br />
return;<br />
// Hace el cambio <strong>en</strong>tre los estados <strong>de</strong> Pausa/Reproducir<br />
if((g_psCurr<strong>en</strong>t == Paused) || (g_psCurr<strong>en</strong>t == Stopped))<br />
{<br />
hr = pMC->Run();<br />
g_psCurr<strong>en</strong>t = Running;<br />
}<br />
else<br />
{<br />
hr = pMC->Pause();<br />
g_psCurr<strong>en</strong>t = Paused;<br />
}<br />
UpdateMainTitle();<br />
// Función que <strong>de</strong>ti<strong>en</strong>e el gráfico <strong>de</strong> filtros<br />
void StopClip(void)<br />
{<br />
HRESULT hr;<br />
}<br />
if ((!pMC) || (!pMS))<br />
return;<br />
// Deti<strong>en</strong>e y restaura la posición al principio<br />
if((g_psCurr<strong>en</strong>t == Paused) || (g_psCurr<strong>en</strong>t == Running))<br />
{<br />
LONGLONG pos = 0;<br />
hr = pMC->Stop();<br />
g_psCurr<strong>en</strong>t = Stopped;<br />
}<br />
hr = pMS->SetPositions(&pos, AM_SEEKING_AbsolutePositioning ,<br />
NULL, AM_SEEKING_NoPositioning);<br />
// Despliega el primer frame para indicar la condición <strong>de</strong> reset<br />
hr = pMC->Pause();<br />
UpdateMainTitle();<br />
void Tele()<br />
{<br />
HRESULT hr;<br />
// Se limpian los reman<strong>en</strong>tes <strong>de</strong> dialogo abiertos antes <strong>de</strong> la pres<strong>en</strong>tacion<br />
UpdateWindow(ghApp);<br />
**)&pGB);<br />
// Crea el FGM<br />
CoCreateInstance(CLSID_FilterGraph, NULL, CLSCTX_INPROC, IID_IGraphBuil<strong>de</strong>r, (void<br />
// Crea el Capture Graph Buil<strong>de</strong>r.<br />
CoCreateInstance(CLSID_CaptureGraphBuil<strong>de</strong>r2, NULL, CLSCTX_INPROC,<br />
IID_ICaptureGraphBuil<strong>de</strong>r2, (void **)&pBuil<strong>de</strong>r);<br />
// Asocia el gráfico con el buil<strong>de</strong>r<br />
pBuil<strong>de</strong>r->SetFiltergraph(pGB);<br />
// Obti<strong>en</strong>e interfaces para media control y Vi<strong>de</strong>o Window<br />
hr = pGB->QueryInterface(IID_IMediaControl,(LPVOID *) &pMC);<br />
// QueryInterface para las interfaces DirectShow<br />
pGB->QueryInterface(IID_IMediaEv<strong>en</strong>tEx, (void **)&pME);<br />
pGB->QueryInterface(IID_IMediaSeeking, (void **)&pMS);<br />
// Consulta las interfaces <strong>de</strong> vi<strong>de</strong>o, las cuales pue<strong>de</strong>n no ser relevantes para<br />
archivos <strong>de</strong> audio<br />
pGB->QueryInterface(IID_IVi<strong>de</strong>oWindow, (void **)&pVW);