avifile.dll16: Convert between AVISTREAMINFO (16 bit) and AVISTREAMINFOA.
Signed-off-by: Vijay Kiran Kamuju <infyquest@gmail.com> Signed-off-by: Alexandre Julliard <julliard@winehq.org>
This commit is contained in:
parent
9fd1ec6327
commit
e40dd74d81
|
@ -36,13 +36,13 @@
|
|||
141 pascal AVIFileRelease(long) AVIFileRelease
|
||||
142 pascal AVIFileInfo(long ptr long) AVIFileInfoA
|
||||
143 pascal AVIFileGetStream(long ptr long long) AVIFileGetStream
|
||||
144 pascal AVIFileCreateStream(long ptr ptr) AVIFileCreateStreamA
|
||||
144 pascal AVIFileCreateStream(long ptr ptr) AVIFileCreateStream16
|
||||
146 pascal AVIFileWriteData(long long ptr long) AVIFileWriteData
|
||||
147 pascal AVIFileReadData(long long ptr ptr) AVIFileReadData
|
||||
148 pascal AVIFileEndRecord(long) AVIFileEndRecord
|
||||
160 pascal AVIStreamAddRef(long) AVIStreamAddRef
|
||||
161 pascal AVIStreamRelease(long) AVIStreamRelease
|
||||
162 pascal AVIStreamInfo(long ptr long) AVIStreamInfoA
|
||||
162 pascal AVIStreamInfo(long ptr long) AVIStreamInfo16
|
||||
163 pascal AVIStreamFindSample(long long long) AVIStreamFindSample
|
||||
164 pascal AVIStreamReadFormat(long long ptr ptr) AVIStreamReadFormat
|
||||
165 pascal AVIStreamReadData(long long ptr ptr) AVIStreamReadData
|
||||
|
|
|
@ -23,6 +23,27 @@
|
|||
#include "wingdi.h"
|
||||
#include "vfw.h"
|
||||
|
||||
typedef struct _AVISTREAMINFO16 {
|
||||
DWORD fccType;
|
||||
DWORD fccHandler;
|
||||
DWORD dwFlags;
|
||||
DWORD dwCaps;
|
||||
WORD wPriority;
|
||||
WORD wLanguage;
|
||||
DWORD dwScale;
|
||||
DWORD dwRate;
|
||||
DWORD dwStart;
|
||||
DWORD dwLength;
|
||||
DWORD dwInitialFrames;
|
||||
DWORD dwSuggestedBufferSize;
|
||||
DWORD dwQuality;
|
||||
DWORD dwSampleSize;
|
||||
RECT16 rcFrame;
|
||||
DWORD dwEditCount;
|
||||
DWORD dwFormatChangeCount;
|
||||
CHAR szName[64];
|
||||
} AVISTREAMINFO16, *LPAVISTREAMINFO16, *PAVISTREAMINFO16;
|
||||
|
||||
struct frame_wrapper16
|
||||
{
|
||||
PGETFRAME pg;
|
||||
|
@ -131,3 +152,82 @@ HRESULT WINAPI AVIStreamGetFrameClose16(PGETFRAME pg)
|
|||
HeapFree(GetProcessHeap(), 0, wrapper);
|
||||
return hr;
|
||||
}
|
||||
|
||||
/***********************************************************************
|
||||
* AVIFileCreateStream (AVIFILE.144)
|
||||
*/
|
||||
HRESULT WINAPI AVIFileCreateStream16(PAVIFILE pfile, PAVISTREAM *ppavi, LPAVISTREAMINFO16 asi16)
|
||||
{
|
||||
AVISTREAMINFOA asi;
|
||||
|
||||
if (!asi16)
|
||||
return AVIFileCreateStreamA(pfile, ppavi, NULL);
|
||||
|
||||
asi.fccType = asi16->fccType;
|
||||
asi.fccHandler = asi16->fccHandler;
|
||||
asi.dwFlags = asi16->dwFlags;
|
||||
asi.dwCaps = asi16->dwCaps;
|
||||
asi.wPriority = asi16->wPriority;
|
||||
asi.wLanguage = asi16->wLanguage;
|
||||
asi.dwScale = asi16->dwScale;
|
||||
asi.dwRate = asi16->dwRate;
|
||||
asi.dwStart = asi16->dwStart;
|
||||
asi.dwLength = asi16->dwLength;
|
||||
asi.dwInitialFrames = asi16->dwInitialFrames;
|
||||
asi.dwSuggestedBufferSize = asi16->dwSuggestedBufferSize;
|
||||
asi.dwQuality = asi16->dwQuality;
|
||||
asi.dwSampleSize = asi16->dwSampleSize;
|
||||
asi.rcFrame.left = asi16->rcFrame.left;
|
||||
asi.rcFrame.top = asi16->rcFrame.top;
|
||||
asi.rcFrame.right = asi16->rcFrame.right;
|
||||
asi.rcFrame.bottom = asi16->rcFrame.bottom;
|
||||
asi.dwEditCount = asi16->dwEditCount;
|
||||
asi.dwFormatChangeCount = asi16->dwFormatChangeCount;
|
||||
strcpy( asi.szName, asi16->szName );
|
||||
|
||||
return AVIFileCreateStreamA(pfile, ppavi, &asi);
|
||||
}
|
||||
|
||||
|
||||
/***********************************************************************
|
||||
* AVIStreamInfo (AVIFILE.162)
|
||||
*/
|
||||
HRESULT WINAPI AVIStreamInfo16(PAVISTREAM pstream, LPAVISTREAMINFO16 asi16, LONG size)
|
||||
{
|
||||
AVISTREAMINFOA asi;
|
||||
HRESULT hr;
|
||||
|
||||
if (!asi16)
|
||||
return AVIStreamInfoA(pstream, NULL, size);
|
||||
|
||||
if (size < sizeof(AVISTREAMINFO16))
|
||||
return AVIERR_BADSIZE;
|
||||
|
||||
hr = AVIStreamInfoA(pstream, &asi, sizeof(asi));
|
||||
if (SUCCEEDED(hr))
|
||||
{
|
||||
asi16->fccType = asi.fccType;
|
||||
asi16->fccHandler = asi.fccHandler;
|
||||
asi16->dwFlags = asi.dwFlags;
|
||||
asi16->dwCaps = asi.dwCaps;
|
||||
asi16->wPriority = asi.wPriority;
|
||||
asi16->wLanguage = asi.wLanguage;
|
||||
asi16->dwScale = asi.dwScale;
|
||||
asi16->dwRate = asi.dwRate;
|
||||
asi16->dwStart = asi.dwStart;
|
||||
asi16->dwLength = asi.dwLength;
|
||||
asi16->dwInitialFrames = asi.dwInitialFrames;
|
||||
asi16->dwSuggestedBufferSize = asi.dwSuggestedBufferSize;
|
||||
asi16->dwQuality = asi.dwQuality;
|
||||
asi16->dwSampleSize = asi.dwSampleSize;
|
||||
asi16->rcFrame.left = asi.rcFrame.left;
|
||||
asi16->rcFrame.top = asi.rcFrame.top;
|
||||
asi16->rcFrame.right = asi.rcFrame.right;
|
||||
asi16->rcFrame.bottom = asi.rcFrame.bottom;
|
||||
asi16->dwEditCount = asi.dwEditCount;
|
||||
asi16->dwFormatChangeCount = asi.dwFormatChangeCount;
|
||||
strcpy( asi16->szName, asi.szName );
|
||||
}
|
||||
|
||||
return hr;
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue