CAutolock】的更多相关文章

顾名思义CAutolock就是自动锁的意思,它可以把它之下的代码区锁住一直到其自身被释放掉    后这块代码区中的公共资源才会被其他线程使用.当然这个代码区能尽量少就尽量少,毕竟不能让其他线    程这样一直等下去反而降低了效率.                CAutolock是一个类,要知道它的工作原理就要深度剖析它的内部内容.                首先介绍它的最基础内容:CRITICAL_SECTION.              CRITICAL_SECTION是一个结构体,它…
这几天在做dxva2硬件加速,找不到什么资料,翻译了一下微软的两篇相关文档.并准备记录一下用ffmpeg实现dxva2,将在第三篇写到.这是第二篇.,英文原址:https://msdn.microsoft.com/en-us/library/aa965245(v=vs.85).aspx 第一篇翻译的Direct3D device manager,链接:http://www.cnblogs.com/betterwgo/p/6124588.html 本主题描述如何在DirectShow的解码器中支持…
VC2010 编译 Media Player Classic - Home Cinema (mpc-hc) Media Player Classic - Home Cinema (mpc-hc)播放器一个经典的影音播放器,免费软件,可播放CD.VCD.DVD.及MP3.MP4.AVI.AAC等多种影音格式.与此同时,它还是开源的.今天尝试着编译了一下它的源代码(还是第一次接触这么大的MFC工程) 第一步::准备   1. 安装 Visual C++ 2010(不能是Express版本)   2.…
1: 总体结构 LAV Filter 是一款视频分离和解码软件,他的分离器封装了FFMPEG中的libavformat,解码器则封装了FFMPEG中的libavcodec.它支持十分广泛的视音频格式. 源代码位于GitHub或Google Code: https://github.com/Nevcairiel/LAVFilters http://code.google.com/p/lavfilters/ 本文分析了LAV Filter源代码的总体架构. 使用git获取LAV filter源代码之…
DirectShow Filter 开发典型例子分析 --字幕叠加 (FilterTitleOverlay)1 本文分析一下<DirectShow开发指南>中的一个典型的Transform Filter的例子:字幕叠加(FilterTitleOverlay).通过分析该例子,我们可以学习到DirectShow Transform Filter 开发的方式. 直接打开项目工程(我这里是VC2010),看到项目的结构如下图所示: 先看一下运行的结果: 注意,DirectShow的Filter是不可…
本文分析一下<DirectShow开发指南>中的一个典型的Transform Filter的例子:字幕叠加(FilterTitleOverlay).通过分析该例子,我们可以学习到DirectShow Transform Filter 开发的方式. 直接打开项目工程(我这里是VC2010),看到项目的结构如下图所示: 先看一下运行的结果: 注意,DirectShow的Filter是不可以直接运行进行调试的.一般情况下需要借助于Graphedit.exe这个程序进行调试.当然这不是绝对的,也可以用…
CSourceStream类别,它是CSource类别OutputPin[source.h/source.cpp] 派生自CAMThread和CBaseOutputPinl         成员变量: CSource *m_pFilter;    // The parent of this stream//在构造的时候作为输入參数 l         新添加的virtual函数:// Override this to provide the worker thread a means of pr…
DirectShow SDK提供了一套开发Filter的基类源代码.基于这些基类开发Filter将大大简化开发过程. 1.CBaseObject 大部分SDK类都从CBaseObject类(参见combase.h)中继承而来的. [cpp] view plaincopy class CBaseObject { private: // Disable the copy constructor and assignment by default so you will get //   compil…
虽然网上已有很多关于DirectShow写source filter的资料,不过很多刚开始学的朋友总说讲的不是很清楚(可能其中作者省略了许多他认为简 单的过程),读者总希望看到象第一步怎么做,第二步怎么做....这样的demo.其实写你的第一个filter是有一定难度的,只要过了这关以后 就容易多了.由于最近需要自己写一个push推模式的source filter,加上刚激活了Blog,不好意思Blog上没有一篇文章,所以将写这个filter的过程写下来 ,为了照顾刚开始学的朋友,我采用第一步第…
本篇文档我们将要讲述如何给一个filter创建一个属性页,通过CBasePropertyPage基类.这篇文档的实例代码演 示了创建属性页的步骤,这里我们假设我们要创建属性页的视频filter支持饱和度属性页,这个属性页有一个滑动条,用户可以通过这个滑动条来控制饱和 度.第一步,设置属性的机理Filter必须支持一种和属性页沟通的方式,通过属性页可以设置或者获取filter的属性,下面是可能的三种方式1暴露一个接口2通过IDispatch支持自动化属性3暴露IPropertyBag 接口,并定义…