Fix YUY2 output issue, see Issue 18.
[xy_vsfilter.git] / src / dsutil / NullRenderers.h
blobf944cbe1b26d8a4dc360c09bb6077b09fb275c19
1 /*
2 * Copyright (C) 2003-2006 Gabest
3 * http://www.gabest.org
5 * This Program is free software; you can redistribute it and/or modify
6 * it under the terms of the GNU General Public License as published by
7 * the Free Software Foundation; either version 2, or (at your option)
8 * any later version.
9 *
10 * This Program is distributed in the hope that it will be useful,
11 * but WITHOUT ANY WARRANTY; without even the implied warranty of
12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 * GNU General Public License for more details.
15 * You should have received a copy of the GNU General Public License
16 * along with GNU Make; see the file COPYING. If not, write to
17 * the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
18 * http://www.gnu.org/copyleft/gpl.html
22 #pragma once
24 #include <atlcoll.h>
26 class CNullRenderer : public CBaseRenderer
28 protected:
29 HRESULT DoRenderSample(IMediaSample* pSample) {return S_OK;}
31 public:
32 CNullRenderer(REFCLSID clsid, TCHAR* pName, LPUNKNOWN pUnk, HRESULT* phr);
35 [uuid("579883A0-4E2D-481F-9436-467AAFAB7DE8")]
36 class CNullVideoRenderer : public CNullRenderer
38 protected:
39 HRESULT CheckMediaType(const CMediaType* pmt);
41 public:
42 CNullVideoRenderer(LPUNKNOWN pUnk, HRESULT* phr);
45 [uuid("DD9ED57D-6ABF-42E8-89A2-11D04798DC58")]
46 class CNullUVideoRenderer : public CNullRenderer
48 protected:
49 HRESULT CheckMediaType(const CMediaType* pmt);
51 public:
52 CNullUVideoRenderer(LPUNKNOWN pUnk, HRESULT* phr);
55 [uuid("0C38BDFD-8C17-4E00-A344-F89397D3E22A")]
56 class CNullAudioRenderer : public CNullRenderer
58 protected:
59 HRESULT CheckMediaType(const CMediaType* pmt);
61 public:
62 CNullAudioRenderer(LPUNKNOWN pUnk, HRESULT* phr);
65 [uuid("64A45125-7343-4772-9DA4-179FAC9D462C")]
66 class CNullUAudioRenderer : public CNullRenderer
68 protected:
69 HRESULT CheckMediaType(const CMediaType* pmt);
71 public:
72 CNullUAudioRenderer(LPUNKNOWN pUnk, HRESULT* phr);
75 [uuid("655D7613-C26C-4A25-BBBD-3C9C516122CC")]
76 class CNullTextRenderer : public CBaseFilter, public CCritSec
78 class CTextInputPin : public CBaseInputPin
80 public:
81 CTextInputPin(CBaseFilter* pFilter, CCritSec* pLock, HRESULT* phr)
82 : CBaseInputPin(NAME("CTextInputPin"), pFilter, pLock, phr, L"In") {}
83 HRESULT CheckMediaType(const CMediaType* pmt);
86 CAutoPtr<CTextInputPin> m_pInput;
88 public:
89 CNullTextRenderer(LPUNKNOWN pUnk, HRESULT* phr);
90 int GetPinCount() {return (int)!!m_pInput;}
91 CBasePin* GetPin(int n) {return n == 0 ? (CBasePin*)m_pInput : NULL;}