46 #ifndef __MO_DSGRAPH_H
47 #define __MO_DSGRAPH_H
66 virtual ~moDsFramework();
74 bool ShowError( HRESULT hr );
77 ICreateDevEnum *m_pDevEnum;
78 IEnumMoniker *m_pEnum;
82 class LIBMOLDEO_API moDsSampleGrabberCB :
public ISampleGrabberCB
96 STDMETHODIMP_(ULONG) AddRef() {
return 2; }
97 STDMETHODIMP_(ULONG) Release() {
return 1; }
101 m_pBucketsPool = pBucketsPool;
108 STDMETHODIMP QueryInterface(REFIID riid,
void ** ppv)
110 CheckPointer(ppv,E_POINTER);
112 if( riid == IID_ISampleGrabberCB || riid == IID_IUnknown )
114 *ppv =(
void *) static_cast<ISampleGrabberCB*>(
this );
118 return E_NOINTERFACE;
124 STDMETHODIMP SampleCB(
double SampleTime, IMediaSample * pSample )
133 STDMETHODIMP BufferCB(
double SampleTime, BYTE * pBuffer,
long BufferSize )
143 if(!m_pBucketsPool->
IsFull()) {
149 if(m_pBucketsPool->
AddBucket( pbucket )) {
167 virtual ~moDsGraph();
179 bool CreateFilterByName(
moText p_name, IBaseFilter **ppF);
180 bool CreateCaptureDeviceByPath(
moText p_Path, IBaseFilter **ppF );
181 bool SetCaptureDevice(
moText deviceport ,
MOint idevice = 0);
203 bool ShowError( HRESULT hr );
204 void SetVideoFormat( AM_MEDIA_TYPE* mt );
205 IPin * GetInPin( IBaseFilter * pFilter,
int nPin );
206 IPin * GetOutPin( IBaseFilter * pFilter,
int nPin );
207 HRESULT GetPin( IBaseFilter * pFilter, PIN_DIRECTION dirrequired,
int iNum, IPin **ppPin);
208 void CheckMediaType( IPin* p_Pin );
209 void ShowConfigureDialog(IBaseFilter *pFilter);
214 IGraphBuilder *m_pFilterGraph;
215 IMediaControl *m_pMediaControl;
216 IMediaSeeking *m_pMediaSeeking;
221 IBaseFilter *m_pQuicktimeFilter;
222 IBaseFilter *m_pQuicktimeDecoder;
223 IBaseFilter *m_pColorSpaceConverter;
224 IBaseFilter *m_pCaptureFilter;
225 IBaseFilter *m_pSourceFilter;
226 IBaseFilter *m_pDVDecoderFilter;
227 IBaseFilter *m_pAVIDecompressorFilter;
228 IBaseFilter *m_pSampleGrabberBase;
229 IBaseFilter *m_pNullRenderer;
230 IBaseFilter *m_pAviSplitter;
231 IBaseFilter *m_pSplitter;
232 IBaseFilter *m_pFfdshowFilter;
237 ISampleGrabber *m_pSampleGrabber;
238 moDsSampleGrabberCB m_CB;
239 IFileSourceFilter *m_pFileSourceFilter;
241 moDsFramework* m_pDsFramework;
virtual bool CheckCaptureDevice(int i)=0
Chequea si el dispositivos de video disponible está aún disponible.
Plataforma de reproducción de video, actualmente GStreamer para todas las plataformas.
virtual bool IsRunning()=0
Está corriendo.
virtual bool FinishGraph()=0
Finalización del grafo.
clase de para manejar textos
Grafo de reproducción de video.
virtual bool BuildLiveGraph(moBucketsPool *pBucketsPool, moCaptureDevice p_capdev)=0
Grafo de captura de video.
virtual MOulong GetFramesLength()=0
La cantidad de frames, el largo del stream.
virtual bool BuildLiveVideoGraph(moText filename, moBucketsPool *pBucketsPool)=0
Grafo de reproducción de video en modo vivo, asyncronicamente reproducido en función del clock...
Administrador de moBucket 's.
virtual moCaptureDevices * LoadCaptureDevices()=0
Carga los dispositivos de video disponibles.
virtual void Stop()=0
Detener la reproducción del video.
virtual void Play()=0
Reproducir el video.
virtual bool BuildLiveQTVideoGraph(moText filename, moBucketsPool *pBucketsPool)=0
Definición de un dispositivo de video, generalmente uno de captura de video, o camara.
Espacio en memoria para compartir datos entre objetos.
virtual bool InitGraph()=0
Inicialización del grafo.
void SetBuffer(MOlong size, MOubyte *pbuf)
Crea un espacio de memoria y asigna los valores desde un puntero a otro espacio de memoria...
virtual MObyte * GetFrameBuffer(MOlong *size)=0
Puntero al frame buffer.
virtual void Seek(MOuint frame, float rate=1.0)=0
Busca y posiciona.
bool AddBucket(moBucket *pBucket)
virtual void Pause()=0
Pausa la reproducción del video.
virtual moCaptureDevices * UpdateCaptureDevices()=0
Actualiza los dispositivos de video disponibles.