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
|
141 pascal AVIFileRelease(long) AVIFileRelease
|
||||||
142 pascal AVIFileInfo(long ptr long) AVIFileInfoA
|
142 pascal AVIFileInfo(long ptr long) AVIFileInfoA
|
||||||
143 pascal AVIFileGetStream(long ptr long long) AVIFileGetStream
|
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
|
146 pascal AVIFileWriteData(long long ptr long) AVIFileWriteData
|
||||||
147 pascal AVIFileReadData(long long ptr ptr) AVIFileReadData
|
147 pascal AVIFileReadData(long long ptr ptr) AVIFileReadData
|
||||||
148 pascal AVIFileEndRecord(long) AVIFileEndRecord
|
148 pascal AVIFileEndRecord(long) AVIFileEndRecord
|
||||||
160 pascal AVIStreamAddRef(long) AVIStreamAddRef
|
160 pascal AVIStreamAddRef(long) AVIStreamAddRef
|
||||||
161 pascal AVIStreamRelease(long) AVIStreamRelease
|
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
|
163 pascal AVIStreamFindSample(long long long) AVIStreamFindSample
|
||||||
164 pascal AVIStreamReadFormat(long long ptr ptr) AVIStreamReadFormat
|
164 pascal AVIStreamReadFormat(long long ptr ptr) AVIStreamReadFormat
|
||||||
165 pascal AVIStreamReadData(long long ptr ptr) AVIStreamReadData
|
165 pascal AVIStreamReadData(long long ptr ptr) AVIStreamReadData
|
||||||
|
|
|
@ -23,6 +23,27 @@
|
||||||
#include "wingdi.h"
|
#include "wingdi.h"
|
||||||
#include "vfw.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
|
struct frame_wrapper16
|
||||||
{
|
{
|
||||||
PGETFRAME pg;
|
PGETFRAME pg;
|
||||||
|
@ -131,3 +152,82 @@ HRESULT WINAPI AVIStreamGetFrameClose16(PGETFRAME pg)
|
||||||
HeapFree(GetProcessHeap(), 0, wrapper);
|
HeapFree(GetProcessHeap(), 0, wrapper);
|
||||||
return hr;
|
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