diff --git a/include/Makefile.in b/include/Makefile.in index eae7feef2da..7d3d39ee5e2 100644 --- a/include/Makefile.in +++ b/include/Makefile.in @@ -28,6 +28,9 @@ INSTALLED_INCLUDES = \ dinput.h \ dispdib.h \ dlgs.h \ + dmo.h \ + dmoreg.h \ + dmort.h \ docobj.h \ dplay.h \ dplobby.h \ @@ -47,6 +50,8 @@ INSTALLED_INCLUDES = \ mapidefs.h \ mciavi.h \ mcx.h \ + mediaerr.h \ + mediaobj.h \ minmax.h \ mmreg.h \ mmsystem.h \ diff --git a/include/dmo.h b/include/dmo.h new file mode 100644 index 00000000000..db4216b15a7 --- /dev/null +++ b/include/dmo.h @@ -0,0 +1,28 @@ +/* + * Copyright (C) 2002 Hidenori Takeshima + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + */ + +#ifndef __WINE_DMO_H_ +#define __WINE_DMO_H_ + +#include "mediaobj.h" +#include "dmoreg.h" +#include "dmort.h" +#include "mediaerr.h" + + +#endif /* __WINE_DMO_H_ */ diff --git a/include/dmoreg.h b/include/dmoreg.h new file mode 100644 index 00000000000..beb3c9450a0 --- /dev/null +++ b/include/dmoreg.h @@ -0,0 +1,50 @@ +/* + * Copyright (C) 2002 Hidenori Takeshima + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + */ + +#ifndef __WINE_DMOREG_H_ +#define __WINE_DMOREG_H_ + + +/* structs. */ + +typedef struct +{ + GUID type; + GUID subtype; +} DMO_PARTIAL_MEDIATYPE; + +/* exported APIs */ + +HRESULT WINAPI DMOEnum( REFGUID rguidCat, DWORD dwFlags, DWORD dwCountOfInTypes, const DMO_PARTIAL_MEDIATYPE* pInTypes, DWORD dwCountOfOutTypes, const DMO_PARTIAL_MEDIATYPE* pOutTypes, IEnumDMO** ppEnum ); + +HRESULT WINAPI DMOGetName( REFCLSID rclsid, WCHAR* pwszName ); + +HRESULT WINAPI DMOGetTypes( REFCLSID rclsid, unsigned long ulInputTypesReq, unsigned long* pulInputTypesRet, unsigned long ulOutputTypesReq, unsigned long* pulOutputTypesRet, const DMO_PARTIAL_MEDIATYPE* pOutTypes ); + +/* DMOGuidToStrA - undocumented */ +/* DMOGuidToStrW - undocumented */ + +HRESULT WINAPI DMORegister( LPCWSTR pwszName, REFCLSID rclsid, REFGUID rguidCat, DWORD dwFlags, DWORD dwCountOfInTypes, const DMO_PARTIAL_MEDIATYPE* pInTypes, DWORD dwCountOfOutTypes, const DMO_PARTIAL_MEDIATYPE* pOutTypes ); + +/* DMOStrToGuidA - undocumented */ +/* DMOStrToGuidW - undocumented */ + +HRESULT WINAPI DMOUnregister( REFCLSID rclsid, REFGUID rguidCat ); + + +#endif /* __WINE_DMOREG_H_ */ diff --git a/include/dmort.h b/include/dmort.h new file mode 100644 index 00000000000..3a12ab07fc9 --- /dev/null +++ b/include/dmort.h @@ -0,0 +1,33 @@ +/* + * Copyright (C) 2002 Hidenori Takeshima + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + */ + +#ifndef __WINE_DMORT_H_ +#define __WINE_DMORT_H_ + + +/* exported APIs */ + +HRESULT WINAPI MoCopyMediaType( DMO_MEDIA_TYPE* pmtDst, const DMO_MEDIA_TYPE* pmtSrc ); +HRESULT WINAPI MoCreateMediaType( DMO_MEDIA_TYPE** ppmt, DWORD cbFormat ); +HRESULT WINAPI MoDeleteMediaType( DMO_MEDIA_TYPE* pmt ); +HRESULT WINAPI MoDuplicateMediaType( DMO_MEDIA_TYPE** ppmtDest, const DMO_MEDIA_TYPE* pmtSrc ); +HRESULT WINAPI MoFreeMediaType( DMO_MEDIA_TYPE* pmt ); +HRESULT WINAPI MoInitMediaType( DMO_MEDIA_TYPE* pmt, DWORD cbFormat ); + + +#endif /* __WINE_DMORT_H_ */ diff --git a/include/mediaerr.h b/include/mediaerr.h new file mode 100644 index 00000000000..5b7c9172278 --- /dev/null +++ b/include/mediaerr.h @@ -0,0 +1,29 @@ +/* + * Copyright (C) 2002 Hidenori Takeshima + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + */ + +#ifndef __WINE_MEDIAERR_H_ +#define __WINE_MEDIAERR_H_ + +#define DMO_E_INVALIDSTREAMINDEX 0x80040201 +#define DMO_E_INVALIDTYPE 0x80040202 +#define DMO_E_TYPE_NOT_SET 0x80040203 +#define DMO_E_NOTACCEPTING 0x80040204 +#define DMO_E_TYPE_NOT_ACCEPTED 0x80040205 +#define DMO_E_NO_MORE_ITEMS 0x80040206 + +#endif /* __WINE_MEDIAERR_H_ */ diff --git a/include/mediaobj.h b/include/mediaobj.h new file mode 100644 index 00000000000..b6aaff9f03c --- /dev/null +++ b/include/mediaobj.h @@ -0,0 +1,50 @@ +/* + * Copyright (C) 2002 Hidenori Takeshima + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + */ + +#ifndef __WINE_MEDIAOBJ_H_ +#define __WINE_MEDIAOBJ_H_ + +/* forward decls. */ + +typedef struct IDMOQualityControl IDMOQualityControl; +typedef struct IDMOVideoOutputOptimizations IDMOVideoOutputOptimizations; +typedef struct IEnumDMO IEnumDMO; +typedef struct IMediaBuffer IMediaBuffer; +typedef struct IMediaObject IMediaObject; +typedef struct IMediaObjectInPlace IMediaObjectInPlace; + + + +/* structs. */ + +typedef struct +{ + GUID majortype; + GUID subtype; + BOOL bFixedSizeSamples; + BOOL bTemporalCompression; + ULONG lSampleSize; + GUID formattype; + IUnknown* pUnk; + ULONG cbFormat; + BYTE* pbFormat; +} DMO_MEDIA_TYPE; + + + +#endif /* __WINE_MEDIAOBJ_H_ */