Commit 3412b419 authored by Jörg Höhle's avatar Jörg Höhle Committed by Alexandre Julliard

mciavi: MCI_OPEN @NNNN should use an open AVIFile/Stream handle.

parent 2e540193
...@@ -26,11 +26,13 @@ ...@@ -26,11 +26,13 @@
* - synchronization between audio and video (especially for interleaved * - synchronization between audio and video (especially for interleaved
* files) * files)
* - robustness when reading file can be enhanced * - robustness when reading file can be enhanced
* - better move the AVI handling part to avifile DLL and make use of it * - reimplement the AVI handling part with avifile DLL because
* "open @1122334 type avivideo alias a" expects an AVIFile/Stream
* and MCI_DGV_SET|STATUS_SPEED maps to Rate/Scale
* - some files appear to have more than one audio stream (we only play the * - some files appear to have more than one audio stream (we only play the
* first one) * first one)
* - some files contain an index of audio/video frame. Better use it, * - some files contain an index of audio/video frame. Better use it,
* instead of rebuilding it * instead of rebuilding it (AVIFile does that already)
* - stopping while playing a file with sound blocks until all buffered * - stopping while playing a file with sound blocks until all buffered
* audio is played... still should be stopped ASAP * audio is played... still should be stopped ASAP
*/ */
...@@ -256,6 +258,12 @@ static DWORD MCIAVI_mciOpen(UINT wDevID, DWORD dwFlags, ...@@ -256,6 +258,12 @@ static DWORD MCIAVI_mciOpen(UINT wDevID, DWORD dwFlags,
wma->lpFileName = HeapAlloc(GetProcessHeap(), 0, (strlenW(lpOpenParms->lpstrElementName) + 1) * sizeof(WCHAR)); wma->lpFileName = HeapAlloc(GetProcessHeap(), 0, (strlenW(lpOpenParms->lpstrElementName) + 1) * sizeof(WCHAR));
strcpyW(wma->lpFileName, lpOpenParms->lpstrElementName); strcpyW(wma->lpFileName, lpOpenParms->lpstrElementName);
if (lpOpenParms->lpstrElementName[0] == '@') {
/* The file name @11223344 encodes an AVIFile handle in decimal notation
* in Win3.1 and w2k/NT, but this feature is absent in win95 (KB140750).
* wma->hFile = LongToHandle(strtolW(lpOpenParms->lpstrElementName+1, NULL, 10)); */
FIXME("Using AVIFile/Stream %s NIY\n", debugstr_w(lpOpenParms->lpstrElementName));
}
wma->hFile = mmioOpenW(lpOpenParms->lpstrElementName, NULL, wma->hFile = mmioOpenW(lpOpenParms->lpstrElementName, NULL,
MMIO_ALLOCBUF | MMIO_DENYWRITE | MMIO_READ); MMIO_ALLOCBUF | MMIO_DENYWRITE | MMIO_READ);
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment