博客园 - 孤竹君
uuid:24b78886-0ed1-41c2-8670-e3f31dcf42c4;id=87164
2017-03-28T14:22:38Z
孤竹君
https://www.cnblogs.com/fangkm/
feed.cnblogs.com
https://www.cnblogs.com/fangkm/p/6628425.html
PPAPI插件开发指南 - 孤竹君
转载请注明出处:http://www.cnblogs.com/fangkm/p/4401075.html 前言 插件一直是浏览器的重要组成部分,丰富浏览器的运行能力,实现一些HTML+JS实现不了本地应用(比如音视频、文件操作等)。早期广为熟知的是IE下的插件ActiveX,这是一项熟悉可能暴露年龄
2017-03-27T11:56:00Z
2017-03-27T11:56:00Z
孤竹君
https://www.cnblogs.com/fangkm/
【摘要】转载请注明出处:http://www.cnblogs.com/fangkm/p/4401075.html 前言 插件一直是浏览器的重要组成部分,丰富浏览器的运行能力,实现一些HTML+JS实现不了本地应用(比如音视频、文件操作等)。早期广为熟知的是IE下的插件ActiveX,这是一项熟悉可能暴露年龄 <a href="https://www.cnblogs.com/fangkm/p/6628425.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/fangkm/p/4401143.html
WebRTC手记之WebRtcVideoEngine2模块 - 孤竹君
转载请注明出处:http://www.cnblogs.com/fangkm/p/4401143.html终于讲到视频数据的编码发送模块了,不容易。总体来说也看了不少时间WebRTC的源码了,最大的感触就是各个模块在开发的时候非常独立,每个模块都定义了自己的一套接口,最后串起来的时候添加各种适配对象来...
2015-04-07T16:31:00Z
2015-04-07T16:31:00Z
孤竹君
https://www.cnblogs.com/fangkm/
【摘要】转载请注明出处:http://www.cnblogs.com/fangkm/p/4401143.html终于讲到视频数据的编码发送模块了,不容易。总体来说也看了不少时间WebRTC的源码了,最大的感触就是各个模块在开发的时候非常独立,每个模块都定义了自己的一套接口,最后串起来的时候添加各种适配对象来... <a href="https://www.cnblogs.com/fangkm/p/4401143.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/fangkm/p/4401075.html
WebRTC手记Channel概念 - 孤竹君
转载请注明出处:http://www.cnblogs.com/fangkm/p/4401075.html前面两篇博文完整地介绍了WebRTC音视频的采集模块,接下来应该开始介绍关键的音视频编码模块。不过在介绍音视频编码模块之前,需要介绍一下Channel概念,WebRTC的每路数据的传输流程都封装成...
2015-04-07T15:47:00Z
2015-04-07T15:47:00Z
孤竹君
https://www.cnblogs.com/fangkm/
【摘要】转载请注明出处:http://www.cnblogs.com/fangkm/p/4401075.html前面两篇博文完整地介绍了WebRTC音视频的采集模块,接下来应该开始介绍关键的音视频编码模块。不过在介绍音视频编码模块之前,需要介绍一下Channel概念,WebRTC的每路数据的传输流程都封装成... <a href="https://www.cnblogs.com/fangkm/p/4401075.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/fangkm/p/4374668.html
WebRTC手记之本地音频采集 - 孤竹君
转载请注明出处:http://www.cnblogs.com/fangkm/p/4374668.html上一篇博文介绍了本地视频采集,这一篇就介绍下音频采集流程,也是先介绍WebRTC原生的音频采集,再介绍Chromium源码对它的定制。1. WebRTC原生音频采集先介绍一下WebRTC中与音频采...
2015-03-28T11:28:00Z
2015-03-28T11:28:00Z
孤竹君
https://www.cnblogs.com/fangkm/
【摘要】转载请注明出处:http://www.cnblogs.com/fangkm/p/4374668.html上一篇博文介绍了本地视频采集,这一篇就介绍下音频采集流程,也是先介绍WebRTC原生的音频采集,再介绍Chromium源码对它的定制。1. WebRTC原生音频采集先介绍一下WebRTC中与音频采... <a href="https://www.cnblogs.com/fangkm/p/4374668.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/fangkm/p/4374610.html
WebRTC手记之本地视频采集 - 孤竹君
转载请注明出处:http://www.cnblogs.com/fangkm/p/4374610.html前面两篇文章介绍WebRTC的运行流程和使用框架接口,接下来就开始分析本地音视频的采集流程。由于篇幅较大,视频采集和音频采集分成两篇博文,这里先分析视频采集流程。分析的时候先分析WebRTC原生的...
2015-03-28T10:45:00Z
2015-03-28T10:45:00Z
孤竹君
https://www.cnblogs.com/fangkm/
【摘要】转载请注明出处:http://www.cnblogs.com/fangkm/p/4374610.html前面两篇文章介绍WebRTC的运行流程和使用框架接口,接下来就开始分析本地音视频的采集流程。由于篇幅较大,视频采集和音频采集分成两篇博文,这里先分析视频采集流程。分析的时候先分析WebRTC原生的... <a href="https://www.cnblogs.com/fangkm/p/4374610.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/fangkm/p/4370492.html
WebRTC手记之框架与接口 - 孤竹君
转载请注明出处:http://www.cnblogs.com/fangkm/p/4370492.html上一篇文章简单地介绍了下WebRTC的协议流程,这一篇就开始介绍框架与接口。一提到框架,本能地不知道从什么地方入手了。曾经直接从Chromium项目对WebRTC的源码的集成方面入手,后来发现这个...
2015-03-26T16:09:00Z
2015-03-26T16:09:00Z
孤竹君
https://www.cnblogs.com/fangkm/
【摘要】转载请注明出处:http://www.cnblogs.com/fangkm/p/4370492.html上一篇文章简单地介绍了下WebRTC的协议流程,这一篇就开始介绍框架与接口。一提到框架,本能地不知道从什么地方入手了。曾经直接从Chromium项目对WebRTC的源码的集成方面入手,后来发现这个... <a href="https://www.cnblogs.com/fangkm/p/4370492.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/fangkm/p/4364553.html
WebRTC手记之初探 - 孤竹君
转载请注明出处:http://www.cnblogs.com/fangkm/p/4364553.htmlWebRTC是HTML5支持的重要特性之一,有了它,不再需要借助音视频相关的客户端,直接通过浏览器的Web页面就可以实现音视频对聊功能。而且WebRTC项目是开源的,我们可以借助WebRTC源码快...
2015-03-24T16:53:00Z
2015-03-24T16:53:00Z
孤竹君
https://www.cnblogs.com/fangkm/
【摘要】转载请注明出处:http://www.cnblogs.com/fangkm/p/4364553.htmlWebRTC是HTML5支持的重要特性之一,有了它,不再需要借助音视频相关的客户端,直接通过浏览器的Web页面就可以实现音视频对聊功能。而且WebRTC项目是开源的,我们可以借助WebRTC源码快... <a href="https://www.cnblogs.com/fangkm/p/4364553.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/fangkm/p/3960327.html
Chromium的GPU进程启动流程 - 孤竹君
硬件渲染依赖计算机的GPU,GPU种类繁多,兼容这么多种类的硬件,稳定性是个大问题,虽然Chromium内部维护了一个GPU黑名单列表,限定了哪些渲染特性不能在哪些GPU上渲染,但还不足以解决使用GPU过程中的稳定性问题。在Chromium的多进程架构中,不稳定不可控的因素一般都会采取独立进程的渲染方式, 从而保证主进程的稳定性,比如Render进程、插件进程,GPU的使用也一样,采取独立进程的方式运行。
2014-09-07T05:15:00Z
2014-09-07T05:15:00Z
孤竹君
https://www.cnblogs.com/fangkm/
【摘要】硬件渲染依赖计算机的GPU,GPU种类繁多,兼容这么多种类的硬件,稳定性是个大问题,虽然Chromium内部维护了一个GPU黑名单列表,限定了哪些渲染特性不能在哪些GPU上渲染,但还不足以解决使用GPU过程中的稳定性问题。在Chromium的多进程架构中,不稳定不可控的因素一般都会采取独立进程的渲染方式, 从而保证主进程的稳定性,比如Render进程、插件进程,GPU的使用也一样,采取独立进程的方式运行。 <a href="https://www.cnblogs.com/fangkm/p/3960327.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/fangkm/p/3943896.html
Chromium的UI绘制初探 - 孤竹君
任何一个成熟的界面框架都有一个相当复杂的结构,消息循环的处理、控件的布局与绘制、焦点的管理以及资源的存取等等,Chromium里的界面框架也不例外,尤其采用的MVC设计方式更是增添了代码结构的复杂度。这里并不打算讨论Chromium的界面框架,本文感兴趣的只是Chromium的UI绘制部分,确切地说应该是引入Aura架构之后控件渲染的硬件加速支持。
2014-08-28T15:48:00Z
2014-08-28T15:48:00Z
孤竹君
https://www.cnblogs.com/fangkm/
【摘要】任何一个成熟的界面框架都有一个相当复杂的结构,消息循环的处理、控件的布局与绘制、焦点的管理以及资源的存取等等,Chromium里的界面框架也不例外,尤其采用的MVC设计方式更是增添了代码结构的复杂度。这里并不打算讨论Chromium的界面框架,本文感兴趣的只是Chromium的UI绘制部分,确切地说应该是引入Aura架构之后控件渲染的硬件加速支持。 <a href="https://www.cnblogs.com/fangkm/p/3943896.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/fangkm/p/3797278.html
Chromium源码--视频播放流程分析(WebMediaPlayerImpl解析) - 孤竹君
转载请注明出处:http://www.cnblogs.com/fangkm/p/3797278.html承接上一篇文章。媒体播放,需要指定一个源文件,html5用URL格式来指定视频源文件地址,可以是http链接,也可以使本地源文件(不能直接指定,需要借助blob二进制类型)。播放网络文件比播放本地...
2014-06-19T10:08:00Z
2014-06-19T10:08:00Z
孤竹君
https://www.cnblogs.com/fangkm/
【摘要】转载请注明出处:http://www.cnblogs.com/fangkm/p/3797278.html承接上一篇文章。媒体播放,需要指定一个源文件,html5用URL格式来指定视频源文件地址,可以是http链接,也可以使本地源文件(不能直接指定,需要借助blob二进制类型)。播放网络文件比播放本地... <a href="https://www.cnblogs.com/fangkm/p/3797278.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/fangkm/p/3791964.html
Chromium源码--视频播放流程分析(拨开云雾) - 孤竹君
在PC浏览器中播放视频,大部分视频网站都是采用flash播放器,这多亏了Adobe Flash Player庞大的装机量。但Flash Player对于浏览器来说就是一个插件,插件内部下载flv流、解析flv视频格式、播放视频等流程与浏览器都没有太大关系。浏览器新标准HTML5中增加了视频支持。
2014-06-16T15:59:00Z
2014-06-16T15:59:00Z
孤竹君
https://www.cnblogs.com/fangkm/
【摘要】在PC浏览器中播放视频,大部分视频网站都是采用flash播放器,这多亏了Adobe Flash Player庞大的装机量。但Flash Player对于浏览器来说就是一个插件,插件内部下载flv流、解析flv视频格式、播放视频等流程与浏览器都没有太大关系。浏览器新标准HTML5中增加了视频支持。 <a href="https://www.cnblogs.com/fangkm/p/3791964.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/fangkm/p/3787977.html
WebKit的Platform接口部分 - 孤竹君
转载请注明出处:http://www.cnblogs.com/fangkm/p/3787977.htmlWebKit中解析、渲染网页的过程中需要一些功能,比如: socket连接、URL资源请求的实现、线程管理等,而这些功能依赖于具体的平台, 不同的平台有不同的移植实现。WebKit的Public中...
2014-06-14T02:46:00Z
2014-06-14T02:46:00Z
孤竹君
https://www.cnblogs.com/fangkm/
【摘要】转载请注明出处:http://www.cnblogs.com/fangkm/p/3787977.htmlWebKit中解析、渲染网页的过程中需要一些功能,比如: socket连接、URL资源请求的实现、线程管理等,而这些功能依赖于具体的平台, 不同的平台有不同的移植实现。WebKit的Public中... <a href="https://www.cnblogs.com/fangkm/p/3787977.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/fangkm/p/3784660.html
Chromium源码--网络请求流程分析 - 孤竹君
转载请注明出处:http://www.cnblogs.com/fangkm/p/3784660.html本文探讨一下chromium中加载URL的流程,具体来说是从地址栏输入URL地址到通过URLRequest类请求http流的过程。为避免繁琐, URL请求过程中的NavigationControl...
2014-06-12T12:58:00Z
2014-06-12T12:58:00Z
孤竹君
https://www.cnblogs.com/fangkm/
【摘要】转载请注明出处:http://www.cnblogs.com/fangkm/p/3784660.html本文探讨一下chromium中加载URL的流程,具体来说是从地址栏输入URL地址到通过URLRequest类请求http流的过程。为避免繁琐, URL请求过程中的NavigationControl... <a href="https://www.cnblogs.com/fangkm/p/3784660.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/fangkm/p/3405959.html
Chromium的Grit工具解析 - 孤竹君
转载请注明出处:http://www.cnblogs.com/fangkm/p/3405959.htmlChromium项目采用Grit工具来打包生成程序需要的资源,如图片资源、字符串资源等,尤其是字符串资源,牵涉到国际化的问题。Chromium为需要的资源创建单独的项目工程,工程类型为实用工具,自定义工程的生成事件, 在CustomBuild里调用grit命令,根据grd资源描述文件生成相关的资源。如chrome_strings工程生成国际化字符串资源、chrome_resources工程生成除字符串以外的资源,比如图片资源。Grit工具接受grd资源描述文件,生成.h、.rc、.pak等文
2013-11-04T02:18:00Z
2013-11-04T02:18:00Z
孤竹君
https://www.cnblogs.com/fangkm/
【摘要】转载请注明出处:http://www.cnblogs.com/fangkm/p/3405959.htmlChromium项目采用Grit工具来打包生成程序需要的资源,如图片资源、字符串资源等,尤其是字符串资源,牵涉到国际化的问题。Chromium为需要的资源创建单独的项目工程,工程类型为实用工具,自定义工程的生成事件, 在CustomBuild里调用grit命令,根据grd资源描述文件生成相关的资源。如chrome_strings工程生成国际化字符串资源、chrome_resources工程生成除字符串以外的资源,比如图片资源。Grit工具接受grd资源描述文件,生成.h、.rc、.pak等文 <a href="https://www.cnblogs.com/fangkm/p/3405959.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/fangkm/archive/2013/05/12/3073879.html
WebContents类 - 孤竹君
首先介绍浏览所需的数据结构:BrowserContext类:保存浏览过程中所需要的上下文。其运行在UI线程中,所有方法均只能在UI线程中调用。主要方法简介:l net::URLRequestContextGetter* GetRequestContext()获取URL请求所需要的URLRequestContext结构l ResourceContext* GetResourceContext()获取资源加载时需要的数据SiteInstance类:站点对象,具体实现类为SiteInstanceImpl。一个SiteInstance对象对应于相同域名段的站点实例,如www.baidu.com和zhi
2013-05-12T04:48:00Z
2013-05-12T04:48:00Z
孤竹君
https://www.cnblogs.com/fangkm/
【摘要】首先介绍浏览所需的数据结构:BrowserContext类:保存浏览过程中所需要的上下文。其运行在UI线程中,所有方法均只能在UI线程中调用。主要方法简介:l net::URLRequestContextGetter* GetRequestContext()获取URL请求所需要的URLRequestContext结构l ResourceContext* GetResourceContext()获取资源加载时需要的数据SiteInstance类:站点对象,具体实现类为SiteInstanceImpl。一个SiteInstance对象对应于相同域名段的站点实例,如www.baidu.com和zhi <a href="https://www.cnblogs.com/fangkm/archive/2013/05/12/3073879.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/fangkm/archive/2012/11/27/2790269.html
在boost.foreach中操作迭代器 - 孤竹君
boost.foreach库使用起来非常方便,但实现的技巧可算是精彩绝伦。写基础库就应该如此,困难的永远留给自己,将光鲜的一面奉献出来。简单使用示例: std::vector<int>vecs;vecs.push_back(1);vecs.push_back(2);vecs.push_back(3);vecs.push_back(4);vecs.push_back(5);BOOST_FOREACH(intindex,vecs){_asmnop;}顺序遍历十分方便,但有时候想获取更多的信息(如:当前遍历的位置索引等),就不得不需要获取到当前的迭代器位置。观察foreach的内部实现,
2012-11-27T02:07:00Z
2012-11-27T02:07:00Z
孤竹君
https://www.cnblogs.com/fangkm/
【摘要】boost.foreach库使用起来非常方便,但实现的技巧可算是精彩绝伦。写基础库就应该如此,困难的永远留给自己,将光鲜的一面奉献出来。简单使用示例: std::vector<int>vecs;vecs.push_back(1);vecs.push_back(2);vecs.push_back(3);vecs.push_back(4);vecs.push_back(5);BOOST_FOREACH(intindex,vecs){_asmnop;}顺序遍历十分方便,但有时候想获取更多的信息(如:当前遍历的位置索引等),就不得不需要获取到当前的迭代器位置。观察foreach的内部实现, <a href="https://www.cnblogs.com/fangkm/archive/2012/11/27/2790269.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/fangkm/archive/2010/11/14/1876898.html
采用模板的手法复用CWnd类 - 孤竹君
MFC框架由于古老,其与模板的结合比ATL/WTL差远了,其中一大原因就是因为宏的大量使用。最近封装MFC窗口类(CWnd)时,实在不想机械性地使用虚函数机制了,就想试试通过模板的手法实现代码的复用性。真的动起手来,其实发现也没那么麻烦。
2010-11-14T03:43:00Z
2010-11-14T03:43:00Z
孤竹君
https://www.cnblogs.com/fangkm/
【摘要】MFC框架由于古老,其与模板的结合比ATL/WTL差远了,其中一大原因就是因为宏的大量使用。最近封装MFC窗口类(CWnd)时,实在不想机械性地使用虚函数机制了,就想试试通过模板的手法实现代码的复用性。真的动起手来,其实发现也没那么麻烦。 <a href="https://www.cnblogs.com/fangkm/archive/2010/11/14/1876898.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/fangkm/archive/2010/10/16/1852856.html
C++程序加载Flash动画 - 孤竹君
在VC中加载Flash动画,一种很方便的方式就是在IDE的类向导生成一个IShockwaveFlash接口的包装类。但小弟十分不喜欢VC的可视化向导,几乎很少用,总是喜欢直接拿代码说话。
下面写段播放Flash的简单代码:
2010-10-15T17:18:00Z
2010-10-15T17:18:00Z
孤竹君
https://www.cnblogs.com/fangkm/
【摘要】在VC中加载Flash动画,一种很方便的方式就是在IDE的类向导生成一个IShockwaveFlash接口的包装类。但小弟十分不喜欢VC的可视化向导,几乎很少用,总是喜欢直接拿代码说话。
下面写段播放Flash的简单代码:
<a href="https://www.cnblogs.com/fangkm/archive/2010/10/16/1852856.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/fangkm/archive/2010/05/06/1728542.html
设置文件(夹)的用户访问权限 - 孤竹君
一般Windows下的系统文件(夹)只让受限帐户读取而不让写入和修改。如果要开启写操作权限就需要手动修改文件(夹)的用户帐户安全权限(这操作当然要在管理员帐户下执行).
2010-05-06T01:04:00Z
2010-05-06T01:04:00Z
孤竹君
https://www.cnblogs.com/fangkm/
【摘要】一般Windows下的系统文件(夹)只让受限帐户读取而不让写入和修改。如果要开启写操作权限就需要手动修改文件(夹)的用户帐户安全权限(这操作当然要在管理员帐户下执行). <a href="https://www.cnblogs.com/fangkm/archive/2010/05/06/1728542.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/fangkm/archive/2010/04/05/1704684.html
春天来了 随便写点 - 孤竹君
经历了一个冬天的苦寒,终于迎来了我来北京的第一个春天。舒了一口气,却压抑不住内心里深深的孤寂... 我曾不止一次跟身边的人发感慨:春天是个容易忧郁的季节.但是他们都以为我这是装B之语,唉,茫茫人海,有我这种心境的人也并不多见,非福!非福!! 春风柔柔地吹在脸上,感官上舒服无比,但内心里却体会着一种深入骨髓的孤独感。有时我想发掘一下这种感觉究竟来自何处:是春天太美妙了,而我又不知该做出什么样的行动才...
2010-04-05T07:24:00Z
2010-04-05T07:24:00Z
孤竹君
https://www.cnblogs.com/fangkm/
【摘要】经历了一个冬天的苦寒,终于迎来了我来北京的第一个春天。舒了一口气,却压抑不住内心里深深的孤寂... 我曾不止一次跟身边的人发感慨:春天是个容易忧郁的季节.但是他们都以为我这是装B之语,唉,茫茫人海,有我这种心境的人也并不多见,非福!非福!! 春风柔柔地吹在脸上,感官上舒服无比,但内心里却体会着一种深入骨髓的孤独感。有时我想发掘一下这种感觉究竟来自何处:是春天太美妙了,而我又不知该做出什么样的行动才... <a href="https://www.cnblogs.com/fangkm/archive/2010/04/05/1704684.html" target="_blank">阅读全文</a>