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 ...
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 122<br />
#<strong>en</strong>dif<br />
// Despliega los nombres <strong>de</strong> archivo <strong>en</strong> la caja <strong>de</strong> m<strong>en</strong>sajes<br />
void Msg(char *szFormat, ...)<br />
{<br />
TCHAR szBuffer[512]; // Buffer gran<strong>de</strong> para nombres <strong>de</strong> archivos largos como los HTTTP<br />
}<br />
va_list pArgs;<br />
va_start(pArgs, szFormat);<br />
vsprintf(szBuffer, szFormat, pArgs);<br />
va_<strong>en</strong>d(pArgs);<br />
MessageBox(NULL, szBuffer, "UAM Multimedia", MB_OK);<br />
// Función para activar el sil<strong>en</strong>cio shhh...<br />
HRESULT ToggleMute(void)<br />
{<br />
HRESULT hr=S_OK;<br />
}<br />
if ((!pGB) || (!pBA))<br />
return S_OK;<br />
// Read curr<strong>en</strong>t volume<br />
hr = pBA->get_Volume(&g_lVolume);<br />
if (hr == E_NOTIMPL)<br />
{<br />
// Falla si este es un archivo <strong>de</strong> solo vi<strong>de</strong>o<br />
return S_OK;<br />
}<br />
else if (FAILED(hr))<br />
{<br />
Msg(TEXT("Fallo al leer el volum<strong>en</strong> <strong>de</strong> audio ! hr=0x%x\r\n"), hr);<br />
return hr;<br />
}<br />
// Cambia los niveles <strong>de</strong> volum<strong>en</strong><br />
if (g_lVolume == VOLUME_FULL)<br />
g_lVolume = VOLUME_SILENCE;<br />
else<br />
g_lVolume = VOLUME_FULL;<br />
// Ajusta el nuevo volum<strong>en</strong><br />
JIF(pBA->put_Volume(g_lVolume));<br />
UpdateMainTitle();<br />
return hr;<br />
// Función que actualiza la etiqueta que actualiza el estado actual <strong>de</strong>l streaming<br />
void UpdateMainTitle(void)<br />
{<br />
TCHAR szTitle[MAX_PATH], szFile[MAX_PATH];<br />
// Si ningun archivo es cargado, solo muestra el titulo <strong>de</strong> la aplicacion<br />
if (g_szFileName[0] == L'\0')<br />
{<br />
wsprintf(szTitle, TEXT("%s"), APPLICATIONNAME);<br />
}<br />
// De otro modo, muestra información <strong>en</strong> uso, incluy<strong>en</strong>do nombre <strong>de</strong> archivo y estado<br />
<strong>de</strong> ejecución<br />
else<br />
{<br />
// Obti<strong>en</strong>e nombre <strong>de</strong> archivo sin path completo<br />
GetFil<strong>en</strong>ame(g_szFileName, szFile);<br />
// Actualiza el titulo <strong>de</strong> la v<strong>en</strong>tana para mostrar el estado<br />
Sil<strong>en</strong>cio/Sonido<br />
wsprintf(szTitle, TEXT("%s [%s] %s%s"),