Merge MPC-HC code(01b8dbf34d6a486fa1cd02d7a123249fec1e4160) [PART 2] (HdmvSub)
[xy_vsfilter.git] / src / subpic / SubPicProviderExWrapper.h
blobb351a96d4d9e2331c6c03e470ab8d4278a3355ed
1 /************************************************************************/
2 /* author: xy */
3 /* date: 20111013 */
4 /************************************************************************/
6 #pragma once
8 #include "ISubPic.h"
10 class CSubPicProviderExWrapper : public CUnknown, public ISubPicProviderEx
12 private:
13 CSubPicProviderExWrapper(ISubPicProvider* const inner_provider);//disable inheriting
15 CComPtr<ISubPicProvider> _inner_provider;
16 public:
17 static CSubPicProviderExWrapper* GetSubPicProviderExWrapper(ISubPicProvider* const inner_provider);
18 virtual ~CSubPicProviderExWrapper();
20 DECLARE_IUNKNOWN;
21 STDMETHODIMP NonDelegatingQueryInterface(REFIID riid, void** ppv);
23 // ISubPicProvider
25 STDMETHODIMP Lock();
26 STDMETHODIMP Unlock();
28 STDMETHODIMP_(POSITION) GetStartPosition(REFERENCE_TIME rt, double fps);
29 STDMETHODIMP_(POSITION) GetNext(POSITION pos);
31 STDMETHODIMP_(REFERENCE_TIME) GetStart(POSITION pos, double fps);
32 STDMETHODIMP_(REFERENCE_TIME) GetStop(POSITION pos, double fps);
34 STDMETHODIMP_(bool) IsAnimated (POSITION pos);
36 STDMETHODIMP Render(SubPicDesc& spd, REFERENCE_TIME rt, double fps, RECT& bbox);
37 STDMETHODIMP GetTextureSize (POSITION pos, SIZE& MaxTextureSize, SIZE& VirtualSize, POINT& VirtualTopLeft);
39 // ISubPicProviderEx
41 STDMETHODIMP_(VOID) GetStartStop(POSITION pos, double fps, /*out*/REFERENCE_TIME& start, /*out*/REFERENCE_TIME& stop);
43 STDMETHODIMP RenderEx(SubPicDesc& spd, REFERENCE_TIME rt, double fps, CAtlList<CRect>& rectList);
45 STDMETHODIMP_(bool) IsColorTypeSupported(int type);
46 STDMETHODIMP_(int) SetOutputColorType(int type);//Important! May failed!