00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030
00031
00032 #pragma once
00033 #include "subtitledllstuff.h"
00034 #include <d3d9.h>
00035 #include <vmr9.h>
00036 #include <tchar.h>
00037 #include <string>
00038 using namespace std;
00039
00040 #define TRANSPARENCY_VALUE (0.8f)
00041
00042 #define PURE_WHITE RGB(255,255,255)
00043 #define ALMOST_WHITE RGB(250,250,250)
00044
00045 #define BLEND_TEXT TEXT("This is a demonstration of alpha-blended dynamic text.\0")
00046 #define DYNAMIC_TEXT_SIZE 255
00047
00048 #define DEFAULT_FONT_NAME TEXT("Impact\0")
00049 #define DEFAULT_FONT_STYLE TEXT("Regular\0")
00050 #define DEFAULT_FONT_SIZE 12
00051 #define DEFAULT_FONT_COLOR RGB(250,250,250)
00052 #define MAX_FONT_SIZE 25
00053
00054
00055 class SubtitleVMR9OutputPin
00056 : public CBasePin
00057 {
00058 public:
00059 SubtitleVMR9OutputPin(SubtitleVMR9Filter* inParentFilter, CCritSec* inFilterLock, CHAR* inObjectName, LPCWSTR inPinDisplayName);
00060 virtual ~SubtitleVMR9OutputPin(void);
00061
00062
00063
00064 virtual HRESULT CheckConnect(IPin *pPin);
00065 virtual HRESULT CheckMediaType(const CMediaType *pmt);
00066 virtual STDMETHODIMP BeginFlush();
00067 virtual STDMETHODIMP EndFlush();
00068
00069 virtual HRESULT SetSubtitle(wstring inSubtitle);
00070
00071 HRESULT SubtitleVMR9OutputPin::GetMediaType(int inPosition, CMediaType *outMediaType);
00072 bool SubtitleVMR9OutputPin::FillVideoInfoHeader(VIDEOINFOHEADER* inFormatBuffer);
00073 void SubtitleVMR9OutputPin::FillMediaType(CMediaType* outMediaType);
00074
00075
00076
00077 protected:
00078 void SetColorRef(VMR9AlphaBitmap& bmpInfo);
00079 SubtitleVMR9Filter* mParentFilter;
00080 HRESULT mHR;
00081 IVMRMixerBitmap9* mBitmapMixer;
00082 VMR9AlphaBitmap mAlphaBitmap;
00083 };