Movatterモバイル変換


[0]ホーム

URL:


Ir al contenido
WikipediaLa enciclopedia libre
Buscar

DirectShow

De Wikipedia, la enciclopedia libre
Graph Edit – Ejemplo de un grafo de DirectShow creado con GraphEdit.[cita requerida]

DirectShow (También abreviado comoDS oDShow), en sus iniciosQuartz, es unframework multimedia y unaAPI creada porMicrosoft paradesarrolladores de software con el fin de desempeñar numerosas operaciones con ficheros multimedia y streams. Se creó para reemplazar la antigua tecnología de MicrosoftVideo for Windows.[1]​ Basado en el frameworkMicrosoft WindowsComponent Object Model (COM), DirectShow proporciona una interfaz común para la gestión multimedia en diferenteslenguajes de programación, y es un framework con arquitectura basada enfiltros que puede reproducir en pantalla y grabar ficheros de video bajo demanda del usuario o el desarrollador. Las herramientas de desarrollo de DirectShow y la documentación fue originalmente distribuida como parte deDirectXSDK. Actualmente, se distribuyen como parte deWindows SDK (antiguamente conocido comoPlatform SDK).[2]

Entre los contrincantes de DirectShow en otras plataformas están el frameworkQuickTime deApple y varios frameworks multimedia de Linux comoGStreamer oXine. Microsoft planea, gradualmente, reemplazar completamente DirectShow porMedia Foundation en futuras versiones de Windows.[3]​ Las aplicaciones paraWindows Vista yWindows 7 usan Media Foundation en lugar de DirectShow para algunas tareas relacionadas con multimedia.

Ejemplo de código fuente

[editar]

El siguiente ejemplo muestra cómo crear una aplicación sencilla que reproduzca un fichero de video visualizándolo por pantalla:

#include "stdafx.h"#include <dshow.h>int _tmain(int argc, _TCHAR* argv[]){   IGraphBuilder *pGraph = NULL;   IMediaControl *pControl = NULL;   IMediaEvent   *pEvent = NULL;   IMediaSeeking *pSeeking = NULL;   // Inicializa la biblioteca COM.   HRESULT hr = CoInitialize(NULL);   if (FAILED(hr))   {       printf("ERROR - No se ha podido inicializar la biblioteca COM");       system("pause");       return -1;   }   // Crea el gestor de grafos y filtros y obtiene las interfaces de control.   hr = CoCreateInstance(CLSID_FilterGraph, NULL, CLSCTX_INPROC_SERVER,                        IID_IGraphBuilder, (void **)&pGraph);   if (FAILED(hr))   {       printf("ERROR - No se ha podido crear el gestor de grafos y filtros.");       system("pause");       return -1;   }   hr = pGraph->QueryInterface(IID_IMediaControl, (void **)&pControl);   hr = pGraph->QueryInterface(IID_IMediaEvent, (void **)&pEvent);   hr = pGraph->QueryInterface(IID_IMediaSeeking, (void **)&pSeeking);   // Construye el grafo DirectShow   hr = pGraph->RenderFile(L"D:\\Videos\\costaColorW.mpg", NULL);   if (SUCCEEDED(hr))   {       // Inicia la reproducción de grafo       hr = pControl->Run();       if (SUCCEEDED(hr))       {           // Opcional: Configura la reproducción para que se detenga a los 10 segundos           LONGLONG pCurrent = 0, pStop = 100000000;           hr = pSeeking->SetPositions(&pCurrent, AM_SEEKING_AbsolutePositioning, &pStop, AM_SEEKING_AbsolutePositioning);           if (FAILED(hr)) {               printf("ERROR - SetPositions ha fallado.");           }           // Espera a que la reproducción finalice.           long evCode;           pEvent->WaitForCompletion(INFINITE, &evCode);           // Nota: No utilice INFINITE en una aplicación real, puede provocar           // el bloqueo indefinido.       }   } else       printf("ERROR - El fichero no existe o no hay codec para reproducirlo.");   // Ejecuta el comando 'pause' una vez finalizada la reproducción.   system("pause");   pControl->Release();   pEvent->Release();   pSeeking->Release();   pGraph->Release();   CoUninitialize();   return 0;}

Véase también

[editar]

Referencias

[editar]

Notas

[editar]
  1. Blome, Michael; Wasson, Mike (julio de 2002).«Core Media Technology in Windows XP Empowers You to Create Custom Audio/Video Processing Components».MSDN Magazine (Microsoft). Consultado el 2 de abril de 2007. 
  2. «DirectShow documentation».MSDN Library. Microsoft. 1 de enero de 2006. Consultado el 1 de enero de 2006. 
  3. «Migrating from DirectShow to Media Foundation».MSDN Library. Microsoft. julio de 2006. Consultado el 17 de agosto de 2010. 

Enlaces externos (en inglés)

[editar]


Control de autoridades
Obtenido de «https://es.wikipedia.org/w/index.php?title=DirectShow&oldid=157128502»
Categorías:
Categoría oculta:

[8]ページ先頭

©2009-2026 Movatter.jp