- 博客(199)
- 资源 (24)
- 收藏
- 关注
原创 【X11】XWindowAttributes 结构体分量 int map_state
这个状态是X服务器维护的,反映了窗口在显示层次中的实际状态,对于管理窗口可见性和优化渲染非常重要。
2025-12-23 15:17:30
223
原创 【C++11】std::unique_lock<std::mutex> 和 std::lock_guard<std::mutex>
使用简单的 RAII 锁管理整个作用域都需要锁不需要条件变量性能是关键考虑使用需要配合条件变量需要手动控制锁的时机需要尝试加锁或超时加锁需要转移锁的所有权需要更复杂的锁策略在大多数简单情况下,就足够了,而且性能更好。只有在需要更高级功能时才使用。
2025-11-21 10:33:47
231
原创 【Makefile】libyuv 编译举例
以 libyuv 源码自带Makefile 举例Makefile的推导执行顺序遵循特定的依赖解析机制,首先从默认目标开始,然后根据依赖关系逐级构建。
2025-11-21 10:03:08
324
原创 【Media Foundation】视频采集封装类(一)
要求:设计一个 MF视频采集类,实现 选源,设置采集宽高、采集类型(匹配设备最接近的采集能力),开始采集接口,停止采集接口,每隔5s检测采集设备表是否有变化,一个独立的采集线程。我来为您设计一个基于Media Foundation的MF视频采集类。这个类提供了完整的视频采集功能,可以根据具体需求进一步扩展。
2025-11-19 16:27:30
316
原创 【Media Foundation】设备图像质量属性调节可以跨线程吗?
问题:m_pVideoProcAmp->Get()m_pCameraControl->Get()必须和 MF前的COM初始化在同一线程中使用吗?
2025-11-14 10:45:07
194
原创 【Media Foundation】采集设备的图像质量调节(六)
问题:m_pVideoProcAmp->GetRangem_pCameraControl->GetRange和 m_pVideoProcAmp->Getm_pCameraControl->Get的区别?
2025-11-13 14:50:17
286
原创 【Media Foundation】采集设备的图像质量调节(三)
问题:1. 你说的 IAMVideoProcAmp 是电子调节,是指纯CPU 算法处理图像吗?2. 你说的 IAMCameraControl 是物理硬件控制,是指相机硬件必须支持控制吗?
2025-11-13 14:26:15
264
原创 【Media Foundation】采集设备的图像质量调节(二)
问题:1. m_pVideoProcAmp 和 m_pCameraControl 所有相关操作都必须和 MF 前 COM初始化在同一个线程中吗?2. 这两种方法都能控制所有视频属性吗?3. 这两种方法的区别是啥?
2025-11-13 14:23:06
129
原创 【Media Foundation】采集设备的图像质量调节(一)(如亮度、对比度、饱和度等)
通过视频采集设备的 Media Source 来访问属性控制接口。这种方法可以直接在硬件层面调节视频采集属性,效果实时且性能开销小。
2025-11-13 14:15:33
143
原创 【C/C++】不能在派生类的构造函数初始化列表中直接初始化属于基类的成员变量
操作语法是否允许说明正确方式允许通过调用基类构造函数来初始化基类成员。错误方式不允许不能直接在派生类初始化列表中初始化基类成员。赋值方式在派生类构造函数体内允许(对protected这是赋值,不是初始化。不推荐,效率较低且可能违背设计初衷。让每个类管理自己的成员。这有助于写出清晰、可维护且符合C++对象模型规范的代码。
2025-11-11 09:15:22
391
原创 【C/C++】C++11前后的类成员变量初始化规则的变化
成员类型C++11 前C++11 及以后说明const 成员必须在初始化列表初始化✅ 可以在类内初始化规则变化引用成员必须在初始化列表初始化❌ 必须在初始化列表初始化规则不变没有默认构造的类成员必须在初始化列表初始化❌ 必须在初始化列表初始化规则不变继承的基类必须在初始化列表初始化❌ 必须在初始化列表初始化规则不变普通成员可以在构造函数体内赋值✅ 可以在类内初始化规则变化。
2025-11-10 17:20:18
429
原创 【C/C++】C++11 类的 默认构造函数 “= default” 用法
/ .h 文件private:public:// 声明但不 = default// .cpp 文件// 可能有一些特殊的初始化逻辑不写默认构造函数:编译器自动生成,使用类内初始值 ✅写= default:效果相同,但更明确意图 ✅只有在有其他构造函数时,才需要显式写= default来保留默认构造函数。
2025-11-10 16:54:32
210
原创 【C/C++】C++11 类成员变量的多种初始化方式
声明时初始化更像是提供一个"默认值",如果初始化列表中显式指定了值,就会使用初始化列表中的值。相比于传统方式(在构造函数初始化),类内初始化提供了更简洁直观的语法,减少了重复代码。当同时使用类内成员初始化(声明时初始化)和 构造函数初始化列表时,。C++11支持在类成员变量声明时直接进行初始化,这一特性被称为。
2025-11-10 16:49:15
229
原创 【C/C++】memset 清零初始化 某些结构体导致异常
对于包含C++标准库对象的类或结构体,正确的初始化方法应该是使用构造函数来实现,或者让编译器生成默认的初始化操作。内部同样包含指向数据的指针、容量和大小等信息,清零操作会破坏这些管理信息。会将这些内容全部置零,导致后续对字符串的操作出现未定义行为。内部包含指向字符串数据的指针和长度信息等成员变量,会破坏虚函数表指针,导致对虚函数的调用出现异常。等C++对象内部的内存管理结构。是按字节对内存块进行初始化的函数,它会破坏。:如果结构体包含虚函数,
2025-11-10 16:05:32
165
原创 【工具】Windows上查看 exe 依赖的 dll 的方法
在 Windows 系统中,有多种方法可以查看可执行文件(exe)依赖的 DLL 文件。
2025-11-06 10:44:18
1018
原创 【Windows】Media Foundation 接口调用线程选择 MTA or STA?
线程类型推荐模式说明高性能处理MTA解码、编码、视频处理源读取器MTAIMFSourceReader 相关操作UI 集成STA与窗口消息循环集成简单对象操作均可媒体类型、样本、属性等。
2025-10-29 10:03:03
375
原创 【Windows】 是不是所有使用 Media Foundation 接口的线程都必须先调用 CoInitializeEx ?
创建MF对象必须调用调用MF创建函数必须调用只使用已有MF对象方法通常不需要调用纯数据处理不需要调用安全建议:如果不确定线程是否会调用需要COM的MF接口,就总是初始化COM,这样更安全。
2025-10-29 09:45:20
140
原创 【Windows】一个进程中可以同时使用 STA 和 MTA,但必须保证同一个线程中只能使用一种模式 (STA或MTA)
✅ 进程级别: 可以在同一进程中使用STA和MTA线程✅ 线程级别: 每个线程独立选择STA或MTA❌ 线程内切换: 同一线程内不能切换COM模式🔧 线程分工: 合理分配STA用于UI,MTA用于后台任务⚡ 性能考虑: MTA线程更适合CPU密集型任务您的理解完全正确,这是COM多线程编程的核心原则之一!
2025-10-28 16:12:07
289
原创 【Windows】CoInitializeEx 函数介绍
这个函数是Windows COM编程的基础,正确的使用对于构建稳定的COM应用程序至关重要。
2025-10-28 16:10:54
336
原创 【Windows】CoInitializeEx 和 CoUninitialize() 必须在同一个线程中调用吗?
【代码】【Windows】CoInitializeEx 和 CoUninitialize() 必须在同一个线程中调用吗?
2025-10-28 15:21:24
318
原创 【Windows】在多线程程序中多处调用 CoInitializeEx 注意点
统一线程模型:在整个进程中坚持使用一种线程模型(推荐MTA)RAII模式:使用作用域对象管理COM生命周期引用计数匹配:确保CoInitializeEx和CoUninitialize调用次数匹配异常安全:在异常情况下也要确保正确清理线程局部存储:考虑使用thread_local存储COM初始化状态性能考虑:避免在性能关键路径中频繁初始化/清理COM遵循这些准则可以避免大多数多线程COM编程中的常见问题。
2025-10-28 15:10:29
175
原创 【生活】秋冬季节,鼻子很干结痂,扣掉鼻孔干痂流血,鼻塞等护理方法
不要再抠鼻子。用生理盐水鼻腔喷雾喷鼻,等待1-2分钟。如果有出血,用棉签轻轻擦掉血迹,然后薄薄涂一层红霉素软膏或眼膏(仅用1-2天预防感染)。如果没有出血,直接涂凡士林或鼻腔专用保湿凝胶。每天坚持用盐水喷雾1-2次。早晚清洁后涂抹保湿凝胶。在生活和工作的环境中使用加湿器。多喝水,饮食清淡。
2025-10-24 17:04:56
2734
原创 【Windows】DirectDraw、DirectShow、DirectX、D3D9、D3D10、D3D11、D3D12 区别
技术名称在 DirectX 中的角色核心特点与定位现状DirectX整体框架/品牌包含图形、声音、输入等的一套多媒体解决方案持续发展,最新版本为 DirectX 12DirectDraw2D 图形组件古老的 2D 图形加速 API已淘汰,功能并入 D3DDirectShow多媒体播放组件灵活的流媒体处理框架已过时,被 Media Foundation 替代Direct3D 93D 图形组件 (DX9)经典、兼容性好的高级别 API,混合架构经典,仍有使用3D 图形组件 (DX10)
2025-10-21 17:01:57
713
原创 【C/C++】只知道窗口句柄,如何擦除窗口内容,清理窗口?
调用InvalidateRect函数将窗口的客户区标记为无效,这会触发系统发送WM_PAINT消息。然后立即调用UpdateWindow函数强制窗口立即重绘。这种组合方式能确保窗口内容被立即清理并重绘。使用RedrawWindow函数可以一次性完成窗口的无效化和重绘操作。该函数提供了更多控制选项,包括是否重画非客户区和背景。通过SendMessage直接发送WM_ERASEBKGND消息给窗口,这会触发窗口擦除背景。这种方式直接调用窗口的背景擦除处理逻辑。完整代码示例。
2025-10-21 15:52:11
271
原创 【工具】H264/H265 码流分析工具 下载地址
用于记录发现的几个 H264/H265 视频码流分析工具 下载地址:【免费下载】 Elecard StreamEye 4.3.160527 (x64) 资源下载【github】Elecard StreamEye 工具资源下载【gitcode】Elecard StreamEye 工具资源下载Elecard Stream Eye 绿色版
2025-10-21 10:42:39
269
原创 【生活】连花清瘟颗粒能治风寒感冒吗?
立即停止:如果您正在考虑服用连花清瘟,请千万不要。它适用于风热感冒或流感“热毒袭肺”证,与您的症状完全相反。对症下药:您的“恶寒、没精神”是典型的风寒感冒。核心治疗方法是“发汗”。优先非药物:马上喝一碗热姜汤,然后保暖休息,这是最快、最安全的方法。正确选药:如果需要用药,请去药店购买上述推荐的风寒感冒颗粒等药物。如果服药2-3天后症状没有改善,甚至出现发烧加重、咳嗽加剧等情况,建议及时就医。
2025-10-20 15:00:30
428
原创 【生活】感冒症状 没精神,恶寒,吃布洛芬有效果吗?
单纯恶寒、乏力不建议首选布洛芬。优先采用喝热姜茶、保暖休息的非药物方法。出现高烧、剧痛:可以服用布洛芬来对症缓解,但它不治疗感冒本身。谨慎联用:切勿将布洛芬与其他含有解热镇痛成分(如对乙酰氨基酚、布洛芬)的复方感冒药(如泰诺、白加黑、感康等)一起吃,会导致药物过量,损伤肝脏。持续观察:如果感冒症状3-5天没有好转,或出现高烧不退、呼吸困难、胸闷等严重情况,请及时就医。希望您能根据这些建议,选择最适合您当前状态的方法,早日康复!
2025-10-20 14:59:44
498
原创 【生活】连花清瘟颗粒和布洛芬一起吃可以吗
关于连花清瘟颗粒与布洛芬能否同时服用的问题,综合医学专家、药品说明及研究数据,核心结论如下:退热功效重叠,增加肝肾负担连花清瘟(含连翘、金银花等)与布洛芬均有退热、抗炎作用。同时服用可能导致药物过量,加重肝肾代谢压力,尤其对慢性病患者(如肝肾功能不全、高血压)风险更高。掩盖症状或引发不良反应两者联用可能掩盖真实病情,或导致药效冲突。例如:连花清瘟性寒,布洛芬刺激胃肠,叠加易引发恶心、腹泻等不适。若症状严重(如持续高热伴剧烈咽痛),必须在医生指导下联用,并遵守以下原则:严格间隔时间特殊人群禁用联用方案优先
2025-10-20 14:56:42
595
原创 【生活】风寒感冒和风热感冒
风寒感冒和风热感冒是中医理论中两种最常见的感冒类型,它们的病因、症状和治疗方法截然不同。如果用错药,可能会加重病情。下面我将详细解释它们的区别和相应的治疗方法。
2025-10-20 14:16:12
1035
原创 【FFmpeg】如何判断 HW解码器输出的是 硬件帧?
判断是正确的是标准的硬件帧检测方法原理: 硬件解码器输出特殊格式的帧,需要通过转换到系统内存必要性: 直接访问硬件帧数据会导致访问违规,必须传输到软件帧后才能处理你的代码逻辑是正确的,这是FFmpeg硬件解码的标准做法。
2025-10-13 16:01:26
298
原创 【FFmpeg】HW解码器输出 硬件帧 or 软件帧
必须使用内存空间不同:硬件帧在GPU显存,软件帧在系统内存访问权限:CPU无法直接访问GPU显存中的数据数据格式:硬件帧可能是特定于硬件的编码格式,需要转换为标准像素格式API限制:libyuv等图像处理库只能处理系统内存中的数据的作用就是建立这个"桥梁",将数据从GPU传输到CPU可访问的内存中。
2025-10-13 15:51:54
270
原创 【FFmpeg】HW 解码器销毁时,资源回收顺序
正确的硬解释放顺序✅ 帧数据 (AVFrame)✅ 数据包 (AVPacket)✅关键:解除解码器与硬件的关联✅ 解码器上下文 (AVCodecContext)✅ 硬件设备上下文 (AVBufferRef)✅ 编解码器指针 (置NULL)你的原始代码缺少了第3步解除硬件关联,这可能导致资源泄漏或程序崩溃。
2025-10-13 15:26:59
326
原创 【FFmpeg】SW 解码器销毁时,资源回收顺序
你的当前实现顺序是正确的保持现有顺序考虑异常安全:使用局部变量暂存注意重复调用:确保cleanup()可被安全多次调用错误的顺序内存泄漏(frame/packet无法正确清理)段错误(访问已释放的context)未定义行为。
2025-10-13 15:25:05
246
GitlHEVCAnalyzer_win32_v1.5.1(H265码流分析工具)
2018-08-16
MediaInfo (音视频文件检测)
2018-08-16
Procexp工具(含32位和64位)
2018-08-06
Windows Media ASF View 9 Series 1.0
2018-11-07
CoolEditPro破解版
2018-08-06
Depends工具
2018-08-06
yuvplayer.exe (YUV序列播放器)
2018-08-16
clumsy 0.2 网络调试工具(含32位和64位)
2018-08-06
C++ and the Perils of Double Checked Locking.zip
2021-07-22
Windows程序设计(第五版).pdf (高清电子版+有目录)
2018-08-16
DXVA Checker v4.0.0(显卡硬件加速检测工具)
2018-08-16
发包工具(内有使用文档)
2018-10-26
《Windows核心编程(第5版)》pdf(高清电子版+有目录)
2018-08-16
《提高C++性能的编程技术(译本)》.pdf (译:左飞)
2018-10-26
C++设计模式(经典版).pdf
2018-10-15
Intel_Media_SDK_2017_R1.msi
2018-08-16
CPU-Z(含32位和64位)
2018-08-06
Visual_Assist_X_10.9.2089_Crack(完美破解版)
2018-08-08
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅