--- branches/dev-api-4/xvidcore/dshow/src/CXvidDecoder.h 2003/06/09 13:55:56 1054 +++ branches/dev-api-4/xvidcore/dshow/src/CXvidDecoder.h 2004/01/07 13:50:28 1307 @@ -19,7 +19,7 @@ * along with this program ; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA * - * $Id: CXvidDecoder.h,v 1.1.2.2 2003-06-09 13:49:00 edgomez Exp $ + * $Id: CXvidDecoder.h,v 1.1.2.6 2004-01-07 13:50:28 syskin Exp $ * ****************************************************************************/ @@ -47,6 +47,16 @@ DPRINTF(char *fmt, ...) { } #endif +/* registry stuff */ +#define XVID_REG_KEY HKEY_CURRENT_USER +#define XVID_REG_SUBKEY "Software\\GNU\\XviD" +#define XVID_REG_CLASS "config" + +#define REG_GET_N(X, Y, Z) size=sizeof(int);if(RegQueryValueEx(hKey, X, 0, 0, (LPBYTE)&Y, &size) != ERROR_SUCCESS) {Y=Z;} +#define REG_GET_S(X, Y, Z) size=MAX_PATH;if(RegQueryValueEx(hKey, X, 0, 0, Y, &size) != ERROR_SUCCESS) {lstrcpy(Y, Z);} +#define REG_SET_N(X, Y) RegSetValueEx(hKey, X, 0, REG_DWORD, (LPBYTE)&Y, sizeof(int)) +#define REG_SET_S(X, Y) RegSetValueEx(hKey, X, 0, REG_SZ, Y, lstrlen(Y)+1) + #define XVID_NAME_L L"XviD MPEG-4 Video Decoder" /* --- fourcc --- */ @@ -65,6 +75,10 @@ DEFINE_GUID(CLSID_DX50_UC, mmioFOURCC('D','X','5','0'), 0x0000, 0x0010, 0x80, 0x00, 0x00, 0xaa, 0x00, 0x38, 0x9b, 0x71); +/* MEDIATYPE_IYUV is not always defined in the directx headers */ +DEFINE_GUID(CLSID_MEDIASUBTYPE_IYUV, 0x56555949, 0x0000, 0x0010, 0x80, 0x00, 0x00, 0xaa, 0x00, 0x38, 0x9b, 0x71); + + class CXvidDecoder : public CVideoTransformFilter, public IXvidDecoder, public ISpecifyPropertyPages { @@ -93,14 +107,13 @@ HRESULT ChangeColorspace(GUID subtype, GUID formattype, void * format); - // data - - HINSTANCE m_hdll; - int (*m_xvid_global)(void *, int, void *, void *); - int (*m_xvid_decore)(void *, int, void *, void *); - xvid_dec_create_t m_create; xvid_dec_frame_t m_frame; + + HINSTANCE m_hdll; + int (*xvid_global_func)(void *handle, int opt, void *param1, void *param2); + int (*xvid_decore_func)(void *handle, int opt, void *param1, void *param2); + int ar_x, ar_y; };