![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
C++
文章平均质量分 63
石走刀口
音视频开发,感兴趣的很多,会的很少。
展开
-
ubuntu Setforeground 前台应用切换
windows 平台有Setforeground 这个api,可以根据进程ID,将某个应用的窗口切换到前台。ubuntu 并没有类似的api, 这里借助xdotool 这个第三方库,实现类似的功能。有这样一个系统,一个服务主进程用于接收指令,其它服务是独立的gui 程序,服务进程根据命令将对应的gui 程序切换到前台。git clone 后,直接make,生成动态库libxdo 和执行程序程序 xdotool。search 返回的ID 如果有多个,是因为一个进程有多个窗口,需要根据窗口标题再筛选。原创 2023-11-20 18:19:20 · 186 阅读 · 0 评论 -
libopus 实现pcm 编码到opus
opus 是一种音频格式,常用于语音通话、视频会议中。最近做了个pcm 到opus 的编码,踩了不少坑,特此记录一下。原创 2022-08-29 11:14:07 · 3815 阅读 · 6 评论 -
Windbg 快速定位C# 动态库依赖问题
部署 C# windows 程序的时候,经常会遇到在开发环境中跑得好好的,在客户电脑莫名奇妙找不到库,导致无法正常启动程序。话不多说,正文开始。然后在出现问题的电脑执行相同的操作,得到类似的信息,对比信息,可以知道大概是确实啥库导致的,这里缺少的是 MSVCP140.dll。还有一种情况是dll库都在,但是加载dll库报错,也可以通过加载的dll 顺序看出来。在开发环境下,运行windbg,打开执行文件,按F5 让程序跑起来。会看到正常情况下dll加载信息,这些就是正常运行需要用到的dll。...原创 2022-08-26 18:02:26 · 587 阅读 · 0 评论 -
C++ websocket 使用体验
websocket 是一个基于tcp的应用层协议,在网页端开发经常会用到。一开始我以为websocket库也像C#、java、javascript 那样,几句话搞定。using System;using WebSocketSharp;namespace Example{ public class Program { public static void Main (string[] args) { using (var ws = new WebSo...原创 2021-11-30 14:52:39 · 903 阅读 · 0 评论 -
VSCode C/C++ 多文件远程开发 -- gdb
vscode 是一个开的文本编辑器,通过插件可以编写、调试程序,用于Linux 远程开发非常方便,再也不用1、基本常识launch.jsonlunch.json 用于配置vscode 如何调试程序tasks.json指示 vscode 如何编译源码,获得生成文件c_cpp_properties.json这文件影响 C/C++ 插件的智能提示,不影响编译,可加可不加。2、文件配置launch.json{ // 使用 IntelliSense 了解相关属.原创 2021-10-28 21:46:17 · 422 阅读 · 0 评论 -
Webassembly 学习3 -- 打造web端的aac 播放器
1、引言 aac 是很常见的音频格式,压缩率比mp3 还高,H5 支持从audio 标签文件读取aac 文件并播放,但不支持从网络流中直接读取。这里借助webassembly 技术,将aac 转码成pcm码流,再借助web audio api 实现aac音频播放。主要用到的开源库有faad、pcm-player 2、编译 进入faad 官网,http://www.linuxfromscratch.org/blfs/view/svn/multimedia/faa...原创 2021-07-04 14:59:04 · 1556 阅读 · 1 评论 -
davfs & nextclound 创建文件出现invalid argument
有同事反映,davfs 挂载nextcloud webdav网盘后,无法进行文件读写。我用坚果云试了一遍,读写操作正常,换到nextcloud,就无法创建文件,并提示无效参数,是只好看源码定位。 修改/etc/davfs2/davfs2.conf 文件,添加字段debug most,表明尽可能记录日志信息,日志文件...原创 2021-05-09 15:28:01 · 2746 阅读 · 0 评论 -
Webassembly 学习2 -- Js 与C 数据交互
1、简单的C/C++ 编写 我们可以将C代码 编译成wasm 文件供js 调用,C文件的写法和我们普通的C写法并没有太大区别,不需要太多的封装,连main 入口都可以丢弃。例如C实现一个简单的加法计算#include <stdio.h>int add(int a, int b){ int sum = a + b; printf("计算结果 %d\n", sum); return sum;} 编写脚本,编译C 文件成wa...原创 2021-04-14 17:30:52 · 1161 阅读 · 0 评论 -
davfs 移植到android 踩坑之旅
1、Davfs 简介 Davfs 是一个支持webdav 协议的库,可以等支持webdav 协议的挂载到本地文件系统,原创 2021-04-06 13:49:12 · 1631 阅读 · 0 评论 -
在DLL 中输出调试信息
在C++ dll 中使用printf输出调试信息,可能会出现输出信息不及时的问题(尤其是在C#项目中),可以使用OutputDebugString 函数代替。这里为了方便,将OutputDebugString封装成一个函数,顺便支持不定长参数和时间打印,便于使用。#include <windows.h>#include <stdio.h>#include <stdarg.h>void ShowDbgInfo(const char* data, ...)..原创 2020-09-03 16:55:01 · 4372 阅读 · 1 评论 -
Windows 下内存泄露定位之CrtDumpMemoryLeak
看过很多windows下关于CrtDumpMemoryLeaks的文章,很多照着做,还是定位不到具体哪一行泄露的,这里总结一下,方便大家排查。1、宏替换#define _CRTDBG_MAP_ALLOC#include <stdlib.h>#include <crtdbg.h>#ifdef _DEBUG #define new new(_NORMAL_BLOCK, __FILE__, __LINE__)#endif在头文件上,加上一下代码,替换掉...原创 2020-06-07 14:10:27 · 723 阅读 · 0 评论 -
OpenFec 基本使用
OpenFec(官网:http://www.openfec.org/)是一个项目,主要处理正向纠错码,在通信中加上一些冗余数据,在网络质量差、丢包的时候,可以根据这些冗余数据恢复出原来的数据。目前OpenFec项目支持以下编码:(1) Reed-Solomon over GF(28)(2) Reed-Solomon stable codec over GF(2m)(3) ...原创 2020-04-26 10:40:18 · 3496 阅读 · 0 评论 -
Windows 下软件部署踩坑之DLL not find
是原创 2020-06-07 15:06:05 · 677 阅读 · 0 评论 -
LNK1181 无法打开输入文件“winmm.lib”
在属性-> VC++目录->引用目录 插入$(LibraryPath),真实路径在E:\Windows Kits\10\Lib\10.0.17134.0\um\x86,SDK是10.0.17134.0,重新编译通过。原创 2020-01-16 22:56:29 · 1950 阅读 · 0 评论 -
Intel qsv + ffmpeg 硬解h264
Quick Sync Video,简称qsv,是英特尔推出的集成加速接口,使用该接口可以硬解h264,提高解码效率的同时降低CPU占用率,ffmpeg 4.4.2中 doc\example中有一个qsvdec.c的demo,我在此基础上进行修改,实现了硬解h264。 环境准备 下载安装Intel Media Mdk,https://software.intel.com/en-us...原创 2020-01-13 09:49:27 · 6669 阅读 · 8 评论