Merge pull request #5101 from FernetMenta/ffmpeg-threads
[vuplus_xbmc] / xbmc / cores / dvdplayer / DVDCodecs / Video / DVDVideoPPFFmpeg.h
1 #pragma once
2
3 /*
4  *      Copyright (C) 2005-2013 Team XBMC
5  *      http://xbmc.org
6  *
7  *  This Program is free software; you can redistribute it and/or modify
8  *  it under the terms of the GNU General Public License as published by
9  *  the Free Software Foundation; either version 2, or (at your option)
10  *  any later version.
11  *
12  *  This Program is distributed in the hope that it will be useful,
13  *  but WITHOUT ANY WARRANTY; without even the implied warranty of
14  *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15  *  GNU General Public License for more details.
16  *
17  *  You should have received a copy of the GNU General Public License
18  *  along with XBMC; see the file COPYING.  If not, see
19  *  <http://www.gnu.org/licenses/>.
20  *
21  */
22
23 #include "DVDVideoCodec.h"
24 #include "DllPostProc.h"
25
26 class CDVDVideoPPFFmpeg
27 {
28 public:
29
30   CDVDVideoPPFFmpeg(const CStdString& mType);
31   ~CDVDVideoPPFFmpeg();
32
33
34   void SetType(const CStdString& mType, bool deinterlace);
35   void SetTarget(DVDVideoPicture *pPicture){ m_pTarget = pPicture; };
36   bool Process   (DVDVideoPicture *pPicture);
37   bool GetPicture(DVDVideoPicture *pPicture);
38
39 protected:
40   CStdString m_sType;
41
42   void *m_pContext;
43   void *m_pMode;
44   bool m_deinterlace;
45
46   DVDVideoPicture m_FrameBuffer;
47   DVDVideoPicture *m_pSource;
48   DVDVideoPicture *m_pTarget;
49
50   void Dispose();
51
52   int m_iInitWidth, m_iInitHeight;
53   bool CheckInit(int iWidth, int iHeight);
54   bool CheckFrameBuffer(const DVDVideoPicture* pSource);
55
56   DllPostProc m_dll;
57 };
58
59