Jörg Höhle : mciavi: MCI_OPEN @ NNNN should use an open AVIFile/Stream handle.

Alexandre Julliard julliard at winehq.org
Mon Nov 15 13:28:55 CST 2010


Module: wine
Branch: master
Commit: 3412b41924cc73e5ae7c693d90f7b474fe33544a
URL:    http://source.winehq.org/git/wine.git/?a=commit;h=3412b41924cc73e5ae7c693d90f7b474fe33544a

Author: Jörg Höhle <hoehle at users.sourceforge.net>
Date:   Wed Nov  3 20:04:32 2010 +0100

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

---

 dlls/mciavi32/mciavi.c |   12 ++++++++++--
 1 files changed, 10 insertions(+), 2 deletions(-)

diff --git a/dlls/mciavi32/mciavi.c b/dlls/mciavi32/mciavi.c
index 731083e..c78ddc0 100644
--- a/dlls/mciavi32/mciavi.c
+++ b/dlls/mciavi32/mciavi.c
@@ -26,11 +26,13 @@
  *	- synchronization between audio and video (especially for interleaved
  *	  files)
  *	- 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
  *	  first one)
  *	- 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
  *        audio is played... still should be stopped ASAP
  */
@@ -256,6 +258,12 @@ static	DWORD	MCIAVI_mciOpen(UINT wDevID, DWORD dwFlags,
             wma->lpFileName = HeapAlloc(GetProcessHeap(), 0, (strlenW(lpOpenParms->lpstrElementName) + 1) * sizeof(WCHAR));
             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,
 				   MMIO_ALLOCBUF | MMIO_DENYWRITE | MMIO_READ);
 




More information about the wine-cvs mailing list