mirror of https://github.com/mpv-player/mpv
100 lines
2.6 KiB
C++
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
|