mpv/loader/dshow/cmediasample.h

100 lines
2.6 KiB
C++

#ifndef _CMEDIASAMPLE_H
#define _CMEDIASAMPLE_H
#include "interfaces.h"
#include "guids.h"
#include "default.h"
class CMediaSample: public IMediaSample
{
IMemAllocator* all;
int size;
int actual_size;
char* block;
char* old_block;
int refcount;
int isPreroll;
int isSyncPoint;
AM_MEDIA_TYPE media_type;
int type_valid;
public:
CMediaSample(IMemAllocator* allocator, long _size);
~CMediaSample();
void SetPointer(char* pointer) { old_block=block; block=pointer; }
void ResetPointer() { block=old_block; old_block=0; }
static long STDCALL QueryInterface (
IUnknown * This,
/* [in] */ IID* riid,
/* [iid_is][out] */ void **ppvObject);
static long STDCALL AddRef (
IUnknown * This);
static long STDCALL Release (
IUnknown * This);
static HRESULT STDCALL GetPointer (
IMediaSample * This,
/* [out] */ BYTE **ppBuffer);
static long STDCALL GetSize (
IMediaSample * This);
static HRESULT STDCALL GetTime (
IMediaSample * This,
/* [out] */ REFERENCE_TIME *pTimeStart,
/* [out] */ REFERENCE_TIME *pTimeEnd);
static HRESULT STDCALL SetTime (
IMediaSample * This,
/* [in] */ REFERENCE_TIME *pTimeStart,
/* [in] */ REFERENCE_TIME *pTimeEnd);
static HRESULT STDCALL IsSyncPoint (
IMediaSample * This);
static HRESULT STDCALL SetSyncPoint (
IMediaSample * This,
long bIsSyncPoint);
static HRESULT STDCALL IsPreroll (
IMediaSample * This);
static HRESULT STDCALL SetPreroll (
IMediaSample * This,
long bIsPreroll);
static long STDCALL GetActualDataLength (
IMediaSample * This);
static HRESULT STDCALL SetActualDataLength (
IMediaSample * This,
long __MIDL_0010);
static HRESULT STDCALL GetMediaType (
IMediaSample * This,
AM_MEDIA_TYPE **ppMediaType);
static HRESULT STDCALL SetMediaType (
IMediaSample * This,
AM_MEDIA_TYPE *pMediaType);
static HRESULT STDCALL IsDiscontinuity (
IMediaSample * This);
static HRESULT STDCALL SetDiscontinuity (
IMediaSample * This,
long bDiscontinuity);
static HRESULT STDCALL GetMediaTime (
IMediaSample * This,
/* [out] */ LONGLONG *pTimeStart,
/* [out] */ LONGLONG *pTimeEnd);
static HRESULT STDCALL SetMediaTime (
IMediaSample * This,
/* [in] */ LONGLONG *pTimeStart,
/* [in] */ LONGLONG *pTimeEnd);
};
#endif