文档详情

Delphi调用Xvid编解码范例(国外英文资料).doc

发布:2017-06-09约7.85千字共16页下载文档
文本预览下载声明
Delphi调用Xvid编解码范例(国外英文资料) 单元主要; 接口 使用 Windows,消息,SysUtils,变体,类,图形,控件,表单, 对话框、DSUtil、stdctrl、DSPack、DirectShow9、菜单、extctrl、lib_xvid; 类型 TVideoForm =类(TForm) FilterGraph:TFilterGraph; VideoWindow:TVideoWindow; MainMenu1:TMainMenu; 设备:TMenuItem; 过滤器:TFilter; 图片:TImage; SampleGrabber:TSampleGrabber; 快照:TButton; 回调:TCheckBox; mmo1:TMemo; lbl1:TLabel; 过程FormCreate(发送者:TObject); 程序形式closequery(发送者:TObject;var CanClose:Boolean); 过程SnapShotClick(发送者:TObject); 过程SampleGrabberBuffer(发送者:TObject;SampleTime:双; pbuf:指针;BufferLen:整数); 私人 / / XVID编码器 xvid_gbl:xvid_gbl_init_t; xvid_enc:xvid_enc_create_t; xvid_encFrame:xvid_enc_frame_t; xvid_encStats:xvid_dec_stats_t;xVid_decode:xvid_dec_create_t; xvid_decFrame:xvid_dec_frame_t; xvid_decStats:xvid_dec_stats_t; 公共 过程OnSelectDevice(发送者:TObject); 结束;常量 MaxPixelCount = 65536; 类型 / / Pf24bit真彩色位图像素数据结构体 pRGBTripleArray = ^ TRGBTripleArray; TRGBTripleArray = array[0 . .MaxPixelCount - 1)TRGBTriple; var VideoForm:TVideoForm; SysDev:TSysDevEnum; FrameBuf:array[0 . .352 * 288 * 3]字节; FrameImg:array[0 . .352 * 288 * 3]字节; FrameSequece:LongWord = 0; 防晒指数:TFileStream; xvid_Version:整数; 实现 { $ R * .dfm } 过程TVideoForm。FormCreate(发送方:TObject); var 我:整数; 设备:TMenuItem; 开始 xvid_Version:= XVID_MAKE_VERSION(1 1 0); SysDev:= TSysDevEnum.Create(CLSID_VideoInputDeviceCategory); 如果SysDev。CountFilters 0然后 i:= 0到SysDev。CountFilters - 1做 开始 设备:= TMenuItem.Create(设备); 设备。标题:= SysDev.Filters[我].FriendlyName; 设备。标签:=我; 设备。OnClick:= OnSelectDevice; Devices.Add(设备); 结束; 结束; 过程TVideoForm。OnSelectDevice(发送方:TObject); var xerr:整数; 开始 FilterGraph.ClearGraph; FilterGraph。活动:= false; (1).moniker. FilterGraph. With FilterGraph as ICaptureGraphBuilder2 do The begin RenderStream (@pin_category_preview, nil, Filter as IBaseFilter, SampleGrabber as IBaseFilter, VideoWindow as IBaseFilter); The end; The try / / XVID library initialization Xvid_gbl.version: = xvid_Version / / Version: 1.1.0 Xvid_gbl.cpu_flags: = 0 / / Word (XVID_CPU_FORCE or XVID_CPU_ASM); / / 0: automatically
显示全部
相似文档