首页
学习
活动
专区
圈层
工具
发布

#c++

使用广泛的计算机程序设计语言。通用程序设计语言,支持多重编程模式

从零做播放器,第一个硬解实现为什么先接 D3D11

用户1290566

前面几章解出来的帧都躺在内存里,每帧还要再传一次才能上屏。硬解要做的就是把这步搬到显存里,让帧从解码器出来时本来就在 GPU 上。难点在每个平台都是自己那一套:...

100

从零做播放器,画面和声音是怎么对上的

用户1290566

视频侧按帧率刷,音频侧的节拍归设备,两条链各自带着自己的时间戳往前走,把它们放到同一条时间线上是这一篇要解决的事。做法是给每条轨配一个时钟,把「现在播到哪」算成...

3710

从零做播放器,声音是怎么送到设备上的

用户1290566

视频那条链把帧画到屏幕上就算走完了,音频这条链还差最后一跳:数据得交给设备,由设备按自己的节奏放出去。这一跳带来的东西和前一条链几乎处处不同——节奏的源头从播放...

7810

从零做播放器,一帧是怎么画到屏幕上的

用户1290566

帧躺在视频轨的队列里,要画到屏幕上,先得决定这套渲染怎么分——分法不是照功能切的,是照着会变的地方切的。分层定下来,一帧有两条去处。这篇先讲清三个角色各管什么、...

11710

从零做播放器,码流怎么一步步变成帧

用户1290566

框架和数据源都定下来,接着要定死的是数据在播放器里怎么走:io → 包队列 → 解码 → 帧队列 → 渲染。这条线看着是直的,跑起来两头都被拽着。链上有三个干活...

8510

C++ 游戏编程:从语言特性到一帧画面的完整旅程

资源shanxueit.com

1. 值语义与移动语义。游戏对象频繁创建销毁,std::move 与移动构造避免了不必要的深拷贝。比如把缓冲区从一个容器转移到另一个容器,用移动而非复制,是性能...

13010

从零做播放器,数据怎么接进来

用户1290566

骨架立好、注册表也上了,播放器还是个不会出声的空壳——没有水进来。这一步接第一条进水管:一个地址进去,一个一个的包出来。整条路要回答四件事:这一层对外露几个动作...

11410

从零做播放器,命令怎么排队、状态怎么走

用户1290566

线程骨架立好之后,马上遇到第二个问题:界面要暂停,要跳进度条,网络层在报错,好几路都想改播放器的状态。我的答案是它们都不直接改——所有控制动作打包成命令,排进一...

8800

从零做播放器,先立线程骨架和注册表

用户1290566

空工程立起来,第一件往里放的东西不是解码器,也不是渲染,是骨架。音视频是一条流,读流、解码、出画面、出声音,每一段的快慢都不一样,挤在一条线程里就互相堵;而这条...

12300

ps2-web-recomp:浏览器里跑 PS2 游戏的静态重编译方案

YourTools

ps2-web-recomp 把 PlayStation 2 游戏的机器码提前翻译成 C++ 再编译为 WebAssembly,避开传统模拟器的解释执行瓶颈。

16310

C/C++ 安全开发:从内存模型到防御性编程的工程实践

资源大佬 jzit-top

C/C++ 赋予开发者对内存的完全控制权,这也是漏洞的根源。专业安全开发的核心不是"避免使用指针",而是建立一套贯穿编码、编译、测试的防御体系:理解未定义行为、...

20210

写给 C++ 工程师的 OpenClaw.NET 上手指南:用你熟悉的 C++ 思维,跑起一个生产级 AI Agent

张善友

如果你是 C++ 工程师,你的世界观大概是:产物必须是原生机器码、资源生命周期必须确定、抽象不该有隐藏开销。Agent 框架的主流世界是 Python / No...

24810

内存安全翻车现场的罪魁祸首,根源就在这三步里?

蛋先生DX

腾讯 | 前端研发 (已认证)

温馨提示:另有配套视频版,附带图解演示,观感不同,欢迎到各大视频平台搜索同名标题或【蛋先生说识】

33610
领券