-
Linux ALSA 音频系统:物理链路篇02
Platform概述中提到音频 Platform 驱动主要用于音频数据传输,这里又细分为两步:启动 dma 设备,把音频数据从 dma buffer 搬运到 cpu_dai FIFO,这部分驱动用...
05月04日[编码文章]浏览:13
-
C++:如何正确的定义一个接口类(定义一个接口compute)
C++中如何定义接口类?首先给接口类下了定义:接口类应该是只提供方法声明,而自身不提供方法定义的抽象类。接口类自身不能实例化,接口类的方法定义/实现只能由接口类的子类来完成。而对于C++,其接口类一般具有以下特征:1.最好不要有成员变量,但可以有静态常量(static const或enum)2.要有...
05月04日[编码文章]浏览:12
-
一文读懂播放内核解码音视频编码数据并播放的实现原理
一、封装格式与编码格式的区别与联系1.1 什么是封装格式?封装格式(也叫容器)就是将已经编码压缩好的视频流、音频流及字幕按照一定的方案放到一个文件中,便于播放软件播放。一般来说,视频文件的后缀名就是它的封装格式。封装的格式不一样,后缀名也就不一样。比如:同样的陷可以做成饺子也可以做成包子。对于视频也...
05月04日[编码文章]浏览:12
-
-
const关键字到底该什么用?(const关键字的用法)
文 | 守望先生经授权转载自公众号编程珠玑(id:shouwangxiansheng 前言我们都知道使用const关键字限定一个变量为只读,但它是真正意义上的只读吗?实际中又该如何使用const关键字?在解答这些问题之前,我们需要先理解const关键字的基本使用。本文说明C中的const关键字,不包...
05月04日[编码文章]浏览:12
-
-
Vue3 这两个方法,将掀起组件创建新狂潮!
一、为什么需要它们?从模板到虚拟DOM的进化史1.1 模板的局限(Vue2时代)// 传统模板编译流程 <template> <div>{{ message }}</div> </template> ↓ 编译 ↓ function rend...
05月04日[编码文章]浏览:11
-
C/C++中的内存四区(c++内存五区)
1 代码区存放 CPU 执行的机器指令。通常代码区是可共享的(即另外的执行程序可以调用它),使其可共享的目的是对于频繁被执行的程序,只需要在内存中有一份代码即可。代码区通常是只读的,使其只读的原因是防止程序意外地修改了它的指令。另外,代码区还规划了局部变量的相关信息。总结:你所写的所有代码都会放入到...
05月04日[编码文章]浏览:11
-
抖音品质建设 - iOS启动优化《实战篇》
前言启动是 App 给用户的第一印象,启动越慢,用户流失的概率就越高,良好的启动速度是用户体验不可缺少的一环。启动优化涉及到的知识点非常多,面也很广,一篇文章难以包含全部,所以拆分成两部分:原理和实战,本文是实战篇。原理篇:抖音品质建设-iOS 启动优化《原理篇》如何做启动优化?...
05月04日[编码文章]浏览:12
-
面试必考的「矩阵快速幂」考点汇总
设想这样一个场景,面试官给了你一道算法题,你很快确定这是一道递推问题,并给出了 O(n 的解题方法,然而面试官却继续问:“还能继续优化吗?”...
05月04日[编码文章]浏览:9