1545
|
1 #ifndef AVIFILE_DS_VIDEODECODER_H
|
|
2 #define AVIFILE_DS_VIDEODECODER_H
|
|
3
|
3059
|
4 #ifndef NOAVIFILE_HEADERS
|
|
5 #include "videodecoder.h"
|
|
6 #else
|
3063
|
7 #include "libwin32.h"
|
3059
|
8 #endif
|
|
9 #include "DS_Filter.h"
|
1545
|
10
|
3059
|
11 typedef struct _DS_VideoDecoder
|
1545
|
12 {
|
3059
|
13 IVideoDecoder iv;
|
|
14
|
1545
|
15 DS_Filter* m_pDS_Filter;
|
|
16 AM_MEDIA_TYPE m_sOurType, m_sDestType;
|
|
17 VIDEOINFOHEADER* m_sVhdr;
|
|
18 VIDEOINFOHEADER* m_sVhdr2;
|
3059
|
19 int m_Caps;//CAPS m_Caps; // capabilities of DirectShow decoder
|
1545
|
20 int m_iLastQuality; // remember last quality as integer
|
3059
|
21 int m_iMinBuffers;
|
|
22 int m_iMaxAuto;
|
|
23 int m_bIsDivX; // for speed
|
|
24 int m_bIsDivX4; // for speed
|
|
25 }DS_VideoDecoder;
|
|
26
|
|
27
|
|
28
|
|
29 int DS_VideoDecoder_GetCapabilities(DS_VideoDecoder *this);
|
|
30
|
|
31 DS_VideoDecoder * DS_VideoDecoder_Create(CodecInfo * info, BITMAPINFOHEADER * format, int flip, int maxauto);
|
|
32
|
|
33 void DS_VideoDecoder_Destroy(DS_VideoDecoder *this);
|
|
34
|
|
35 void DS_VideoDecoder_StartInternal(DS_VideoDecoder *this);
|
|
36
|
|
37 void DS_VideoDecoder_StopInternal(DS_VideoDecoder *this);
|
|
38
|
3063
|
39 int DS_VideoDecoder_DecodeInternal(DS_VideoDecoder *this, const void* src, int size, int is_keyframe, char* pImage);
|
3059
|
40
|
|
41 /*
|
|
42 * bits == 0 - leave unchanged
|
|
43 */
|
|
44 //int SetDestFmt(DS_VideoDecoder * this, int bits = 24, fourcc_t csp = 0);
|
|
45 int DS_VideoDecoder_SetDestFmt(DS_VideoDecoder *this, int bits, fourcc_t csp);
|
|
46
|
|
47
|
|
48 int DS_VideoDecoder_SetDirection(DS_VideoDecoder *this, int d);
|
|
49
|
|
50 HRESULT DS_VideoDecoder_GetValue(DS_VideoDecoder *this, const char* name, int* value);
|
|
51
|
|
52 HRESULT DS_VideoDecoder_SetValue(DS_VideoDecoder *this, const char* name, int value);
|
|
53
|
1545
|
54
|
|
55 #endif /* AVIFILE_DS_VIDEODECODER_H */
|