00001 /* 00002 * Copyright (C) 2003-2005 Gabest 00003 * http://www.gabest.org 00004 * 00005 * This Program is free software; you can redistribute it and/or modify 00006 * it under the terms of the GNU General Public License as published by 00007 * the Free Software Foundation; either version 2, or (at your option) 00008 * any later version. 00009 * 00010 * This Program is distributed in the hope that it will be useful, 00011 * but WITHOUT ANY WARRANTY; without even the implied warranty of 00012 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 00013 * GNU General Public License for more details. 00014 * 00015 * You should have received a copy of the GNU General Public License 00016 * along with GNU Make; see the file COPYING. If not, write to 00017 * the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. 00018 * http://www.gnu.org/copyleft/gpl.html 00019 * 00020 */ 00021 00022 #pragma once 00023 00024 #include "..\BaseSplitter\BaseSplitter.h" 00025 #include "MpaSplitterFile.h" 00026 00027 [uuid("0E9D4BF7-CBCB-46C7-BD80-4EF223A3DC2B")] 00028 class CMpaSplitterFilter : public CBaseSplitterFilter 00029 { 00030 REFERENCE_TIME m_rtStart; 00031 00032 protected: 00033 CAutoPtr<CMpaSplitterFile> m_pFile; 00034 HRESULT CreateOutputs(IAsyncReader* pAsyncReader); 00035 00036 STDMETHODIMP GetDuration(LONGLONG* pDuration); 00037 00038 bool DemuxInit(); 00039 void DemuxSeek(REFERENCE_TIME rt); 00040 bool DemuxLoop(); 00041 00042 public: 00043 CMpaSplitterFilter(LPUNKNOWN pUnk, HRESULT* phr); 00044 00045 DECLARE_IUNKNOWN 00046 STDMETHODIMP NonDelegatingQueryInterface(REFIID riid, void** ppv); 00047 }; 00048 00049 [uuid("59A0DB73-0287-4C9A-9D3C-8CFF39F8E5DB")] 00050 class CMpaSourceFilter : public CMpaSplitterFilter 00051 { 00052 public: 00053 CMpaSourceFilter(LPUNKNOWN pUnk, HRESULT* phr); 00054 };