自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

felicityWSH的博客

毕业于2013年,长期从事windows C++应用软件开发。

  • 博客(27)
  • 资源 (27)
  • 收藏
  • 关注

转载 PJSIP 收发自定义的音频流

只要端口满足pjmedia_port接口定义,就可以连接(pjsua_conf_connect)到会议桥。获取媒体获取媒体端口,只需定义put_frame即可,当会议桥中有媒体数据时,会调用此接口把媒体发送给此端口。

2023-09-14 16:51:48 391 2

原创 捕获最小化窗口的缩略图画面

捕获最小化窗口的缩略图画面

2023-02-17 16:28:55 2112 3

原创 基于dll注入 读取任务管理器中指定进程的详细信息

基于dll注入 读取任务管理器中指定进程的详细信息

2023-02-17 15:50:25 666

转载 Janus源码分析(4)——信令交互过程

webrtc server

2022-06-23 14:41:09 515

原创 [OBS] (27版本) 音视频数据流向总结

之前写了一篇分析obs各个线程的博客([OBS] 分析libobs几个主要的线程_felicityWSH的博客-CSDN博客_libobs) 但是之后obs新增了gpu编码的功能,故原来的总结已经不完善了。现在基于27版本的obs,重新总结了音视频的数据流向。...

2022-05-26 09:24:51 547

原创 [OBS] 渲染 source,scene,transition,filter

渲染transition或scene:不管是否需要transition,scene的渲染都是通过transition封装调用的。transition相关的变量:struct obs_source { uint64_t transition_start_time; uint64_t transition_duration; pthread_mutex_t transition_...

2019-11-28 16:06:53 1111

原创 [OBS] 分析libobs几个主要的线程

There are three primary threads spawned by libobs on initialization:obs_graphics_threadfor rendering video libobs/obs-video.cvideo_thread for video encoding/output libobs/media-io/video-io.cau...

2019-11-28 16:01:10 1892 3

原创 [OBS] 信号和槽 —— 底层事件推送

信号是底层用来传递消息给UI的。UI提前连接好相关信号和槽函数,OBS底层发生某些事件时,会推送信号给UI。槽函数的签名格式// userdata : tanslate user's data// params : any paramsvoidsignal_callback_t(void* userdata,calldata_t* params)callda...

2019-11-28 15:54:46 831

原创 [OBS] 插件的设计和开发

OBS使用了插件的设计,极大的增强了扩展性,本文做简要介绍。每个插件就是一个动态链接库(dll),OBS应用程序启动后,会在指定路径下遍历和动态加载所有dll,并尝试从dll中获取插件相关的导出接口。一些插件的公共函数都定义在该头文件中,尤其是导出接口:#include <obs-module.h>每个插件都有一个locale文件夹,里面有很多ini文件(多国语言)...

2019-11-28 15:46:07 2879 1

原创 [CEF] 官方demo(cefClient)部分命令行参数的释义

cefclient.exe启动时的命令行参数定义在client_switches.h中,其中部分参数的注释如下(我看的cef版本号是3626):如果指定了该参数 就不需要调用CefRunMessageLoop()和CefQuitMessageLoop(),将cef嵌入到MFC中需要使用该参数const char kMultiThreadedMessageLoop[] = "multi-th...

2019-03-18 11:57:09 4268

原创 [CEF] 官方资料汇总 (含JaveScript与C++通信、IPC)

CEF的branch都是发布的正式分支(开发自己的app时使用branch的代码) Master是平时的开发分支官方已编译好的dll,因为涉及到版权问题,不能播放很多音视频,需要自己手动修改配置并重新编译chromium。官方资料:https://bitbucket.org/chromiumembedded/cef/wiki/Home建议先看完资料再看官方demo,不然代码逻辑...

2019-03-17 19:13:20 1648

原创 [D3D11] 在游戏画面中添加弹幕的实现原理

使用场景:主播在直播游戏的时候,如果游戏是全屏模式,主播无法看到直播软件中的聊天消息。如果添加了游戏弹幕,可以在全屏游戏的时候在游戏界面中看到聊天消息。实现原理:1.编写自己的dll和注入dll的代理程序,将dll注入到游戏进程2.dll中hook了D3D11的渲染函数(比如Present)3.直播软件中获取聊天消息的rgba数据,并通过IPC将数据传递到dl...

2019-03-14 18:29:52 1462

原创 [OBS] 构建browser source(cef浏览器源)的步骤

1.下载安装CMAKEhttps://cmake.org/2. 下载obs-browser和obs-studio源码https://github.com/obsproject/obs-browserhttps://github.com/obsproject/obs-studio3. 下载已发布的cefbranch (注意要匹配obs-browser工程对应的版本...

2019-03-14 17:58:45 7378 2

原创 GDIPlus渲染文字时 自动忽略开头、末尾的空格

GDIPlus在渲染文本、计算文本尺寸时,会自动忽略开头和末尾的空格,如何解决?创建StringFormat时,增加flag:Gdiplus::StringFormatFlagsMeasureTrailingSpaces增加该flag后,空格不再被忽略了,但是发现多行文本的水平对齐也有问题了:换行符也会被GDIPlus作为可见字符参与到对齐计算中(如图)可以猜到,第1、2行出现...

2018-09-12 11:53:30 429 1

转载 [Debug] VisualStudio 如何实现同时调试主程序以及其启动的子进程?(仅支持VS2013及其以上版本)

原文链接:https://blogs.msdn.microsoft.com/devops/2014/11/24/introducing-the-child-process-debugging-power-tool/We’ve heard your feedback that you want the Visual Studio debugger to support child process d...

2018-06-11 14:33:22 2239

原创 [Facebook] 直播开发概述

因工作原因,需要调用Facebook的API,进行账号登录、创建直播、评论操作等需求,调查了Facebook的开发文档。写了一份Facebook直播开发的API 文档,以及抓包信息,可移步到CSDN下载页面:http://download.csdn.net/download/felicitywsh/10242111相关文档的链接,整理如下:API测试https://de

2018-02-06 14:07:37 2152 3

原创 [MFC] 无边框窗口的Resize拖动效果的实现(下):子窗口覆盖,导致主窗口热点区无法响应WM_NCHITTEST

http://blog.csdn.net/felicityWSH/article/details/68486466这篇博文讲解了如何实现无边框窗口的Resize拖动效果,文中提到,需要响应主窗口的WM_NCHITTEST消息,检测鼠标是否在resize热点区并返回HTTOPLEFT、HTBOTTOM等相应的结果。但是,如果子窗口覆盖了主窗口的热点区,当鼠标在热点区移动时,主窗口是无

2017-05-10 09:52:55 2741

转载 [D3D11] C++与GPU通信:在C++代码中更新HLSL中的常量缓冲区

本文的代码,来自D3D11微软自带的project-7 demo。先贴出一段HLSL代码,本文将以这段HLSL为例,说明如何在C++中更新HLSL的常量:Texture2D txDiffuse : register(t0);SamplerState samLinear : register(s0);cbuffer cbNeverChanges : register(b0){ m...

2017-05-09 16:36:11 2102

原创 [DirectSound] 基于DirectSound的音频均衡器实现

什么是音频均衡器?通过均衡器 可以让声音达到不同的听觉效果:古典、爵士、流行、增强重低音、摇滚等等。如图是酷狗音乐播放器的均衡器界面:在讨论均衡器的实现原理之前 先界面几个音频相关的名词:频率声音在一个周期的震动次数 单位是赫兹(hz)不同频率的声音 其音色是不一样的,频率越低声音就越低沉人的耳朵能听到的频繁范围是20Hz~20000Hz音色不同频率的声

2017-04-18 17:00:19 2500

原创 [MFC] 几种子控件半透明效果的实现办法

什么是 ?如下图所示 美图秀秀中间的四个按钮 边缘都有椭圆效果:熟悉MFC开发的都知道 虽然四个按钮的边缘是椭圆的 实际上椭圆之外的角落里 也属于子控件的窗口区域 即:如下图所示 虽然子控件的四个角是椭圆 但是椭圆之外的区域(即黑框与黄框之间的区域) 也属于子控件的窗口区域很多场景下 需要在子控件的区域显示其父窗口的画面 表现出“子控件的这部分是透明的”这个区域

2017-03-30 15:55:40 2188

原创 [MFC] 无边框窗口的Resize拖动效果的实现(上)

当窗口是Resizing类型时 会自带resize效果(鼠标悬停在窗口边缘时 会有resize光标 点击拖动可以修改窗口的宽高)但是实际的窗口程序开发中 通过需要去掉自带的border 此时窗口就没有自带的resize功能了如果实现?覆盖实现这几个窗口消息:WM_NCHITTESTWM_SETCURSORWM_NCLBUTTONDOWN代码如下:#d

2017-03-30 14:24:15 3281 1

原创 若干种窗口画面的捕获方法

在直播项目中 需要捕获某个窗口的画面并共享 总结了如下几种场景中窗口的捕获方法1、dc拷贝(BitBlt、PrintWindow)这是最基本的方法 直接拿到窗口dc 然后从dc中拷贝窗口画面 可优先使用PrintWindow 因为该API可以捕获窗口超出桌面范围的区域。需要注意的是,PrintWindow会触发目标窗口执行WM_PAINT,并且执行完毕后才会返回,所以可能造成目标窗口...

2017-03-15 13:16:09 6899 13

原创 [MFC] WS_EX_LAYERED 实现透明异形窗口(酷狗歌词、360加速球、窗口边缘阴影)

关键词:WS_EX_LAYERED、 UpdateLayeredWindow PC应用不少都有透明的异形窗口 比如酷狗音乐播放器的歌词窗口、360桌面加速球如图:这类窗口的实现 可以采用WS_EX_LAYERED属性(详情请MSDN)将窗口设置WS_EX_LAYERED和WS_EX_TRANSPARENT属性  并使用函数UpdateLayeredWin

2017-03-15 09:29:10 3399

原创 [MFC] 无法响应OnMouseLeave事件的若干种解决办法

问题背景》UI逻辑中 经常有这样的应用场景:在鼠标进入窗口区域时做一些操作 离开鼠标区域时做一些清理操作举例:鼠标进入窗口区域时 弹出tooltips  离开窗口区域时 隐藏tooltips但是OnMouseLeave并不一定就会响应 比如在鼠标进入窗口后 按下鼠标左键并将鼠标移除窗口区域 再松开鼠标 这样的情况下 OnMouseLeave不一定会响应问题来了:如果有些清理

2017-03-05 16:49:18 6316

原创 [Debug] VisualStudio 数据断点 监控指定内存的写操作

功能描述:在vs中添加一个数据断点 设置指定的内存地址和内存长度后 如果代码中有对这段内存的写操作 vs会自动断点到对应的代码中注意:与普通断点不同的是 添加数据断点需要在启动Debug运行程序后 才可以添加(因为添加时要设置内存地址 只有进程启动了才有确定的内存地址)我用的最多的场景》在模块A中定义了变量int a = 1; 没有任意地方在修改a的值经历了几个世纪的运

2017-03-03 17:47:47 4133

原创 [MFC] 界面闪烁若干种解决办法

总结了工作中使用过的如下几种方法 ,具体原理就不说了,如果有相应的UI开发经验 应该很容易懂1、双缓冲绘图(这个是最基本的  不详说了 可自己搜索相关信息)2、OnEraseBkgnd { return TRUE; }这一种也没什么好说的3、对窗口设置WS_CLIPCHILDREN和WS_CLIPSIBLINGS风格 至于为什么可以解决闪烁 可MSD

2017-03-03 15:04:31 6763

原创 [Debug] VisualStudio 远程调试

(一) 试用场景想在远程机调试代码 但远程机无开发环境(二) 步骤1、将本地如下路径的文件夹,拷贝到远程机(实际路径根据自己的安装情况而定) D:\Program Files (x86)\Microsoft Visual Studio 10.0\Common7\IDE\Remote Debugger\x642、在远程机运行x64/x86下的 m...

2016-01-12 15:57:49 1116

OBS (27版本) 中音视频数据流向总结

数据流向图

2022-05-26

How to compile SQLCipher on Windows.rar

SQLCipher-4.4.0 How to compile SQLCipher on Windows

2020-07-21

How to compile SQLCipher on Windows.mp4

(跑通sqlcipher-4.4.0)https://www.youtube.com/watch?v=SFHGeetZ0po

2020-07-21

rtmp规范翻译 v1.0.pdf

rtmp规范翻译 v1.0.pdf

2019-07-26

cef_binary_3.3578.1870.gc974488_windows64.zip

cef_binary_3.3578.1870.gc974488_windows64.zip 支持H.264播放

2019-06-26

cef_binary_3.3578.1870.gc974488_windows32.zip

3.3578.1870.gc974488 支持H.264播放 支持H.264播放 支持H.264播放

2019-06-26

H.264新一代视频压缩编码

H.264新一代视频压缩编码

2019-04-17

FFmpeg_入门到精通(标准版-完整)

FFmpeg_入门到精通(标准版-完整)

2019-02-21

demo socket pipe

demo socket pipe

2019-02-19

DirectShow开发指南 源码+pdf

DirectShow开发指南(源码+pdf)

2019-02-19

WM_LAYERED实现半透明特效 酷狗歌词

WM_LAYERED实现半透明特效 酷狗歌词

2019-01-08

ffmpeg学习资料

ffmpeg学习资料

2018-12-26

VC助手 支持VS2015 亲测可用

VC助手 支持VS2015 亲测可用 VC助手 支持VS2015 亲测可用 VC助手 支持VS2015 亲测可用

2018-12-07

D3D11 2D window 正交矩阵

D3D11 2D window 正交矩阵 VS2015

2018-11-19

AddString draw text demo

GDIPlus AddString draw text

2018-08-28

VC助手 支持VS2015

亲测可用 支持VS2015 亲测可用 支持VS2015 亲测可用 支持VS2015亲测可用 支持VS2015亲测可用 支持VS2015亲测可用 支持VS2015亲测可用 支持VS2015亲测可用 支持VS2015

2018-05-27

Facebook 直播开发教程(含教程和网络包)

整理了Facebook的直播开发教程 以及网络抓包 整理了Facebook的直播开发教程 以及网络抓包

2018-02-06

NSIS 用户手册

很详细的NSIS教程

2017-08-28

MFC 五子棋 VS2013 美化UI

MFC 五子棋 VS2013。实现功能:悔棋、动态调整棋盘、棋谱保存与播放、美化了UI

2017-05-23

MFC 五子棋 VS2013 下载

MFC 五子棋 VS2013。实现功能:悔棋、动态调整棋盘、棋谱保存与播放

2017-05-15

D3D9 alpha混合 demo (自定义alpha和纹理自带alpha)

VS2013工程,代码已包含了dxsdk目录,下载后可直接通过编译。是红龙书自带的第七章demo,展示了D3D9的alpha混合 (含自定义alpha和纹理自带alpha)

2017-04-26

基于MFC、GDI+ 的粒子系统:实现玫瑰花飞舞

基于MFC、GDI+ 的粒子系统:实现玫瑰花飞舞 玫瑰花在电脑桌面满屏飞舞

2017-04-25

基于gif.h的桌面录像 生成gif文件

VS2013; 基于gif.h的桌面录像; 选定桌面区域 录像生成gif文件;

2017-04-17

无边框窗口的resize拖动实现

vs2013 无边框窗口的resize拖动的实现

2017-03-30

生成二维码 QRGenerator

亲测可用

2017-03-06

vc助手 番茄助手 支持vs2008 ~ vs2013 亲测可用

支持vs2008 ~ vs2013 亲测可用

2017-03-06

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除