- 博客(82)
- 资源 (3)
- 收藏
- 关注
原创 DirectShow技术介绍(长篇)-9
3.8. 插件发布者(Plug-inDistributors) Plug-in Distributors(PIDs)是扩展filter graph manager的一种方法。一个PID是filter graph manager在运行时聚合的一个COM对象。应用程序通过filter graph manager来进入PID。 当filter graphmanager被要求查询一个它不支持的接口时,它会搜索注册表项: HKEY_CLASSES_ROOT/Interface/
2011-01-10 10:21:00
1087
原创 DirectShow技术介绍(长篇)-8
3.7. Graph动态重建(DynamicGraph Building) 如果你需要修改一个已经存在的filter graph,你可以停止,修改后再重新启动它。这通常是一种最佳的解决方法。但是,在某此情况下,你可能需要在一个graph处于运行状态时来修改它,比如: *应用程序在进行视频回放时需要插入一个(视频滤镜filter)Video effect filter; *sourcefilter在播放的过程中改变了媒体格式,此时可能需要接入新的解码filter; *应
2011-01-10 10:20:00
1322
原创 DirectShow技术介绍(长篇)-7
<br /><br />3.6. DirectShow中的时间和时钟<br /> 这一节主要概述DirectShow体系中时间和时钟。<br />3.6.1. 参考时钟<br /> Filter Graph Manager的一个功能,能够以同一个时钟来同步所有在graph中的filter,称作参考时钟(reference clock)。<br /> 任何暴露了IReferenceClock接口的对象都能够作为一个参考时钟来使用。参考时钟可以由一个DirectShow filter来
2011-01-10 10:17:00
1419
原创 DirectShow技术介绍(长篇)-6
<br /><br />3.5 DirectShow中的事件通告<br /> 这一节主要描述在directshowfilter graph中事件是怎样发生的,以及应用程序如何接收事件通告并响应它们。<br />3.5.1 概述<br /> 一个filter通过发送一个事件通来通知filtergraph manager某个事件已经发生。这些事件可以是一些预知的事件比如流结束事件,也可以是一些异常如render流时失败。一部分事件由filter graph manager自己处理,另一部
2011-01-10 10:16:00
1081
原创 DirectShow技术介绍(长篇)-5
<br /><br />3.4. FilterGraph中的数据流<br /> 这一节主要描述媒体数据是如何在filter graph中流动的。如果你只是为了编写DirectShow应用程序,你不需要知道这些细节,当然,知道这些细节对于编写directshow应用程序仍然是有帮助的。但是如果你要编写directshow filter,那么你就必须掌握这部分知识了。<br />3.4.1. DirectShow数据流概述<br /> 在这一部分先粗略地描述一下DirectShow中数据流是
2011-01-10 10:12:00
1187
原创 DirectShow技术介绍(长篇)-4
<br /><br />3.3. 构建FilterGraph<br />3.3.1. 用于构建Graph的组件<br /> DirectShow提供了一系列用于构建filter graph的组件,包括:<br /> *Filter GraphManager。这个对象用于控制filter graph,支持IGraphBuilder、IMediaControl和IMediaEventEx等许多接口。所有的directshow应用程序都需要在某些地方用到这个对象,虽然在有些情况下,是其它的
2011-01-10 10:11:00
1061
原创 DirectShow技术介绍(长篇)-3
<br /><br />3.2.5. 硬件如何参与FilterGraph<br /> 这一节描述了DirectShow如何与音频和视频硬件交互。<br /> <br /> 外壳filter(WrapperFilter)<br /> 所有的DirectShowfilter都是用户模式的软件组件。为了使象视频采集卡这样的内核模式的硬件驱动加入到filter graph中,必须使其象用户模式的filter那样。DirectShow提供外壳filter来完成这个功能,这类f
2011-01-10 10:09:00
1493
原创 DirectShow技术介绍(长篇)-2
<br /><br />2. 开始DirectShow旅程<br /> 这个章节的内容主要是编写DirectShow应用所需的一些基本概念,可以把它当作一个高级介绍,理解这些内容只需具备一般的编程和有关多媒体的知识。<br />2.1. 设置DirectShow开发的编译环境<br /> 这节内容描述了如何来编译DirectShow应用。你可以使用命令行形式来编译一个工程,也可以在Microsoft Visual Studio集成环境下(包含VC++)实现。<br /> 头文件:<b
2011-01-10 10:06:00
1451
原创 DirectShow技术介绍(长篇)-1
<br /><br />DirectShow 用于控制多媒体数据流;它可以在运行时允许用户播放数字电影和对不同格式的声音进行解码,包括MPEG-1。这种播放性能可以让音视频卡支持Microsoft DirectX?的API,DirectShow 同样可以播放AVI电影文件和Apple QuickTime (.mov)格式文件。<br /> <br />DirectShow 被广泛地应用于Windows 95,Windows 98, 和Windows 2000应用程序。DirectShow 直接和驱动程序
2011-01-10 10:05:00
3112
原创 千军易得一将难求!
<br />看了《雪豹》,和很多人感触一样,如标题所示。<br /> <br />没有好的将领,团队没有方向或者方向不对,伤亡和牺牲一定会大!领头人太重要了,呵呵<br />这些感触最浓烈的时候,往往是在困难发生的时候、危机的时候。
2010-11-26 18:14:00
906
原创 Wince编译流程
在WinCE系统中,当我们完成了相关的开发和系统定制工作以后,会编译WinCE系统,最后生成NK.bin和NK.nb0。我现在用WinCE6.0在自己的PC上面编译一次用时19分16秒(有一天无聊,就测了一下)。下面介绍一下WinCE系统的编译过程,大致分为4个阶段:编译阶段(Compile phase),系统产生阶段(Sysgen phase),文件拷贝阶段(Release copy phase
2010-01-28 10:52:00
1527
4
原创 可编程逻辑器件基础
可编程逻辑器件基础1.1.1 可编程逻辑器件概述可编程逻辑器件(Programmable Logic Device,PLD)起源于20世纪70年代,是在专用集成电路(ASIC)的基础上发展起来的一种新型逻辑器件,是当今数字系统设计的主要硬件平台,其主要特点就是完全由用户通过软件进行配置和编程,从而完成某种特定的功能,且可以反复擦写。在修改和升级PLD时,不需额外地改变PCB电路板,只是在计
2009-12-11 14:10:00
8109
原创 ASIC开发设计流程
ASIC开发设计流程1. 使用语言:VHDL/verilog HDL2. 各阶段典型软件介绍:a) 输入工具: Summit Summit 公司b) 仿真工具: VCS, VSS Synopsys 公司 c) 综合器: DesignCompile, BC Compile Synopsys 公司 d) 布局布线工具: Dracula, Diva Cadence 公司e) 静态时序分析: Prime
2009-12-11 14:05:00
2880
转载 怎样看电路原理图
电器修理、电路设计都是要通过分析电路原理图,了解电器的功能和工作原理,才能得心应手开展工作的。作为从事此项工作的同仁,首先要有过硬的基本功,要能对有技术参数的电路原理图进行总体了解,能进行划分功能模块,找出信号流向,确定元件作用。若不知电路的作用,可先分析电路的输入和输出信号之间的关系。如信号变化规律及它们之间的关系、相位问题是同相位,或反相位。电路和组成形式,是放大电路,振荡电路,脉冲电
2009-08-05 10:41:00
2282
转载 PCB设计方法与技巧〈一〉
PCB设计方法与技巧〈一〉PCB设计方法与技巧〈一〉(提示:如果图片显示不完整,请保存下来再看就行了。) 1、如何选择pcb板材?选择pcb板材必须在满足设计需求和可量产性及成本中间取得平衡点。设计需求包含电气和机构这两部分。通常在设计非常高速的pcb板子(大于ghz的频率)时这材质问题会比较重要。例如,现在常用的fr-4材质,在几个ghz的频率时的介质损(dielectric loss)会对
2009-07-29 14:31:00
1523
原创 BOM表对于产品的重要性
现在国内许多设计公司都不能建立一个合理的BOM表,在转入生产时产生了不少不必要的麻烦,所以我写此文章,让大家明白BOM的建立目的和方法,及在一个产品生命周期中所扮演的角色。 BOM全称Bill Of Material,即物料清单的意思。顾名思义,一个产品的BOM说明了这个产品总共需要多少零配件来组装。根据BOM,才能去采购物料,才能安排生产的flow chart。 BOM的
2009-06-15 13:21:00
4962
转载 Google Android操作系统内核编译图文教程
Google Android操作系统内核编译图文教程 和标准的Linux开发流程一样,Android平台开发的一个很重要的基础工作就是对其内核的编译和移植。本文结合Android的开发文档以及本人的实践经验,简单介绍了Android内核的编译过程,希望有助于对内核移植感兴趣的开发人员。 Android作为Google公司推出的一款手机开发平台,其本身是基于linux内核的
2009-04-28 08:59:00
1536
转载 extern "C"的用法解析
extern "C"的用法解析 C++中extern “C”含义深层探索 1.引言 C++语言的创建初衷是“a better C”,但是这并不意味着C++中类似C语言的全局变量和函数所采用的编译和连接方式与C语言完全相同。作为一种欲与C兼容的语言,C++保留了一部分过程式语言的特点(被世人称为“不彻底地
2009-02-19 16:33:00
1107
转载 libavformat/libavcodec学习
为什么需要两个库文件 libavformat 和 libavcodec :许多视频文件格式(AVI就是一个最好的例子)实际上并没有明确指出应该使用哪种编码来解析音频和视频数据;它们只是定义了音频流和视频流(或者,有可能是多个音频视频流)如何被绑定在一个文件里面。这就是为什么有时候,当你打开了一个AVI文件时,你只能听到声音,却不能看到图象--因为你的系统没有安装合适的视频解码器。所以, libav
2009-02-18 11:56:00
1877
原创 VCC、VDD和VSS三种标号的区别
VCC、VDD和VSS三种标号的区别在电子电路中,常可以看到VCC、VDD和VSS三种不同的符号,它们有什么区别呢? 一、解释 VCC:C=circuit 表示电路的意思, 即接入电路的电压; VDD:D=device 表示器件的意思, 即器件内部的工作电压; VSS:S=series 表示公共连接的意思,通常指电路公共接地端电压。 二、说明 1、对
2009-02-16 20:29:00
1326
原创 VLC精简
精简 VLC默认包含了大量的功能,超过2百个插件;Windows下安装包大小接近10MB,安装之后超过35MB。有时候如果我们只需要部分的功能,应该如何精简它呢? 例如在SimpleTV中,如果仅保留了播放和录制格式为MPEG2,以UDP组播或者http方式传输的视频流的功能,这样整个VLC打包后只有1.2MB,解压后也仅有2M多一点。 精简VLC的第一步是重新配置编译选
2009-02-05 20:49:00
6877
2
原创 VLC 0.9.2 正式发布 && VLC播放Rm Rmvb的插件
期待已久的VLC 0.9系列终于正式发布了,跳过了0.9.0和0.9.1,直接来到了0.9.2…… 0.9.2和0.8.6i 相比有了大量的改进,从界面到核心框架,有空要尽快搭一个新的编译环境出来, 不过目前的Release似乎还是有点仓促,简体中文的界面很多都没有翻译,程序似乎还不太稳定,测试中偶有崩溃。 新的VLC加入了RealVideo的demux和code
2009-02-05 20:47:00
3256
原创 VLC Linux平台编译
VLC Linux平台编译 在Linux上编译VLC就不需要那个慢吞吞的cygwin啦。我们先下载源代码。各个平台的源代码都是一样的,这部分和Windows平台编译一样就不多说了。 编译VLC的Linux是有点古老的FedroCore5,不过其他的发布版应该大同小异的。把源代码解压之后也是先运行一下bootstrap,看看缺什么工具没有,例如gcc、make、libtool、au
2009-02-05 20:45:00
2259
原创 VLC简介
VLC(一) 简介 VLC的全名是Video Lan Client,是一个开源的、跨平台的视频播放器。目前的最新发布版本是0.8.6h。VLC支持大量的音视频传输、封装和编码格式,完整的功能特性列表可以在这里获得 http://www.videolan.org/vlc/features.html,下面给出一个简要的不完整的列表: 操作系统:Windows、WinCE、Linu
2009-02-05 20:44:00
3479
原创 视频播放的基本原理
VLC是一个功能强大的玩意,能做很多有意思的事情。最简单的,从界面打开一个文件播放,也可以在命令行下使用,如C:/Program Files/VideoLAN/VLC>vlc.exe test.ts获取内置的帮助,会写到vlc-help.txtC:/Program Files/VideoLAN/VLC>vlc.exe -h获取更详细的帮助,有大量的选项介绍C:/Program File
2009-02-05 20:41:00
21420
9
原创 DVB-C中的各种PSI/SI表的说明
摘要:本文结合DVB-C的有线数字电视某个TS流中的PSI/SI信息表,具体分析了MPEG-2的PSI信息和DVB的SI信息中的各种表,从而更清晰地了解各个表的功能和作用。 关键词:数字电视;TS流;PSI信息;SI信息;电子节目指南EPG1、引言 在数字电视中,所有视频、音频、文字、图片等经数字化处理后都变成了数据,并按照MPEG-2的标准打包,形成固定长度(188个字节)的传
2009-02-05 14:05:00
11256
1
原创 Ogre的SceneManager分析
SceneManager分析 场景管理主要工作包括以下几点:1.可移动、不可移动和可渲染物体的创建删除。2.场景查询。3.渲染队列。4.动态阴影。 一. 场景对象创建场景中的所有对象,包括可移动与不可移动的:Camera、Light、SceneNode、Entity、ManualObject、BillboardChain、RibbonTrail、ParticleS
2009-02-03 10:42:00
4060
原创 Ogre的MaterialSystem分析
MaterialSystem分析 1. Mesh 、SubMesh、SubEntity和Entity 所有的Mesh对象是由SubMesh构成的,每个SubMesh代表了Mesh对象的一部分,该部分只能使用一种Meterial。如果一个Mesh只采用一种Material,那么它可能只包含一个SubMesh。 当基于Mesh创建出一个Entity时,该Entity由多个Sub
2009-02-03 10:41:00
3259
原创 windows下的线程的同步
虽然多线程能给我们带来好处,但是也有不少问题需要解决。例如,对于像磁盘驱动器这样独占性系统资源,由于线程可以执行进程的任何代码段,且线程的运行是由系统调度自动完成的,具有一定的不确定性,因此就有可能出现两个线程同时对磁盘驱动器进行操作,从而出现操作错误;又例如,对于银行系统的计算机来说,可能使用一个线程来更新其用户数据库,而用另外一个线程来读取数据库以响应储户的需要,极有可能读数据库的线
2009-02-03 10:33:00
964
原创 网游服务端结构设计
LoginServer GameServer服务端主体分为LoginServer和GameServer, LoginServer做帐户认证, GameServer做游戏主逻辑,中间也可以加一个CharServer啦, 做人物管理, 新建删除人物之类的, 也可以并到GameServer一起, LoginServer和CharServer都比较简单, 略过.通过LoginServer的验证后将分配
2009-02-03 10:31:00
3519
原创 场景管理--BSP
对于一个3D引擎来说,最核心的部分应该算是场景组织(scene graph)了,如果这部分你都没有设计好, 那么就别指望开发一个成熟的3D引擎了。为了开发3d引擎,所以我首先就研究这方面的内容,对一个3D的场景来说,又很多的物体,最简单的组织方法就是把他们用一个List连接起来,然后在绘制没一帧的时候依次送入渲染器(render)进行处理。 这显然不是一个很有效的方法,当处理一个普通的游戏场景
2009-02-03 10:15:00
3231
转载 场景管理
一、场景管理有很多种方法,如四叉树、八叉树、BSP、模糊K-D树、包围球层次结构等。室内环境主要是BSP为主,从quake3一直延续到现在主流的引擎都是以BSP为基础,BSP使用并不难,关键是数据的生成,这就牵涉到场景编辑器。 Quake3、Unreal:BSP,有自己的编辑器。 FarCry:场景分为室内和室外两部分,室内场景使用BSP, 室外不清楚但应该跟地形有很大关
2009-02-03 10:09:00
1650
转载 XMPP 协议介绍
1、什么是XMPP ?XMPP(可扩展消息处理现场协议)是基于可扩展标记语言(XML)的协议,它用于即时消息(IM)以及在线现场探测。它在促进服务器之间的准即时操作。这个协议可能最终允许因特网用户向因特网上的其他任何人发送即时消息,即使其操作系统和浏览器不同。XMPP的前身是Jabber,一个开源形式组织产生的网络即时通信协议。XMPP目前被IETF国际标准组织完成了标准化工作。标
2009-02-02 13:05:00
1359
转载 嵌入式WEB服务器BOA的移植方法211034328
本文摘自作者《嵌入式Linux系统开发详解-基于EP93XX系列ARM》一书的相关章节。 随着Internet技术的兴起,在嵌入式设备的管理与交互中,基于Web方式的应用成为目前的主流,这种程序结构也就是大家非常熟悉的B/S结构,即在嵌入式设备上运行一个支持脚本或CGI功能的Web服务器,能够生成动态页面,在用户端只需要通过Web浏览器就可以对嵌入式设备进行管理和监控,非常方便实用。本节主要介绍
2009-02-01 14:57:00
2555
转载 常用开源Jabber(XMPP) IM服务器介绍
常用开源Jabber(XMPP) IM服务器介绍1. Openfire (Wildfire) 3.x授权: GPL or 商用操作系统平台:所有(使用Java开发)XMPP Jabber 协议实现情况:98%Tim 评价:安装和使用非常简单,安装后进入Web界面进行2~3分钟的配置所有的东西都设好了。使用Java语言开发,在目前Java开发人员到处普及的情况下进行维护和扩展
2009-01-22 16:03:00
5157
转载 三种开源jabber服务器对比分析
三种开源jabber服务器对比分析 经过综合考察现决定服务器的备选方案为 jabbed14、jabberd2、openfire。想将各个服务器的主要特点列举如下: Jabberd14 Jabberd14是开源和免费的(open source&free)。 Jabberd14是xmpp的原型实现机支持比较早版本的xmpp协议,也支持较新版本的。 J
2009-01-22 16:02:00
5604
转载 Openfire (Wildfire) Connnection Manager 协议分析
Openfire (Wildfire) Connnection Manager目前还没有公开的JEP,所以把它的协议分析了一遍如下:第一步:建立 socket 连接握手,一个 connection manager 可以跟服务器建立多个连接1. 连接c2s// to="cm1/socket1" 实际是是填写cm的名称(cm1)和当前 socket 的别名(socket1)http://ether
2009-01-22 16:00:00
2028
转载 基于 XMPP协议的即时消息服务端简单实现
服务器端XmppSeverConnection类事件//在流开始时触发,一般是最初的响应流streamParser.OnStreamStart += new StreamHandler(streamParser_OnStreamStart);//在流结束时触发,一般是发送并关闭套接字连接streamParser.OnStreamEnd += new StreamHandler(streamPa
2009-01-22 10:15:00
4007
转载 基于XMPP协议的即时通讯工具的服务器端实现
基于XMPP协议的即时通讯工具的服务器端实现,下面将要来共同学习一下基于XMPP协议的即时通讯工具的客户端实现原理,本篇将主要分析agsXMPPP客户端用户登录认证的实现原理(关于XMPP协议与agsXMPP的相关知识请认真看第一篇中的附件)1、主窗体初始化时将订阅一大堆的事件 // 读取接收到的XML流信息 XmppCon.OnReadXml
2009-01-22 10:12:00
4190
原创 基于 XMPP协议的服务器端 文件互传的简单实现
学习一下基于XMPP协议的文件传输,首先假设用户已经登录,这里假设Clinet Send对Clinet Receive 发送文件,这里记录了Clinet Send的发送和接收XML流记录1、发送请求表示要向Clinet test发送文件,并发送文件大小和文件名SEND: iq xmlns="jabber:client" id="agsXMPP_6" to="Receive
2009-01-22 10:10:00
3367
2
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人