- 博客(13)
- 资源 (37)
- 收藏
- 关注
原创 Media Player Classic - HC 源代码分析 14:PIN连接过程中推模式和拉模式区别
前面有两篇文章讲解了PIN连接过程中需要做2件事情:媒体类型的协商 分配器的协商推模式和拉模式关于媒体类型的协商调用的接口都一样,主要的区别还是在分配器的协商。前面讲解的分配器的协商过程是推模式的,今天我们来看看拉模式的分配器协商过程。如果我们要实现拉模式的PIN连接,则输出PIN和输入PIN不能从CBaseOuputPin和CBaseInputPin继承。因为这两个类是为推模式连接设计的:CBaseInputPin实现了IMemInputPin接口。(IMemInputPin接口...
2021-08-19 16:14:32 305
原创 Media Player Classic - HC 源代码分析 13:媒体类型协商过程中CheckMediaType函数详解
前面在讲解媒体类型协商的过程中提到过CheckMediaType这个函数,当时只是说明了这个函数是用来检查输入的媒体类型是否符合要求,今天我们就来重点了解一下这个函数。我们首先看一下CBasePin类中关于CheckMediaType函数的声明:class AM_NOVTABLE CBasePin : public CUnknown, public IPin, public IQualityControl{protected: // used to agree a medi...
2021-08-19 10:10:15 538
原创 Media Player Classic - HC 源代码分析 12:Pin之间的具体连接过程2(PIN之间分配器的协商)
上一篇文章讲解了PIN之间媒体类型的协商过程,这一篇我们讲解一下PIN之间分配器的协商过程:PIN之间分配器的协商过程大概总结如下:上一篇媒体类型协商过程的结尾会调用函数,整个分配器的协商过程就是从这个函数开始的。 在输出PIN的CompleteConnect里面会调用DecideAllocator函数. 在输出PIN的DecideAllocator里面,首先从输入PIN对象中获取IMemAllocator对象,如果这个对象符合要求,则直接成功。否则输出PIN创建自己的IMemAlloca...
2021-08-17 19:40:16 205
原创 Media Player Classic - HC 源代码分析 11:Pin之间的具体连接过程1(PIN之间媒体类型的协商)
上一篇文章讲解了Filter之间的连接最终转为Pin之间的连接,调用了IFilterGraph的ConnectDirect实现两个PIN之间的连接。今天我们来具体了解一下两个PIN是如何连接的。由于没有ConnectDirect的源代码,所以只能通过MSDN的介绍了解一下两个PIN之间的连接过程。下面是我参考的MSDN的内容链接:PIN之间连接PIN之间媒体类型的协商PIN之间分配器的协商过程根据MSDN的介绍我总结一下具体的连接过程大概分为2部分,第一部分为:PIN之间媒体类型...
2021-08-17 17:26:13 373
原创 颜色校正-白平衡
https://baike.baidu.com/item/%E7%99%BD%E5%B9%B3%E8%A1%A1/99898?fr=aladdin
2021-08-09 19:01:53 444
原创 Media Player Classic - HC 源代码分析 10:Filter链的自动建立过程(CFGManager)
今天我们重点介绍一下Filte链的自动建立过程,前面在介绍RenderFile函数的时候大概讲解了一下,但是感觉不够详细,所以这里准备单独拿出来讲解一下。我们先了看一下整个链建立过程中需要调用的函数:需要先根据文件创建源Filter对象。 调用IGraphBuilder2扩展接口的方法:STDMETHODIMP ConnectFilter(IBaseFilter* pBF, IPin* pPinIn); 调用IGraphBuilder接口的方法:STDMETHODIMP Connect(...
2021-08-03 19:56:50 408
转载 Direct2D 第6篇 绘制多种风格的线条
https://blog.csdn.net/ubuntu_ai/article/details/50447829
2021-08-02 14:31:06 312
原创 Media Player Classic - HC 源代码分析 9:CFGManager类详细分析(CFGManager)
上一篇文章分析了Media Player Classic - HC(mpc-hc)的源代码中的CFGManager类的RenderFile函数:Media Player Classic - HC 源代码分析 8:RenderFile函数详细分析(CFGManager)这一篇文章我们全面了解一下CFGManager类,这个类从IFilterGraph2接口继承,是DirectShow的Filter Graph Manager类。负责管理整个Graph链中的Filter。源码声明如下:class
2021-08-02 14:02:02 197
原创 Media Player Classic - HC 源代码分析 8:RenderFile函数详细分析(CFGManager)
前面有两篇文章分析了Media Player Classic - HC(mpc-hc)的源代码中的核心类 CMainFrame:Media Player Classic - HC 源代码分析 2:核心类 (CMainFrame)(1)Media Player Classic - HC 源代码分析 3:核心类 (CMainFrame)(2)主要介绍了CMainFrame类中的以下几个函数(“->”代表调用关系):OpenMedia()->OpenMediaPrivate()...
2021-08-02 10:58:06 473
windows管道通信
2020-08-13
dll注入和API拦截测试代码.rar
2020-08-11
使用NVIDIA FX Composer工具验证多张纹理合成效果
2023-07-18
显示器带宽计算.zip
2021-09-01
颜色和HDR知识总结.pptx
2021-06-24
压缩纹理通过d3d9和cuda进显存速度对比3 (测试100次平均值)
2020-12-16
压缩纹理通过d3d9和cuda进显存速度对比2
2020-12-04
压缩纹理通过d3d9和cuda进显存速度对比
2020-07-25
vld内存泄露检测工具
2018-11-02
COM组件例子程序
2018-10-24
网络唤醒开机
2018-10-15
MPC-HC播放器源代码
2018-08-30
COM组件用例和测试代码V2
2018-06-25
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人