Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2006.03.12;
Скачать: CL | DM;

Вниз

Где компонент TMediaPlayer хранит данные?   Найти похожие ветки 

 
NikNet ©   (2005-10-07 18:33) [0]

Которые он воспройзводит? Хочу  сделать FFT?


 
vrem   (2005-10-07 18:36) [1]

ах FFT, автор попробуй ещё раз вопрос задать :)


 
Дмитрий Белькевич   (2005-10-08 04:55) [2]

Афтар выпей йаду ;)


 
PAVIA ©   (2005-10-08 19:57) [3]

Данные он хранит в памяти. А если по существу используй
vfw(vide for windows)

Тут небольшая загатовка.
unit Unit1;

interface

uses
 vfw....;

type
 TForm1 = class(TForm)
   Panel1: TPanel;
   Button1: TButton;
   OpenDialog1: TOpenDialog;
   Timer1: TTimer;
   procedure load1Click(Sender: TObject);
   procedure FormCreate(Sender: TObject);
   procedure FormDestroy(Sender: TObject);
   procedure Timer1Timer(Sender: TObject);
   procedure Button1Click(Sender: TObject);
 private
   { Private declarations }
 public
   { Public declarations }
 end;

 procedure Scan(dsfmt:PBITMAPINFOHEADER;dsdata:pointer);

var
 Form1: TForm1;
avistream:Pavistream;
fmtlen:integer;
HICV:hic;
srcfmt,dstfmt:PBITMAPINFOHEADER;
streaminfo:Tavistreaminfo;
dstdata,srcdata:pointer;
Frame:integer;

l1,l2:integer;

paus:boolean;

a:array of single;
implementation

{$R *.DFM}

procedure TForm1.load1Click(Sender: TObject);
begin
if OpenDialog1.Execute then
begin
if avistream<>nil then
begin
AVIStreamRelease(avistream);
avistream:=nil;
end;
AVIStreamOpenFromFile( avistream,Pchar(OpenDialog1.Filename),
 streamtypeVIDEO, 0, OF_READ or OF_SHARE_EXCLUSIVE, 0 );

AVIStreamInfo( avistream, streaminfo, sizeof(streaminfo) );

AVIStreamFormatSize(avistream, 1, @fmtlen);
getmem(srcfmt,fmtlen);
AVIStreamReadFormat( avistream, 1, srcfmt, @fmtlen );
if HICV<>0 then
begin
ICDecompressEnd(HICV);
ICclose(HICV);Hicv:=0;
end;
HICV:=ICDecompressOpen( ICTYPE_VIDEO, streaminfo.fccHandler,srcfmt,nil );
fmtlen:=ICDecompressGetFormatSize(HICV, srcfmt);
getmem(dstfmt,fmtlen);
ICDecompressGetFormat(HICV, srcfmt, dstfmt);

getmem(dstdata,dstfmt.biSizeImage);
ICDecompressBegin(HICV, srcfmt, dstfmt);
Frame:=streaminfo.dwStart;
paus:=false;
end;
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
AVIFileInit();
end;

procedure TForm1.FormDestroy(Sender: TObject);
begin
if HICV<>0 then
begin
ICclose(HICV);Hicv:=0;
end;
if avistream<>nil then
begin
AVIStreamRelease( avistream ); avistream:=nil;
end;
AVIFileExit();
end;

procedure Scan(dsfmt:PBITMAPINFOHEADER;dsdata:pointer);
var
i,j:integer;
yarkost:single;
R,G,B:byte;
begin
i:=0;
while i<(dsfmt.biWidth*dsfmt.biHeight)*3 do
begin

// Byte(PChar(dsdata)[i+0]):=0;
Byte(PChar(dsdata)[i+1]):=0;
Byte(PChar(dsdata)[i+2]):=0;
// yarkost:=0.63*R+0.4*G+0.3*B;

 inc(i,3);
end;
end;

procedure TForm1.Timer1Timer(Sender: TObject);
var
dc:Hdc;
prect:TRect;
DDib:HDRAWDIB;
begin
if (hicv<>0) then
       begin
       if srcdata<>nil then begin FreeMem(srcdata);
       srcdata:=nil; end;
       avistreamread(avistream,Frame,1,nil,0,@l1,@l2);
       getmem(srcdata,streaminfo.dwSuggestedBufferSize);
       avistreamread(avistream,Frame,1,srcdata,streaminfo.dwSuggestedBufferSize,@l1,@l2);
       ICDecompress( HICV, 0, srcfmt, srcdata, dstfmt, dstdata);

       Scan(dstfmt,dstdata);

       dc:=getdc(Panel1.Handle);
       prect:=Panel1.ClientRect;
       DDib:=DrawDibOpen;
       DrawDibDraw(DDib,dc,pRect.left,pRect.top,pRect.right,pRect.bottom,dstfmt,dstdata,0,0,-1,-1,0);
       DrawDibClose(DDib);
       ReleaseDC(Panel1.Handle,dc);

       if (not paus) then inc(Frame);
       if  Frame=streaminfo.dwStart+streaminfo.dwLength then
       begin Frame:=streaminfo.dwStart;
       paus:=true;
       end;
       end;
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
load1Click(Self);
end;

end.



Страницы: 1 вся ветка

Текущий архив: 2006.03.12;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.034 c
2-1140544115
nirvana
2006-02-21 20:48
2006.03.12
Выбор значений с помощью ADOQuery


1-1139500353
Piter
2006-02-09 18:52
2006.03.12
Указание кодировки текста в буфере обмена


11-1121599462
KVita
2005-07-17 15:24
2006.03.12
использование TObj


1-1139242281
Дмитрий_177
2006-02-06 19:11
2006.03.12
Событие, когда в буфере есть текст


1-1139310580
Алексей Петухов
2006-02-07 14:09
2006.03.12
OLE Automation по примеру