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

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

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

if (g_bAudioOnly)<br />

{<br />

JIF(InitPlayerWindow());<br />

}<br />

else<br />

{<br />

JIF(InitVi<strong>de</strong>oWindow(1, 1));<br />

}<br />

// Aqui vi<strong>en</strong>e lo bu<strong>en</strong>o se vera?!<br />

ShowWindow(ghApp, SW_SHOWNORMAL);<br />

UpdateWindow(ghApp);<br />

SetForegroundWindow(ghApp);<br />

SetFocus(ghApp);<br />

UpdateMainTitle();<br />

#if<strong>de</strong>f REGISTER_FILTERGRAPH<br />

hr = AddGraphToRot(pGB, &g_dwGraphRegister);<br />

if (FAILED(hr))<br />

{<br />

Msg(TEXT("Falló al registrar el grafico <strong>de</strong> filtros con ROT! hr=0x%x"), hr);<br />

g_dwGraphRegister = 0;<br />

}<br />

#<strong>en</strong>dif<br />

}<br />

}<br />

// Corre el grafico <strong>de</strong> filtros que ejecutará el archivo multimedia<br />

JIF(pMC->Run());<br />

g_psCurr<strong>en</strong>t=Running;<br />

SetFocus(ghApp);<br />

return hr;<br />

// Función que inicia la v<strong>en</strong>tana <strong>de</strong> vi<strong>de</strong>o con un factor <strong>de</strong>terminado<br />

HRESULT InitVi<strong>de</strong>oWindow(int nMultiplier, int nDivi<strong>de</strong>r)<br />

{<br />

LONG lHeight, lWidth;<br />

HRESULT hr = S_OK;<br />

RECT rect;<br />

if (!pBV)<br />

return S_OK;<br />

// Lee el tamaño <strong>de</strong> vi<strong>de</strong>o actual<br />

JIF(pBV->GetVi<strong>de</strong>oSize(&lWidth, &lHeight));<br />

// Actualiza al tamaño requerido, normal, mitad ...<br />

lWidth = lWidth * nMultiplier / nDivi<strong>de</strong>r;<br />

lHeight = lHeight * nMultiplier / nDivi<strong>de</strong>r;<br />

SetWindowPos(ghApp, NULL, 0, 0, lWidth, lHeight,<br />

SWP_NOMOVE | SWP_NOOWNERZORDER);<br />

int nTitleHeight = GetSystemMetrics(SM_CYCAPTION);<br />

int nBor<strong>de</strong>rWidth = GetSystemMetrics(SM_CXBORDER);<br />

int nBor<strong>de</strong>rHeight = GetSystemMetrics(SM_CYBORDER);<br />

// Actualiza <strong>de</strong>p<strong>en</strong>di<strong>en</strong>do <strong>de</strong>l tamaño <strong>de</strong> la barra <strong>de</strong> titulo y bor<strong>de</strong>s para un<br />

// acoplami<strong>en</strong>to exacto <strong>de</strong> la v<strong>en</strong>tana <strong>de</strong> vi<strong>de</strong>o a el area <strong>de</strong>l cli<strong>en</strong>te <strong>en</strong> la v<strong>en</strong>tana<br />

SetWindowPos(ghApp, NULL, 0, 0, lWidth + 2*nBor<strong>de</strong>rWidth,<br />

lHeight + nTitleHeight + 2*nBor<strong>de</strong>rHeight,<br />

SWP_NOMOVE | SWP_NOOWNERZORDER);<br />

GetCli<strong>en</strong>tRect(ghApp, &rect);<br />

JIF(pVW->SetWindowPosition(rect.left, rect.top, rect.right, rect.bottom));<br />

return hr;

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

Saved successfully!

Ooh no, something went wrong!