- Timestamp:
- Jan 20, 2001, 5:57:35 PM (25 years ago)
- Location:
- trunk/src/avifil32
- Files:
-
- 1 added
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/avifil32/avifile.cpp
r4632 r4984 1 /* $Id: avifile.cpp,v 1.7 2000-11-19 13:12:09 sandervl Exp $ */2 1 /* 3 2 * Copyright 1999 Marcus Meissner 4 3 */ 5 #include <string.h> 6 #include <stdio.h> 7 #include <assert.h> 8 4 #ifdef __WIN32OS2__ 9 5 #include <os2win.h> 10 6 #define CINTERFACE 11 7 #define ICOM_CINTERFACE 1 12 8 #define INITGUID 9 #endif 10 #include <string.h> 11 #include <stdio.h> 12 #include <assert.h> 13 13 14 14 #include "winbase.h" 15 #include "vfw.h" 16 #include "wine/winestring.h" 17 ////#include "driver.h" 15 #include "winnls.h" 18 16 #include "mmsystem.h" 19 17 #include "winerror.h" 20 #include " debugstr.h"18 #include "vfw.h" 21 19 #include "debugtools.h" 22 20 23 #include <misc.h> 24 25 DECLARE_DEBUG_CHANNEL(avifile) 26 //DECLARE_DEBUG_CHANNEL(msvideo) 27 //DECLARE_DEBUG_CHANNEL(relay) 21 DEFAULT_DEBUG_CHANNEL(avifile); 28 22 29 23 static HRESULT WINAPI IAVIFile_fnQueryInterface(IAVIFile* iface,REFIID refiid,LPVOID *obj); … … 111 105 } IAVIStreamImpl; 112 106 107 /*********************************************************************** 108 * AVIFileInit 109 */ 113 110 void WINAPI 114 111 AVIFileInit(void) { … … 125 122 static HRESULT WINAPI IAVIFile_fnQueryInterface(IAVIFile* iface,REFIID refiid,LPVOID *obj) { 126 123 ICOM_THIS(IAVIFileImpl,iface); 127 char xrefiid[50]; 128 129 WINE_StringFromCLSID((LPCLSID)refiid,xrefiid); 130 TRACE_(relay)("(%p)->QueryInterface(%s,%p)\n",This,xrefiid,obj); 124 125 TRACE("(%p)->QueryInterface(%s,%p)\n",This,debugstr_guid(refiid),obj); 131 126 if ( !memcmp(&IID_IUnknown,refiid,sizeof(IID_IUnknown)) || 132 127 !memcmp(&IID_IAVIFile,refiid,sizeof(IID_IAVIFile)) … … 141 136 ICOM_THIS(IAVIFileImpl,iface); 142 137 143 FIXME _(relay)("(%p)->AddRef()\n",iface);138 FIXME("(%p)->AddRef()\n",iface); 144 139 return ++(This->ref); 145 140 } … … 148 143 ICOM_THIS(IAVIFileImpl,iface); 149 144 150 FIXME _(relay)("(%p)->Release()\n",iface);145 FIXME("(%p)->Release()\n",iface); 151 146 if (!--(This->ref)) { 152 147 HeapFree(GetProcessHeap(),0,iface); … … 216 211 } 217 212 213 /*********************************************************************** 214 * AVIFileOpenA 215 */ 218 216 HRESULT WINAPI AVIFileOpenA( 219 217 PAVIFILE * ppfile,LPCSTR szFile,UINT uMode,LPCLSID lpHandler 220 218 ) { 221 char buf[80];222 219 IAVIFileImpl *iavi; 223 220 224 225 if (HIWORD(lpHandler)) 226 WINE_StringFromCLSID(lpHandler,buf); 227 else 228 sprintf(buf,"<clsid-0x%04lx>",(DWORD)lpHandler); 229 230 FIXME("(%p,%s,0x%08lx,%s),stub!\n",ppfile,szFile,(DWORD)uMode,buf); 221 FIXME("(%p,%s,0x%08lx,%s),stub!\n",ppfile,szFile,(DWORD)uMode,debugstr_guid(lpHandler)); 231 222 iavi = (IAVIFileImpl*)HeapAlloc(GetProcessHeap(),HEAP_ZERO_MEMORY,sizeof(IAVIFileImpl)); 232 223 iavi->ref = 1; 233 224 ICOM_VTBL(iavi) = &iavift; 234 *ppfile = (PAVIFILE)iavi; 225 #ifdef __WIN32OS2__ 226 *ppfile = (PAVIFILE)iavi; 227 #else 228 *ppfile = (LPVOID)iavi; 229 #endif 235 230 return S_OK; 236 231 } … … 238 233 static HRESULT WINAPI IAVIStream_fnQueryInterface(IAVIStream*iface,REFIID refiid,LPVOID *obj) { 239 234 ICOM_THIS(IAVIStreamImpl,iface); 240 char xrefiid[50]; 241 242 WINE_StringFromCLSID((LPCLSID)refiid,xrefiid); 243 TRACE_(relay)("(%p)->QueryInterface(%s,%p)\n",This,xrefiid,obj); 235 236 TRACE("(%p)->QueryInterface(%s,%p)\n",This,debugstr_guid(refiid),obj); 244 237 if ( !memcmp(&IID_IUnknown,refiid,sizeof(IID_IUnknown)) || 245 238 !memcmp(&IID_IAVIStream,refiid,sizeof(IID_IAVIStream)) … … 255 248 ICOM_THIS(IAVIStreamImpl,iface); 256 249 257 FIXME _(relay)("(%p)->AddRef()\n",iface);250 FIXME("(%p)->AddRef()\n",iface); 258 251 return ++(This->ref); 259 252 } … … 262 255 ICOM_THIS(IAVIStreamImpl,iface); 263 256 264 FIXME _(relay)("(%p)->Release()\n",iface);257 FIXME("(%p)->Release()\n",iface); 265 258 if (!--(This->ref)) { 266 259 HeapFree(GetProcessHeap(),0,This); … … 290 283 } 291 284 292 /*********************************************************************** ******293 * [IAVIStream::SetFormat]285 /*********************************************************************** 286 * IAVIStream::SetFormat 294 287 */ 295 288 static HRESULT WINAPI IAVIStream_fnSetFormat(IAVIStream*iface,LONG pos,LPVOID format,LONG formatsize) { … … 339 332 340 333 ICCompress( 341 as->hic,flags, 342 (LPBITMAPINFOHEADER)as->lpCompressFormat, 343 as->compbuffer, 344 (LPBITMAPINFOHEADER)as->lpInputFormat, 345 buffer, 346 &ckid,&xflags, 347 as->curframe,0xffffff/*framesize*/,as->aco.dwQuality, 348 (LPBITMAPINFOHEADER)as->lpPrevFormat,as->lpPrev 334 as->hic,flags, 335 #ifdef __WIN32OS2__ 336 (LPBITMAPINFOHEADER) 337 #endif 338 as->lpCompressFormat, 339 as->compbuffer, 340 #ifdef __WIN32OS2__ 341 (LPBITMAPINFOHEADER) 342 #endif 343 as->lpInputFormat,buffer, 344 &ckid,&xflags, 345 as->curframe,0xffffff/*framesize*/,as->aco.dwQuality, 346 #ifdef __WIN32OS2__ 347 (LPBITMAPINFOHEADER)as->lpPrevFormat,as->lpPrev 348 #else 349 as->lpPrevFormat,as->lpPrev 350 #endif 349 351 ); 350 352 ICDecompress( 351 as->hic, 352 flags, /* FIXME: check */ 353 (LPBITMAPINFOHEADER)as->lpCompressFormat, 354 as->compbuffer, 355 (LPBITMAPINFOHEADER)as->decompformat, 356 as->decompbuffer 353 as->hic, 354 flags, /* FIXME: check */ 355 #ifdef __WIN32OS2__ 356 (LPBITMAPINFOHEADER) 357 #endif 358 as->lpCompressFormat, 359 as->compbuffer, 360 #ifdef __WIN32OS2__ 361 (LPBITMAPINFOHEADER) 362 #endif 363 as->decompformat, 364 as->decompbuffer 357 365 ); 358 366 /* We now have a prev format for the next compress ... */ … … 381 389 } 382 390 391 /*********************************************************************** 392 * AVIFileCreateStreamA 393 */ 383 394 HRESULT WINAPI AVIFileCreateStreamA(PAVIFILE iface,PAVISTREAM *ppavi,AVISTREAMINFOA * psi) { 384 395 AVISTREAMINFOW psiw; … … 386 397 /* Only the szName at the end is different */ 387 398 memcpy(&psiw,psi,sizeof(*psi)-sizeof(psi->szName)); 388 lstrcpynAtoW(psiw.szName,psi->szName,sizeof(psi->szName)); 399 MultiByteToWideChar( CP_ACP, 0, psi->szName, -1, 400 psiw.szName, sizeof(psiw.szName) / sizeof(WCHAR) ); 389 401 return IAVIFile_CreateStream(iface,ppavi,&psiw); 390 402 } 391 403 404 /*********************************************************************** 405 * AVIFileCreateStreamW 406 */ 392 407 HRESULT WINAPI AVIFileCreateStreamW(IAVIFile*iface,PAVISTREAM*avis,AVISTREAMINFOW*asi) { 393 408 return IAVIFile_CreateStream(iface,avis,asi); … … 395 410 396 411 412 /*********************************************************************** 413 * AVIFileGetStream 414 */ 397 415 HRESULT WINAPI AVIFileGetStream(IAVIFile*iface,PAVISTREAM*avis,DWORD fccType,LONG lParam) { 398 416 return IAVIFile_GetStream(iface,avis,fccType,lParam); 399 417 } 400 418 419 /*********************************************************************** 420 * AVIFileInfoA 421 */ 401 422 HRESULT WINAPI AVIFileInfoA(PAVIFILE iface,LPAVIFILEINFOA afi,LONG size) { 402 423 AVIFILEINFOW afiw; … … 407 428 hres = IAVIFile_Info(iface,&afiw,sizeof(afiw)); 408 429 memcpy(afi,&afiw,sizeof(*afi)-sizeof(afi->szFileType)); 409 lstrcpynWtoA(afi->szFileType,afiw.szFileType,sizeof(afi->szFileType)); 430 WideCharToMultiByte( CP_ACP, 0, afiw.szFileType, -1, 431 afi->szFileType, sizeof(afi->szFileType), NULL, NULL ); 432 afi->szFileType[sizeof(afi->szFileType)-1] = 0; 410 433 return hres; 411 434 } 412 435 436 /*********************************************************************** 437 * AVIStreamInfoW 438 */ 413 439 HRESULT WINAPI AVIStreamInfoW(PAVISTREAM iface,AVISTREAMINFOW *asi,LONG 414 440 size) { … … 416 442 } 417 443 444 /*********************************************************************** 445 * AVIStreamInfoA 446 */ 418 447 HRESULT WINAPI AVIStreamInfoA(PAVISTREAM iface,AVISTREAMINFOA *asi,LONG 419 448 size) { … … 425 454 hres = IAVIFile_Info(iface,&asiw,sizeof(asiw)); 426 455 memcpy(asi,&asiw,sizeof(asiw)-sizeof(asiw.szName)); 427 lstrcpynWtoA(asi->szName,asiw.szName,sizeof(asi->szName)); 456 WideCharToMultiByte( CP_ACP, 0, asiw.szName, -1, 457 asi->szName, sizeof(asi->szName), NULL, NULL ); 458 asi->szName[sizeof(asi->szName)-1] = 0; 428 459 return hres; 429 460 } 430 461 462 /*********************************************************************** 463 * AVIFileInfoW 464 */ 431 465 HRESULT WINAPI AVIFileInfoW(PAVIFILE iface,LPAVIFILEINFOW afi,LONG size) { 432 466 return IAVIFile_Info(iface,afi,size); 433 467 } 434 468 469 /*********************************************************************** 470 * AVIMakeCompressedStream 471 */ 435 472 HRESULT WINAPI AVIMakeCompressedStream(PAVISTREAM *ppsCompressed,PAVISTREAM ppsSource,AVICOMPRESSOPTIONS *aco,CLSID *pclsidHandler) { 436 473 char fcc[5]; … … 469 506 icf.lKeyRate = aco->dwKeyFrameEvery; 470 507 471 icf.GetData = (LONG (_stdcall *)(LPARAM,LONG,LPVOID,LONG)) 0xdead4242; 472 icf.PutData = (LONG (_stdcall *)(LPARAM,LONG,LPVOID,LONG)) 0xdead4243; 508 #ifdef __WIN32OS2__ 509 *(DWORD *)&icf.GetData = 0xdead4242; 510 *(DWORD *)&icf.PutData = 0xdead4243; 511 #else 512 icf.GetData = (void *)0xdead4242; 513 icf.PutData = (void *)0xdead4243; 514 #endif 473 515 ICSendMessage(as->hic,ICM_COMPRESS_FRAMES_INFO,(LPARAM)&icf,sizeof(icf)); 474 516 } … … 476 518 } 477 519 520 /*********************************************************************** 521 * AVIStreamSetFormat 522 */ 478 523 HRESULT WINAPI AVIStreamSetFormat(PAVISTREAM iface,LONG pos,LPVOID format,LONG formatsize) { 479 524 return IAVIStream_SetFormat(iface,pos,format,formatsize); 480 525 } 481 526 527 /*********************************************************************** 528 * AVIStreamReadFormat 529 */ 482 530 HRESULT WINAPI AVIStreamReadFormat(PAVISTREAM iface,LONG pos,LPVOID format,LONG *formatsize) { 483 531 return IAVIStream_ReadFormat(iface,pos,format,formatsize); 484 532 } 485 533 534 /*********************************************************************** 535 * AVIStreamWrite( 536 */ 486 537 HRESULT WINAPI AVIStreamWrite(PAVISTREAM iface,LONG start,LONG samples,LPVOID buffer,LONG buffersize,DWORD flags,LONG *sampwritten,LONG *byteswritten) { 487 538 return IAVIStream_Write(iface,start,samples,buffer,buffersize,flags,sampwritten,byteswritten); 488 539 } 489 540 541 /*********************************************************************** 542 * AVIStreamRead 543 */ 490 544 HRESULT WINAPI AVIStreamRead(PAVISTREAM iface,LONG start,LONG samples,LPVOID buffer,LONG buffersize,LONG *bytesread,LONG *samplesread) { 491 545 return IAVIStream_Read(iface,start,samples,buffer,buffersize,bytesread,samplesread); 492 546 } 493 547 548 /*********************************************************************** 549 * AVIStreamWriteData 550 */ 494 551 HRESULT WINAPI AVIStreamWriteData(PAVISTREAM iface,DWORD fcc,LPVOID lp,LONG size) { 495 552 return IAVIStream_WriteData(iface,fcc,lp,size); 496 553 } 497 554 555 /*********************************************************************** 556 * AVIStreamReadData 557 */ 498 558 HRESULT WINAPI AVIStreamReadData(PAVISTREAM iface,DWORD fcc,LPVOID lp,LONG *lpread) { 499 559 return IAVIStream_ReadData(iface,fcc,lp,lpread); 500 560 } 501 561 562 /*********************************************************************** 563 * AVIStreamStart 564 */ 502 565 LONG WINAPI AVIStreamStart(PAVISTREAM iface) { 503 566 AVISTREAMINFOW si; … … 507 570 } 508 571 572 /*********************************************************************** 573 * AVIStreamLength 574 */ 509 575 LONG WINAPI AVIStreamLength(PAVISTREAM iface) { 510 576 AVISTREAMINFOW si; … … 517 583 } 518 584 585 /*********************************************************************** 586 * AVIStreamRelease 587 */ 519 588 ULONG WINAPI AVIStreamRelease(PAVISTREAM iface) { 520 589 return IAVIStream_Release(iface); 521 590 } 522 591 592 /*********************************************************************** 593 * AVIStreamGetFrameOpen 594 */ 523 595 PGETFRAME WINAPI AVIStreamGetFrameOpen(PAVISTREAM iface,LPBITMAPINFOHEADER bmi) { 524 FIXME _(msvideo)("(%p)->(%p),stub!\n",iface,bmi);596 FIXME("(%p)->(%p),stub!\n",iface,bmi); 525 597 return NULL; 526 598 } 527 599 600 /*********************************************************************** 601 * AVIStreamGetFrame 602 */ 528 603 LPVOID WINAPI AVIStreamGetFrame(PGETFRAME pg,LONG pos) { 529 604 return IGetFrame_GetFrame(pg,pos); 530 605 } 531 606 607 /*********************************************************************** 608 * AVIStreamGetFrameClose 609 */ 532 610 HRESULT WINAPI AVIStreamGetFrameClose(PGETFRAME pg) { 533 611 if (pg) IGetFrame_Release(pg); … … 535 613 } 536 614 615 /*********************************************************************** 616 * AVIFileRelease 617 */ 537 618 ULONG WINAPI AVIFileRelease(PAVIFILE iface) { 538 619 return IAVIFile_Release(iface); 539 620 } 540 621 622 /*********************************************************************** 623 * AVIFileExit 624 */ 541 625 void WINAPI AVIFileExit(void) { 542 626 FIXME("(), stub.\n"); 543 627 } 628 629 #ifdef __WIN32OS2__ 630 LONG WINAPI AVIStreamTimeToSample (PAVISTREAM pavi, LONG lTime) 631 { 632 return 0; 633 } 634 635 LONG WINAPI AVIStreamSampleToTime (PAVISTREAM pavi, LONG lSample) 636 { 637 return 0; 638 } 639 #endif
Note:
See TracChangeset
for help on using the changeset viewer.