Unit AviPlay

*****************************************************} { } { TDCAVIPlay component } { Copyright (c) 1997,1998 S.Kurinny & S.Kostinsky } { } {

Classes

TAudioPlay -
TDCAVIPlay -

Functions

AVIFileExit -
AVIFileGetStream -
AVIFileInfo -
AVIFileInit -
AVIFileOpen -
AVIFileRelease -
AviRegister - ---------------------------------------------------------------------
AVIStreamBeginStreaming -
AVIStreamEndStreaming -
AVIStreamGetFrame -
AVIStreamGetFrameClose -
AVIStreamGetFrameOpen -
AVIStreamInfo -
AVIStreamLength -
AVIStreamOpenFromFile -
AVIStreamRead -
AVIStreamReadFormat -
AVIStreamRelease -
AVIStreamSampleToTime -
AVIStreamStart -
AVIStreamTimeToSample -
DrawDIBClose -
DrawDibDraw -
DrawDIBOpen -
GetTransparentColor - ---------------------------------------------------------------------
TransparentBitBlt - -----------------------------------------------------------------------

Types

PAVIFile
PAVIFileInfo
PAVIStream
PAVIStreamInfo
TAVIFileInfo
TAVIStream
TAVIStreamInfo

Constants

AVISTREAMREAD_CONVENIENT
CAheadBuffers
cBufSize
DDF_HALFTONE
streamtypeAUDIO
streamtypeVIDEO
TIME_ONESHOT
TIME_PERIODIC
WM_NEXTFRAME

Variables


Functions


procedure AVIFileExit;


function AVIFileGetStream(avifile : pointer; avistream : PAVIStream; streamtype : longint; lParam : longint) : integer;


function AVIFileInfo(pfile : PAVIFile; pfi : PAVIFileInfo; lSize : longint) : integer;


procedure AVIFileInit;


function AVIFileOpen(avifile : pointer; filename : pchar; mode : integer; CLSID : pointer) : integer;


function AVIFileRelease(avifile : pointer) : longint;


procedure AviRegister;

---------------------------------------------------------------------

function AVIStreamBeginStreaming(pavi : PAVIStream; lStart, lEnd, lRate : longint) : integer;


function AVIStreamEndStreaming(pavi : PAVIStream) : integer;


function AVIStreamGetFrame(getframe : pointer; position : longint) : pointer;


procedure AVIStreamGetFrameClose(pget : pointer);


function AVIStreamGetFrameOpen(avistream : PAVIStream; bitmapwanted : pointer) : pointer;


function AVIStreamInfo(pstream : PAVIStream; psi : PAVISTREAMINFO; lsize : longint) : integer;


function AVIStreamLength(pavi: PAVIStream) : longint;


function AVIStreamOpenFromFile(avistream : PAVIStream; filename : pchar; streamtype : word; lParam : longint; mode : longint; clsid : pointer) : integer;


function AVIStreamRead(pavi : PAVIStream; lStart, lSamples : longint; lpBuffer : pointer; cbBuffer : longint; plBytes, plSamples : pointer) : integer;


function AVIStreamReadFormat(pavi : PAVIStream; lPos : longint; lpFormat : pointer; lpcbFormat : pointer) : integer;


procedure AVIStreamRelease(avistream : PAVIStream);


function AVIStreamSampleToTime(pavi : PAVIStream; lSample : longint) : longint;


function AVIStreamStart(pavi : PAVIStream) : longint;


function AVIStreamTimeToSample(pavi : PAVIStream; Time : longint) : longint;


procedure DrawDIBClose (h : THandle);


procedure DrawDibDraw (hdib, dc : THandle; xDst, yDst, dxDst, dyDst : integer; lpbi, lpBits : pointer; xSrc, ySrc, dxSrc, dySrc, wFlags : integer);


function DrawDIBOpen : THandle;


Function GetTransparentColor(dc: THandle; arect: TRect): longint;

---------------------------------------------------------------------

Procedure TransparentBitBlt(sourcedc, destdc: THandle; arect: TRect; atranscolor: longint; aoriginX,aoriginY: Integer);

-----------------------------------------------------------------------

Types


PAVIFile = pointer

PAVIFileInfo = ^TAVIFileInfo
descriptive string for file type?
PAVIStream = ^TAVIStream

PAVIStreamInfo = ^TAVIStreamInfo

TAVIFileInfo = record
dwMaxBytesPerSec : longint;
dwFlags : longint;
dwCaps : longint;
dwStreams : longint;
dwSuggestedBufferSize : longint;
dwWidth : longint;
dwHeight : longint;
dwScale : longint;
dwRate : longint;
dwLength : longint;
dwEditCount : longint;
szFileType : array[0..63] of char;
end;

TAVIStream = record
fccType : longint;
fccHandler : longint;
dwFlags : longint;
dwCaps : longint;
wPriority : word;
wLanguage : word;
dwScale : longint;
dwRate : longint;
dwStart : longint;
dwLength : longint;
dwInitialFrames : longint;
dwSuggestedBufferSize : longint;
dwQuality : longint;
dwSampleSize : longint;
rcFrame : TRect;
dwEditCount : longint;
dwFormatChangeCount : longint;
Name : array [0..64] of char;
end;

TAVIStreamInfo = record
fccType : longint;
fccHandler : longint;
dwFlags : longint;
dwCaps : longint;
wPriority : word;
wLanguage : word;
dwScale : longint;
dwRate : longint;
dwStart : longint;
dwLength : longint;
dwInitialFrames : longint;
dwSuggestedBufferSize : longint;
dwQuality : longint;
dwSampleSize : longint;
rcFrame : TRect;
dwEditCount : longint;
dwFormatChangeCount : longint;
szName : array[0..63] of char;
end;

Constants

AVISTREAMREAD_CONVENIENT = -1

program for continuous periodic event

CAheadBuffers = 8

audio buffer size

cBufSize = 2048

DDF_HALFTONE = $1000

streamtypeAUDIO = $73647561

streamtypeVIDEO = $73646976

TIME_ONESHOT = 0

TIME_PERIODIC = 1

program timer for single event

WM_NEXTFRAME = WM_USER + 1


Variables