view loader/dshow/cmediasample.h @ 713:9355b2ae634e

avifile-0.6-CVS merge
author arpi_esp
date Sun, 06 May 2001 21:43:45 +0000
parents bdc4a8fc04d8
children da26060c81ef
line wrap: on
line source

#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