2 Copyright 2004-2006 Marten Richter
4 This file is part of VOMP.
6 VOMP is free software; you can redistribute it and/or modify
7 it under the terms of the GNU General Public License as published by
8 the Free Software Foundation; either version 2 of the License, or
9 (at your option) any later version.
11 VOMP is distributed in the hope that it will be useful,
12 but WITHOUT ANY WARRANTY; without even the implied warranty of
13 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 GNU General Public License for more details.
16 You should have received a copy of the GNU General Public License
17 along with VOMP; if not, write to the Free Software
18 Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
28 EXTERN_C const GUID FAR MEDIATYPE_WaveFmt_Mpeg1Layer3;
34 [uuid("17F931AB-9A87-4c65-B99E-84F5BC5F7B09")]
35 class DsSourcePin: public IPin {
38 DsSourcePin(DsSourceFilter *pFilter,HRESULT *phr,LPCWSTR pName,bool audio);
40 BOOL IsConnected() {return (connected!=NULL);};
41 HRESULT getCurrentMediaSample(IMediaSample**ms);
42 HRESULT deliver(IMediaSample * ms);
43 void SetMsToMt(IMediaSample *ms);
45 void SetPinMode(int mode);
47 virtual HRESULT DecideBufferSize(IMemAllocator *pa,ALLOCATOR_PROPERTIES *all_pp);
51 HRESULT Run(REFERENCE_TIME reftime);
54 virtual HRESULT STDMETHODCALLTYPE Connect(IPin *pinempf,const AM_MEDIA_TYPE *mtype);
55 virtual HRESULT STDMETHODCALLTYPE ReceiveConnection(IPin *connect,const AM_MEDIA_TYPE *mtype);
56 virtual HRESULT STDMETHODCALLTYPE Disconnect();
57 virtual HRESULT STDMETHODCALLTYPE ConnectedTo(IPin **pin);
58 virtual HRESULT STDMETHODCALLTYPE ConnectionMediaType(AM_MEDIA_TYPE *mtype);
59 virtual HRESULT STDMETHODCALLTYPE QueryPinInfo(PIN_INFO *info);
60 virtual HRESULT STDMETHODCALLTYPE QueryDirection(PIN_DIRECTION *dir);
61 virtual HRESULT STDMETHODCALLTYPE QueryId(LPWSTR *id);
62 virtual HRESULT STDMETHODCALLTYPE QueryAccept(const AM_MEDIA_TYPE *mtype);
63 virtual HRESULT STDMETHODCALLTYPE EnumMediaTypes(IEnumMediaTypes **enuma);
64 virtual HRESULT STDMETHODCALLTYPE QueryInternalConnections(IPin **pin,ULONG *numpin);
65 virtual HRESULT STDMETHODCALLTYPE EndOfStream();
66 virtual HRESULT STDMETHODCALLTYPE NewSegment(REFERENCE_TIME start,REFERENCE_TIME stop,double rate);
68 virtual HRESULT STDMETHODCALLTYPE QueryInterface(REFIID id,void ** object);
69 virtual ULONG STDMETHODCALLTYPE AddRef();
70 virtual ULONG STDMETHODCALLTYPE Release();
71 virtual HRESULT STDMETHODCALLTYPE BeginFlush(){return E_UNEXPECTED;};
72 virtual HRESULT STDMETHODCALLTYPE EndFlush(){return E_UNEXPECTED;};
73 virtual HRESULT GetMediaType(int iPosition, AM_MEDIA_TYPE *pmt);
78 virtual HRESULT CheckMediaType(const AM_MEDIA_TYPE *pmt);
79 HRESULT GetMediaTypeMpegAudio(int iPosition, AM_MEDIA_TYPE *pmt);
80 HRESULT GetMediaTypeMp3Audio(int iPosition, AM_MEDIA_TYPE *pmt);
81 HRESULT GetMediaTypeAc3(int iPosition, AM_MEDIA_TYPE *pmt);
82 HRESULT GetMediaTypeMpegVideo(int iPosition, AM_MEDIA_TYPE *pmt);
86 DsSourceFilter *m_pFilter;
88 IMemInputPin* connectedinput;
89 AM_MEDIA_TYPE medtype;
90 IMemAllocator* allocator;