74 static const WCHAR mciAviWStr[] = {
'M',
'C',
'I',
'A',
'V',
'I',0};
79 if (!modp)
return 0xFFFFFFFF;
107 TRACE(
"%04x\n", dwDevID);
131 return (dwDevID == 0xFFFFFFFF) ? 1 : 0;
141 TRACE(
"%04x\n", dwDevID);
162 WARN(
"Invalid wDevID=%u\n", wDevID);
218 TRACE(
"(%04x, %08X, %p)\n", wDevID,
dwFlags, lpOpenParms);
267 if (wma->
hFile == 0) {
279 FIXME(
"Don't record yet\n");
351 unsigned i, nHdr = 0;
354 double next_frame_us;
394 while(next_frame_us <= tc && wma->dwCurrVideoFrame < wma->dwToVideoFrame){
400 next_frame_us += dur;
401 TRACE(
"next_frame: %f\n", next_frame_us);
409 TRACE(
"repeat media as requested\n");
417 if (
tc < next_frame_us)
418 delta = next_frame_us -
tc;
433 TRACE(
"playback cancelled using break key\n");
459 for (
i = 0;
i < nHdr;
i++)
507 TRACE(
"In thread before async play command (id %u, flags %08x)\n",
data->wma->wDevID,
data->flags);
509 TRACE(
"In thread after async play command (id %u, flags %08x)\n",
data->wma->wDevID,
data->flags);
532 WARN(
"Couldn't create thread for async play, playing synchronously\n");
547 DWORD dwFromFrame, dwToFrame;
586 TRACE(
"Playing from frame=%u to frame=%u\n", dwFromFrame, dwToFrame);
793 FIXME(
"(%04x, %08x, %p) : stub\n", wDevID,
dwFlags, lpParms);
810 FIXME(
"(%04x, %08x, %p) : stub\n", wDevID,
dwFlags, lpParms);
890 FIXME(
"(%04x, %08x, %p) : stub\n", wDevID,
dwFlags, lpParms);
950 FIXME(
"(%04x, %08x, %p) : stub\n", wDevID,
dwFlags, lpParms);
984 FIXME(
"(%04x, %08x, %p) : stub\n", wDevID,
dwFlags, lpParms);
1005 TRACE(
"(%08lX, %p, %08X, %08lX, %08lX)\n",
1006 dwDevID, hDriv, wMsg, dwParam1, dwParam2);
1022 if (dwDevID == 0xFFFFFFFF)
return 1;
1067 TRACE(
"Unsupported function [0x%x] flags=%08x\n", wMsg, (
DWORD)dwParam1);
1071 WARN(
"Unsupported command [0x%x] %08x\n", wMsg, (
DWORD)dwParam1);
1075 FIXME(
"Shouldn't receive a MCI_OPEN or CLOSE message\n");
1078 TRACE(
"Sending msg [%u] to default driver proc\n", wMsg);
1079 return DefDriverProc(dwDevID, hDriv, wMsg, dwParam1, dwParam2);
#define WINE_DEFAULT_DEBUG_CHANNEL(t)
#define MCI_DGV_SETAUDIO_ITEM
#define MCI_DGV_STEP_FRAMES
#define MCI_DGV_UPDATE_HDC
#define MCI_DGV_STEP_REVERSE
#define MCI_DGV_CUE_INPUT
#define MCI_DGV_SETVIDEO_ITEM
#define MCI_DGV_PLAY_REPEAT
#define MCI_DGV_PLAY_REVERSE
#define DLL_PROCESS_ATTACH
#define HeapFree(x, y, z)
BOOL WINAPI DisableThreadLibraryCalls(IN HMODULE hLibModule)
BOOL WINAPI QueryPerformanceFrequency(OUT PLARGE_INTEGER lpFrequency)
BOOL WINAPI QueryPerformanceCounter(OUT PLARGE_INTEGER lpPerformanceCount)
BOOL WINAPI SetThreadPriority(IN HANDLE hThread, IN int nPriority)
HANDLE WINAPI DECLSPEC_HOTPATCH CreateThread(IN LPSECURITY_ATTRIBUTES lpThreadAttributes, IN DWORD dwStackSize, IN LPTHREAD_START_ROUTINE lpStartAddress, IN LPVOID lpParameter, IN DWORD dwCreationFlags, OUT LPDWORD lpThreadId)
DWORD MCIAVI_mciStatus(UINT wDevID, DWORD dwFlags, LPMCI_DGV_STATUS_PARMSW lpParms)
DWORD MCIAVI_ConvertTimeFormatToFrame(WINE_MCIAVI *wma, DWORD val)
DWORD MCIAVI_mciGetDevCaps(UINT wDevID, DWORD dwFlags, LPMCI_GETDEVCAPS_PARMS lpParms)
DWORD MCIAVI_mciSet(UINT wDevID, DWORD dwFlags, LPMCI_DGV_SET_PARMS lpParms)
DWORD MCIAVI_mciInfo(UINT wDevID, DWORD dwFlags, LPMCI_DGV_INFO_PARMSW lpParms)
BOOL WINAPI mciFreeCommandResource(UINT uTable)
UINT WINAPI mciLoadCommandResource(HINSTANCE hInstance, LPCWSTR lpResName, UINT uType)
BOOL WINAPI mciDriverNotify(HWND hwndCallback, UINT uDeviceID, UINT uStatus)
BOOL WINAPI mciSetDriverData(UINT uDeviceID, DWORD dwData)
DWORD WINAPI mciGetDriverData(UINT uDeviceID)
LRESULT WINAPI DefDriverProc(DWORD_PTR dwDriverIdentifier, HDRVR hDrv, UINT Msg, LPARAM lParam1, LPARAM lParam2)
MMRESULT WINAPI mmioClose(HMMIO hmmio, UINT uFlags)
HMMIO WINAPI mmioOpenW(LPWSTR szFileName, MMIOINFO *lpmmioinfo, DWORD dwOpenFlags)
GLint GLenum GLsizei GLsizei GLsizei GLint GLsizei const GLvoid * data
GLsizei GLenum const GLvoid GLsizei GLenum GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLint GLint GLint GLshort GLshort GLshort GLubyte GLubyte GLubyte GLuint GLuint GLuint GLushort GLushort GLushort GLbyte GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLfloat GLint GLint GLint GLint GLshort GLshort GLshort GLshort GLubyte GLubyte GLubyte GLubyte GLuint GLuint GLuint GLuint GLushort GLushort GLushort GLushort GLboolean const GLdouble const GLfloat const GLint const GLshort const GLbyte const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLdouble const GLfloat const GLfloat const GLint const GLint const GLshort const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort GLenum GLenum GLenum GLfloat GLenum GLint GLenum GLenum GLenum GLfloat GLenum GLenum GLint GLenum GLfloat GLenum GLint GLint GLushort GLenum GLenum GLfloat GLenum GLenum GLint GLfloat const GLubyte GLenum GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLint GLint GLsizei GLsizei GLint GLenum GLenum const GLvoid GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLenum const GLdouble GLenum GLenum const GLfloat GLenum GLenum const GLint GLsizei GLuint GLfloat GLuint GLbitfield GLfloat GLint GLuint GLboolean GLenum GLfloat GLenum GLbitfield GLenum GLfloat GLfloat GLint GLint const GLfloat GLenum GLfloat GLfloat GLint GLint GLfloat GLfloat GLint GLint const GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat const GLdouble const GLfloat const GLdouble const GLfloat GLint i
static DWORD MCIAVI_mciLoad(UINT wDevID, DWORD dwFlags, LPMCI_DGV_LOAD_PARMSW lpParms)
static DWORD MCIAVI_mciSetVideo(UINT wDevID, DWORD dwFlags, LPMCI_DGV_SETVIDEO_PARMSW lpParms)
static DWORD MCIAVI_drvClose(DWORD dwDevID)
static DWORD MCIAVI_mciPlay(UINT wDevID, DWORD dwFlags, LPMCI_PLAY_PARMS lpParms)
static DWORD MCIAVI_mciSetAudio(UINT wDevID, DWORD dwFlags, LPMCI_DGV_SETAUDIO_PARMSW lpParms)
static DWORD MCIAVI_mciPlay_async(WINE_MCIAVI *wma, DWORD dwFlags, LPMCI_PLAY_PARMS lpParams)
static DWORD MCIAVI_mciRealize(UINT wDevID, DWORD dwFlags, LPMCI_GENERIC_PARMS lpParms)
static DWORD MCIAVI_mciResume(UINT wDevID, DWORD dwFlags, LPMCI_GENERIC_PARMS lpParms)
static DWORD MCIAVI_drvOpen(LPCWSTR str, LPMCI_OPEN_DRIVER_PARMSW modp)
static DWORD MCIAVI_drvConfigure(DWORD dwDevID)
HINSTANCE MCIAVI_hInstance
DWORD MCIAVI_mciClose(UINT wDevID, DWORD dwFlags, LPMCI_GENERIC_PARMS lpParms)
static DWORD MCIAVI_mciCue(UINT wDevID, DWORD dwFlags, LPMCI_DGV_CUE_PARMS lpParms)
static DWORD MCIAVI_mciUpdate(UINT wDevID, DWORD dwFlags, LPMCI_DGV_UPDATE_PARMS lpParms)
static DWORD MCIAVI_mciSignal(UINT wDevID, DWORD dwFlags, LPMCI_DGV_SIGNAL_PARMS lpParms)
static DWORD MCIAVI_mciPause(UINT wDevID, DWORD dwFlags, LPMCI_GENERIC_PARMS lpParms)
static DWORD MCIAVI_mciBreak(UINT wDevID, DWORD dwFlags, LPMCI_BREAK_PARMS lpParms)
static DWORD MCIAVI_mciSeek(UINT wDevID, DWORD dwFlags, LPMCI_SEEK_PARMS lpParms)
static void MCIAVI_CleanUp(WINE_MCIAVI *wma)
static double currenttime_us(void)
static DWORD WINAPI MCIAVI_mciPlay_thread(LPVOID arg)
BOOL WINAPI DllMain(HINSTANCE hInstDLL, DWORD fdwReason, LPVOID fImpLoad)
static DWORD MCIAVI_mciOpen(UINT wDevID, DWORD dwFlags, LPMCI_DGV_OPEN_PARMSW lpOpenParms)
static DWORD MCIAVI_player(WINE_MCIAVI *wma, DWORD dwFlags, LPMCI_PLAY_PARMS lpParms)
static DWORD MCIAVI_mciStop(UINT, DWORD, LPMCI_GENERIC_PARMS)
static DWORD MCIAVI_mciConfigure(UINT wDevID, DWORD dwFlags, LPMCI_GENERIC_PARMS lpParms)
static DWORD MCIAVI_mciStep(UINT wDevID, DWORD dwFlags, LPMCI_DGV_STEP_PARMS lpParms)
WINE_MCIAVI * MCIAVI_mciGetOpenDev(UINT wDevID)
LRESULT CALLBACK MCIAVI_DriverProc(DWORD_PTR dwDevID, HDRVR hDriv, UINT wMsg, LPARAM dwParam1, LPARAM dwParam2)
#define MCI_MCIAVI_PLAY_FULLBY2
#define MCI_MCIAVI_PLAY_WINDOW
#define MCI_MCIAVI_PLAY_FULLSCREEN
void MCIAVI_PlayAudioBlocks(WINE_MCIAVI *wma, unsigned nHdr, LPWAVEHDR waveHdr)
DWORD MCIAVI_OpenAudio(WINE_MCIAVI *wma, unsigned *nHdr, LPWAVEHDR *pWaveHdr)
double MCIAVI_PaintFrame(WINE_MCIAVI *wma, HDC hDC)
BOOL MCIAVI_GetInfo(WINE_MCIAVI *wma)
BOOL MCIAVI_OpenVideo(WINE_MCIAVI *wma)
#define MCIERR_FLAGS_NOT_COMPATIBLE
#define MCI_OPEN_SHAREABLE
#define DRV_QUERYCONFIGURE
#define MCI_OPEN_ELEMENT_ID
#define MCIERR_FILE_NOT_FOUND
#define MCIERR_CANNOT_LOAD_DRIVER
#define MCIERR_UNRECOGNIZED_COMMAND
#define MCIERR_INVALID_DEVICE_ID
#define MCIERR_INVALID_FILE
#define MCIERR_MISSING_PARAMETER
#define MCIERR_NULL_PARAMETER_BLOCK
#define MCIERR_OUTOFRANGE
#define MCIERR_CREATEWINDOW
#define MCIERR_OUT_OF_MEMORY
#define MCI_DEVTYPE_DIGITAL_VIDEO
#define MCIERR_MUST_USE_SHAREABLE
#define MCI_SEEK_TO_START
#define MCI_NOTIFY_SUCCESSFUL
#define MCI_MODE_NOT_READY
#define MCIERR_UNSUPPORTED_FUNCTION
#define MCI_FORMAT_FRAMES
LRESULT WINAPI ICClose(HIC hic)
HMONITOR WINAPI MonitorFromWindow(HWND, DWORD)
BOOL MCIAVI_CreateWindow(WINE_MCIAVI *wma, DWORD dwFlags, LPMCI_DGV_OPEN_PARMSW lpOpenParms) DECLSPEC_HIDDEN
BOOL MCIAVI_RegisterClass(void) DECLSPEC_HIDDEN
DWORD MCIAVI_mciPut(UINT wDevID, DWORD dwFlags, LPMCI_DGV_PUT_PARMS lpParms) DECLSPEC_HIDDEN
DWORD MCIAVI_mciWindow(UINT wDevID, DWORD dwFlags, LPMCI_DGV_WINDOW_PARMSW lpParms) DECLSPEC_HIDDEN
DWORD MCIAVI_mciWhere(UINT wDevID, DWORD dwFlags, LPMCI_DGV_RECT_PARMS lpParms) DECLSPEC_HIDDEN
BOOL MCIAVI_UnregisterClass(void) DECLSPEC_HIDDEN
LPWAVEFORMATEX lpWaveFormat
struct WINE_MCIAVI::@467 mci_break
LPBITMAPINFOHEADER outbih
AVIStreamHeader ash_audio
struct MMIOPos * lpVideoIndex
DWORD dwPlayableVideoFrames
struct MMIOPos * lpAudioIndex
AVIStreamHeader ash_video
DWORD_PTR Spare[8/sizeof(DWORD_PTR)]
PCRITICAL_SECTION_DEBUG DebugInfo
DWORD WINAPI WaitForMultipleObjects(IN DWORD nCount, IN CONST HANDLE *lpHandles, IN BOOL bWaitAll, IN DWORD dwMilliseconds)
VOID WINAPI DECLSPEC_HOTPATCH Sleep(IN DWORD dwMilliseconds)
VOID WINAPI InitializeCriticalSection(OUT LPCRITICAL_SECTION lpCriticalSection)
HANDLE WINAPI DECLSPEC_HOTPATCH CreateEventW(IN LPSECURITY_ATTRIBUTES lpEventAttributes OPTIONAL, IN BOOL bManualReset, IN BOOL bInitialState, IN LPCWSTR lpName OPTIONAL)
BOOL WINAPI DECLSPEC_HOTPATCH SetEvent(IN HANDLE hEvent)
void WINAPI LeaveCriticalSection(LPCRITICAL_SECTION)
void WINAPI EnterCriticalSection(LPCRITICAL_SECTION)
void WINAPI DeleteCriticalSection(PCRITICAL_SECTION)
#define THREAD_PRIORITY_TIME_CRITICAL
_In_ PCCERT_CONTEXT _In_ DWORD dwFlags
UINT WINAPI waveOutReset(HWAVEOUT hWaveOut)
UINT WINAPI waveOutUnprepareHeader(HWAVEOUT hWaveOut, LPWAVEHDR lpWaveOutHdr, UINT uSize)
UINT WINAPI waveOutRestart(HWAVEOUT hWaveOut)
UINT WINAPI waveOutPause(HWAVEOUT hWaveOut)
UINT WINAPI waveOutClose(HWAVEOUT hWaveOut)
int WINAPI ReleaseDC(_In_opt_ HWND, _In_ HDC)
BOOL WINAPI ShowWindow(_In_ HWND, _In_ int)
HWND WINAPI GetForegroundWindow(void)
#define CreateWindowA(a, b, c, d, e, f, g, h, i, j, k)
int WINAPI MessageBoxA(_In_opt_ HWND hWnd, _In_opt_ LPCSTR lpText, _In_opt_ LPCSTR lpCaption, _In_ UINT uType)
LONG WINAPI GetWindowLongW(_In_ HWND, _In_ int)
BOOL WINAPI GetMonitorInfoA(_In_ HMONITOR, _Inout_ LPMONITORINFO)
HDC WINAPI GetDC(_In_opt_ HWND)
SHORT WINAPI GetAsyncKeyState(_In_ int)
BOOL WINAPI DestroyWindow(_In_ HWND)