2 * Initial code sponsored by: Voddler Inc (voddler.com)
3 * Copyright (C) 2005-2013 Team XBMC
6 * This Program 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, or (at your option)
11 * This Program 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 XBMC; see the file COPYING. If not, see
18 * <http://www.gnu.org/licenses/>.
24 #include "threads/CriticalSection.h"
25 #include "BaseRenderer.h"
30 class CDVDOverlayImage;
50 virtual COverlay* Acquire();
51 virtual long Release();
52 virtual void Render(SRenderState& state) = 0;
68 , POSITION_ABSOLUTE_SCREEN
81 class COverlayMainThread
85 virtual ~COverlayMainThread() {}
86 virtual long Release();
96 void AddOverlay(CDVDOverlay* o, double pts, int index);
97 void AddOverlay(COverlay* o, double pts, int index);
98 void AddCleanup(COverlay* o);
101 void Release(int idx);
114 CDVDOverlay* overlay_dvd;
118 typedef std::vector<COverlay*> COverlayV;
119 typedef std::vector<SElement> SElementV;
121 void Render(COverlay* o);
122 COverlay* Convert(CDVDOverlay* o, double pts);
123 COverlay* Convert(CDVDOverlaySSA* o, double pts);
125 void Release(COverlayV& list);
126 void Release(SElementV& list);
128 CCriticalSection m_section;
129 SElementV m_buffers[NUM_BUFFERS];