3 |
* XVID MPEG-4 VIDEO CODEC |
* XVID MPEG-4 VIDEO CODEC |
4 |
* - XviD Decoder part of the DShow Filter - |
* - XviD Decoder part of the DShow Filter - |
5 |
* |
* |
6 |
* Copyright(C) 2002-2010 Peter Ross <pross@xvid.org> |
* Copyright(C) 2002-2012 Peter Ross <pross@xvid.org> |
7 |
* |
* |
8 |
* This program is free software ; you can redistribute it and/or modify |
* This program is free software ; you can redistribute it and/or modify |
9 |
* it under the terms of the GNU General Public License as published by |
* it under the terms of the GNU General Public License as published by |
19 |
* along with this program ; if not, write to the Free Software |
* along with this program ; if not, write to the Free Software |
20 |
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA |
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA |
21 |
* |
* |
22 |
* $Id: CXvidDecoder.h,v 1.11 2011-03-17 15:11:32 Isibaar Exp $ |
* $Id$ |
23 |
* |
* |
24 |
****************************************************************************/ |
****************************************************************************/ |
25 |
|
|
26 |
#ifndef _FILTER_H_ |
#ifndef _FILTER_H_ |
27 |
#define _FILTER_H_ |
#define _FILTER_H_ |
28 |
|
|
29 |
|
#include <time.h> |
30 |
#include <xvid.h> |
#include <xvid.h> |
31 |
#include "IXvidDecoder.h" |
#include "IXvidDecoder.h" |
32 |
|
|
33 |
#define XVID_NAME_L L"Xvid MPEG-4 Video Decoder" |
#define XVID_NAME_L L"Xvid MPEG-4 Video Decoder" |
34 |
|
#define XVID_NAME_MFT_L L"Xvid MPEG-4 Video Decoder MFT" |
35 |
|
|
36 |
/* --- fourcc --- */ |
/* --- fourcc --- */ |
37 |
|
|
155 |
|
|
156 |
private : |
private : |
157 |
|
|
158 |
HRESULT ChangeColorspace(GUID subtype, GUID formattype, void * format, int noflip); |
HRESULT ChangeColorspace(GUID subtype, GUID formattype, void * format, int *bitdepth, int noflip); |
159 |
HRESULT OpenLib(); |
HRESULT OpenLib(); |
160 |
void CloseLib(); |
void CloseLib(); |
161 |
|
|
171 |
int rgb_flip; |
int rgb_flip; |
172 |
int out_stride; |
int out_stride; |
173 |
|
|
174 |
|
clock_t m_startClock; |
175 |
|
int m_tray_icon; |
176 |
|
|
177 |
/* mft stuff */ |
/* mft stuff */ |
178 |
#if defined(XVID_USE_MFT) |
#if defined(XVID_USE_MFT) |
179 |
BOOL HasPendingOutput() const { return m_frame.output.plane[1] != NULL; } |
BOOL HasPendingOutput() const { return m_frame.output.plane[1] != NULL; } |
181 |
HRESULT OnSetInputType(IMFMediaType *pmt); |
HRESULT OnSetInputType(IMFMediaType *pmt); |
182 |
HRESULT OnCheckInputType(IMFMediaType *pmt); |
HRESULT OnCheckInputType(IMFMediaType *pmt); |
183 |
|
|
184 |
HRESULT OnSetOutputType(IMFMediaType *pmt); |
HRESULT OnSetOutputType(IMFMediaType *pmt, int bitdepth); |
185 |
|
|
186 |
IMFMediaType *m_pInputType; |
IMFMediaType *m_pInputType; |
187 |
IMFMediaType *m_pOutputType; |
IMFMediaType *m_pOutputType; |
188 |
|
int m_pOutputTypeBPP; |
189 |
|
|
190 |
CRITICAL_SECTION m_mft_lock; |
CRITICAL_SECTION m_mft_lock; |
191 |
REFERENCE_TIME m_timestamp; |
REFERENCE_TIME m_timestamp; |
197 |
REFERENCE_TIME m_rtFrame; |
REFERENCE_TIME m_rtFrame; |
198 |
MFRatio m_frameRate; |
MFRatio m_frameRate; |
199 |
UINT64 m_duration; |
UINT64 m_duration; |
|
#endif |
|
200 |
|
|
201 |
#ifdef XVID_USE_TRAYICON |
HANDLE m_thread_handle; |
202 |
HWND MSG_hwnd; /* message handler window */ |
#endif |
203 |
}; |
}; |
204 |
#define WM_ICONMESSAGE (WM_USER + 1) |
#define WM_ICONMESSAGE (WM_USER + 1) |
|
#else |
|
|
}; |
|
|
#endif |
|
205 |
|
|
206 |
static const int PARS[][2] = { |
static const int PARS[][2] = { |
207 |
{1, 1}, |
{1, 1}, |