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 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);

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

Saved successfully!

Ooh no, something went wrong!