自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(84)
  • 收藏
  • 关注

原创 记录一个`ffmpeg`的`swscale`库crash的例子

摘要:本文记录了一个由ffmpeg的swscale库引发的SIMD越界访问导致的崩溃案例。当外部API分配的RGB24内存指针转换为YUV420P格式时,若指针末尾区域不可访问,就会触发崩溃。文中提供了Windows和Linux平台下的复现代码示例,展示了如何通过内存保护机制模拟该问题,并指出最终崩溃发生在lumToYV12函数中。该问题与libswscale/x86/swscale.c和libswscale/input.asm中的汇编代码实现相关。

2026-01-03 14:56:38 332

原创 mac ffmpeg vcpkg

【代码】mac ffmpeg vcpkg。

2025-12-30 17:37:53 138

原创 [c++] cpp快速添加sqlite_orm

本文介绍了如何在C++项目中快速集成SQLite ORM库。首先需要下载SQLite amalgamation和sqlite_orm源码。然后为SQLite源码添加CMake构建配置,指定编译选项。最后在项目CMakeLists中通过add_subdirectory引入这两个依赖库。整个过程简洁高效,适合需要快速使用SQLite ORM功能的C++开发者。

2025-12-06 18:15:29 286

原创 [python] python最佳实践

本文总结了Python开发中的最佳实践,包括常用库推荐:进度条工具tdqm、异步编程asyncio、参数解析argparse、路径处理pathlib、模板引擎jinja2以及正则表达式re。这些库覆盖了Python开发中的常见需求,能够提高开发效率和代码质量。

2025-11-24 16:23:13 138

原创 [vscode] vscode的python解释器问题

vscode的python智能提示中,不一定使用的。下的python,可能是全局的,

2025-10-28 14:22:47 319

原创 音视频-色域

本文介绍了使用Python生成不同色域测试视频的方法。通过FFmpeg工具链,实现了对BT.601、BT.709和BT.2020等多种色域标准的支持,并包含HDR10和HLG等HDR配置选项。代码提供了视频参数探测(probe_video)和视频生成(generate_videos)两个核心功能,可根据指定色域、色彩范围、位深度等参数自动生成测试视频。其中包含详细的FFmpeg参数配置,包括色彩空间转换、编码器私有参数设置等关键技术细节,适用于音视频开发中的色彩测试场景。

2025-09-14 16:14:47 1111

原创 simd笔记

本文摘要了SIMD指令集的核心概念:1)一元运算如绝对值;2)二元运算包括加减法和位运算;3)混合操作根据掩码选择向量元素;4)广播指令复制数据;5)数据加载/存储指令;6)比较与测试指令;7)置换与重排指令。重点说明了各指令类型的语义特点和典型应用场景,如混合操作的选择机制、广播指令的复制功能等,为SIMD编程提供了基础概念框架。

2025-08-29 16:50:21 403

原创 uac提权

这段Python代码实现了以管理员权限重新运行当前脚本的功能。它首先检查是否已具有管理员权限,如果没有则通过Windows API的ShellExecuteW函数请求提升权限,会弹出UAC对话框让用户确认。代码使用了ctypes模块调用Windows系统函数,通过拼接参数确保命令行参数正确传递。当检测到无管理员权限时,会退出当前进程并重新启动带管理员权限的进程。

2025-08-18 19:23:31 399

原创 cuda笔记

本文简要介绍了NVIDIA性能基元(NPP)库的常用模块,包括nppc核心功能、nppi图像处理、npps信号处理、nppig几何变换、nppif图像滤波和nppisu图像统计模块。表格形式清晰展示了各模块名称及其主要用途,如nppi模块提供图像格式转换等处理功能。

2025-07-15 21:15:37 462

原创 正则表达式替换中使用 g<0> 引用整个匹配的内容

摘要:本文演示了Python正则表达式中使用\g<0>引用整个匹配内容的示例。代码展示了如何通过re.sub()方法匹配字母并在每个字母后添加数字1,其中\g<0>代表匹配到的单个字母。运行示例将"abc def ghi"转换为"a1b1c1 d1e1f1 g1h1i1",说明了\g<0>在模式替换中的实际应用。

2025-07-14 18:22:30 393

原创 cpp减小可执行文件、动态库大小

本文介绍了GCC和MSVC编译器优化程序大小的编译选项。对于GCC,推荐使用-O3、-ffunction-sections、-fdata-sections等编译选项,配合-Wl,--gc-sections链接选项。MSVC方面则建议使用/O2、/GL、/Gw等编译选项,结合/LTCG、/OPT:REF等链接选项。文中还提供了对应的CMake配置示例,帮助开发者快速集成这些优化设置。这些选项主要通过函数级链接、删除未引用代码和数据、合并相同代码段等技术手段来减小最终生成的可执行文件体积。

2025-07-14 14:31:51 295

原创 ffmpeg-api记录

本文简要介绍了FFmpeg API中的三个核心组件:Frame、Packet和AVAudioFifo。Frame部分说明了基于引用计数的帧操作方法;Packet部分未展开说明;AVAudioFifo则介绍了音频重采样时用于缓存AAC帧的功能,包括分配、大小查询、读写操作等接口。

2025-07-11 17:13:52 374

原创 opencv裁剪和编译

本文提供了一个OpenCV编译脚本,用于定制化构建不同配置的库版本。脚本支持x64和x86架构,包含基础模块(core/imgproc/imgcodecs)和扩展模块(stitching等)两种编译选项。通过CMake参数控制,可关闭不必要的功能(如JS绑定、测试、文档等),仅保留所需模块,并生成静态库。脚本实现了Release和Debug两种配置的完整编译安装流程,输出到指定目录。注释部分展示了如何清理构建目录和基础模块的编译命令,实际执行的是包含stitching等高级模块的编译流程。

2025-07-03 11:03:50 281

原创 onnxruntime编译

本文介绍了在Windows系统上编译ONNX Runtime(v1.22.0)的关键步骤:1) 下载源码并设置递归子模块;2) 修改编译脚本以禁用警告作为错误;3) 使用build.bat进行编译,配置Release模式、共享库和DirectML支持;4) 注意网络环境要求,并解决第三方库(如Eigen)的版本冲突问题。编译完成后可生成所需的动态链接库,适用于深度学习推理加速场景。

2025-07-02 01:14:13 502 1

原创 tauri+solidjs模板

使用Tauri与SolidJS创建桌面应用模板 摘要:本文介绍如何快速创建基于Tauri和SolidJS的桌面应用程序模板。通过运行npm create tauri@latest . --yes命令,可以一键生成项目基础结构,其中Tauri提供跨平台桌面应用框架,SolidJS作为前端UI库。该模板默认配置了必要依赖和构建工具,开发者可在此基础上立即开始项目开发,无需手动配置开发环境。这种方法简化了现代桌面应用程序的初始设置流程。

2025-06-30 15:19:11 518

原创 rust设置镜像

为 Rust 安装设置国内镜像可加速下载。两种方法:1)临时设置环境变量(RUSTUP_DIST_SERVER 和 RUSTUP_UPDATE_ROOT)指向清华/科大镜像;2)全局配置,在 .cargo/config.toml 文件中添加镜像源(清华、科大或 rsproxy 的 URL)。推荐清华镜像(https://mirrors.tuna.tsinghua.edu.cn/rustup)或科大镜像(https://mirrors.ustc.edu.cn/rustup),配置后安装命令如常运行即可。

2025-06-29 02:06:44 971

原创 升级 PowerShell 7

摘要:升级PowerShell 7可通过两种简单方法完成:1)通过微软商店直接安装;2)使用winget命令行工具执行安装命令"winget install --id Microsoft.PowerShell --source winget"。这两种方式都能快速完成PowerShell 7的升级安装。(约90字)

2025-06-27 15:05:29 718

原创 windows cgo环境配置

本文简要介绍了在Windows系统下配置CGO开发环境的步骤:首先安装MSYS2(提供Unix工具链),然后通过pacman安装Mingw-w64工具链(包括gcc、make等),最后配置系统环境变量。整个过程涉及下载安装包、更换软件源、安装必要编译工具,以及设置PATH变量以识别工具链位置。该配置使Windows系统能够支持Go语言的CGO功能。

2025-06-23 16:25:47 584

原创 js类似python的faker的库

文章摘要: JavaScript中有两个类似Python Faker的库可用于生成假数据。1. faker.js:通过npm安装后,可生成各种类型的随机数据如UUID、姓名、邮箱地址等。2. casual:安装简单,提供快速生成假数据的功能,包括UUID、全名、邮箱等。两者都支持生成结构化的假数据对象,输出格式化的JSON。这些库适用于测试、开发原型等需要模拟数据的场景,使用方法简单直观。

2025-06-18 18:59:03 281

原创 ff数据解析和解码

本文展示了一个使用FFmpeg检查媒体文件合法性的实现,主要包含以下内容: 使用RAII技术实现的资源管理类scope_guard,通过模板化设计支持任意可调用对象和参数。 自定义FFmpeg日志回调函数,用于捕获和处理警告信息。 合法性检查函数is_valid_image,通过以下步骤验证媒体文件: 初始化AVFormatContext并设置自定义IO上下文 打开输入流并查找视频流信息 创建解码器上下文并初始化 处理数据包并尝试解码帧 代码充分利用C++特性,包括RAII、lambda表达式、模板和标准库

2025-06-12 19:06:49 434

原创 图像解码失败检测

图像解码失败检测方法摘要 本文介绍了一种基于经典算法的图像解码失败检测方案,用于识别视频解码失败时产生的重复或高相似度行/列的异常情况。该方法采用多种分析技术:1)行间相似性矩阵计算(皮尔逊相关系数、余弦相似度);2)重复行检测(哈希值比对);3)行模式分析(差异计算、周期性检测);4)傅里叶变换频谱分析。算法通过统计每行的均值、标准差、熵值等特征,结合相关性和周期性分析,有效识别解码异常造成的图像失真。该方法不依赖AI,计算效率高,适用于实时检测场景。

2025-06-12 14:17:47 353

原创 记录rust滥用lazy_static导致的一个bug

本文记录了一个因滥用lazy_static导致线程饿死的Rust bug。当任务获得Mutex锁后崩溃,其他线程因无法获取锁而饿死。通过示例代码展示了该问题现象。解决方案包括:1)任务独立时移除锁;2)建议多线程编程尽量使用纯函数,避免全局变量依赖。若必须依赖,推荐使用DAG框架而非手动管理。类似场景在C++20协程中也存在。文章强调多线程编程中资源管理的注意事项。

2025-06-11 11:24:12 753

原创 前端可视化

节点可视化工具

2025-05-23 15:43:46 619

原创 qml记录

显示类似ListModel这样的数据时,cpp不能直接使用std::vector<std::string, std::string>这样的结构,需要继承qt官方的某些接口。这里需要继承QAbstractListModel。其实就是根据状态修改PropertyChanges这个东西,PropertyChanges的语义就是将某些属性修改为新的值。

2025-05-22 15:18:28 299

原创 React 笔记[1] hello world

明白了!既然你已经安装了 Node.js,我们可以。我将一步步列出操作指令,你只需要在终端里依次执行。

2025-05-08 19:16:25 628

原创 qt6.9下载和安装

【代码】qt6.9下载和安装。

2025-05-08 09:47:45 2011

原创 牛顿迭代法笔记

该切线的斜率为f’(x_0),根据点斜式可得切线方程为y - f(x_0)=f’(x_0)(x - x_0)。令切线方程中的y = 0,可得到x = x_0-\frac{f(x_0)}{f’(x_0)},将其记为x_1,这就是通过牛顿迭代法得到的下一个近似值。然后重复上述过程,用x_1代替x_0,不断计算新的近似值x_{n + 1}=x_n-\frac{f(x_n)}{f’(x_n)},随着迭代次数的增加,x_n会逐渐逼近f(x)=0的真实根。

2025-05-06 11:48:00 322

原创 简单音频比较

音频相似度比较

2025-04-29 10:46:44 557

原创 图像后处理

ocr后处理;opencv;cmake

2025-04-23 18:33:59 693

原创 py默认框架和代码

平常工作日常需要频繁写python脚本,留下一个常用的模板。

2025-04-22 18:16:53 256

原创 老版本vs下载

https://c2rsetup.officeapps.live.com/c2r/downloadVS.aspx?sku=community&channel=Release&version=VS2022https://c2rsetup.officeapps.live.com/c2r/downloadVS.aspx?sku=enterprise&channel=Release&version=VS2022https://c2rsetup.officeapps.live.com/c2r/downloadVS.a

2025-04-22 00:52:53 763

原创 markdow笔记&记录

该文章是一份Markdown语法速查笔记,旨在帮助用户快速查阅和掌握Markdown的基本语法。文章涵盖了标题、段落、换行、文本强调、引用、列表、代码语法、分隔线、链接、图片、代码转义以及HTML标签显示等多个常用场景。每个语法点都通过表格形式展示了原始代码与渲染后的效果,便于用户对照学习。此外,文章还推荐了VSCode中常用的Markdown插件,如Markdown Preview Enhanced和Markdown All in One,以提升编辑体验。整体内容简洁明了,适合作为日常写作的参考工具。

2025-04-18 14:25:36 393

原创 # 工具记录

本文记录了一系列实用的开源工具,涵盖多个功能领域。键盘操作可视化工具Keyviz可帮助用户监控键盘输入;OpenArk64提供系统优化功能;Dufs-WebUI用于文件共享;Zotero是文献管理工具;CFF Explorer用于分析文件格式;NoFences优化Windows桌面布局;Freeplane是开源思维导图软件;Little Registry Cleaner用于注册表清理;Ventoy简化操作系统安装;Koodo Reader是开源电子书阅读器;System Informer则提供系统性能监控功

2025-04-15 15:56:33 233

原创 SourceForge下载加速

【代码】SourceForge下载加速。

2025-04-15 14:12:59 1402

原创 visual studio安装字体

通过以上步骤,您可以轻松将 Visual Studio 的字体更换为 JetBrains 系列字体,提升代码阅读体验。以下是在 Windows 系统中将 Visual Studio 字体更换为 JetBrains 字体(如。若对 Visual Studio 的字体调整仍不满意,可尝试 JetBrains 官方 IDE。注意:安装完成后,建议重启 Visual Studio 以确保字体生效。返回代码编辑器,输入代码验证字体是否生效(例如,检查字符。字体,并提供更完善的字体渲染和连字支持。

2025-04-15 10:48:29 2831

原创 python快速生成cmake项目

print(f"正在生成 CMake 项目结构 (项目名称: {args.name})…print(“CMake 项目结构已成功生成!

2025-04-07 15:18:33 855

原创 cmake阅读笔记

print(f"正在生成 CMake 项目结构 (项目名称: {args.name})…print(“CMake 项目结构已成功生成!

2025-04-07 15:12:08 1001

原创 paddle ocr

将模型保存到当前目录。

2025-03-27 19:48:35 716

原创 [rust] rust学习

✅。

2025-03-12 12:30:58 829

原创 llama.cpp编译

【代码】llama.cpp编译。

2025-03-09 23:32:34 1668

空空如也

空空如也

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

TA关注的人

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