- 博客(33)
- 资源 (9)
- 收藏
- 关注
原创 c++中的虚函数
1. 虚函数表是在做动态绑定(dynamic/late binding)时,处理函数调用时的查找表。2. 每个包含虚函数的类都有一张虚函数表,该表在编译时已经建立好。表中包含该类的对象可以访问的所有虚函数的entry。3. entry是一个函数指针,指向该类可以访问的最深层(most-derived)的函数4. 编译器给基类添加了一个隐藏的成员变量,虚指针:*__vptr. 虚指针在对象构建时被赋值,指向该类的虚函数表。
2024-11-29 16:07:49
321
原创 使用Protobuf生成widevine的pssh data
Protobuf是Protocol Buffers的简称,它是Google公司开发的一种数据描述语言,是一种轻便高效的结构化数据存储格式,可以用于结构化数据串行化,或者说序列化 。目前提供了 C++、Java、Python 三种语言的 API。这里不去介绍Protobuf的各种语法结构,而是以目标为导向,介绍windows平台下生成pssh data的详细步骤
2024-11-21 16:33:17
587
原创 关于DRM 中的PSSH Data
PSSH: Protection System Specific HeadersPSSH 是一个标准化的容器,用来存放prtection system使用到的一些metadata。PSSH不直接包含加密的key,但是包含key ID、 encryption scheme、和其他的一些用来向license server获取key的一些信息
2024-11-19 15:22:07
596
原创 MP4中加密相关的box的含义
为什么要研究这些box呢,是因为我在播放cbcs加密的mp4视频流时,有的浏览器可以正常解密播放,有的浏览器播放时出现绿屏。后来与shakapackager产生的mp4中的box逐个对比,发现区别就在于以下这些box,后来研究了下标准,确实是有些box没有按照标准规定来写,有一些浏览器能兼容可能是这些浏览器解密时没有读取这些box,能播放纯属侥幸~
2024-11-14 15:18:43
294
原创 git使用:同一台机器上不同仓库使用不同的用户名
opensource目录里所有仓库之前用的是全局账户name_global, 现需要将其中一个仓库learning_doc上传到name_personal账户下
2024-10-17 11:52:09
339
转载 CMake,make,CMakeLists.txt,CMakeFiles之间的关系
简单说下CMake,make,CMakeLists.txt,CMakeFiles之间的关系
2024-10-16 16:36:23
89
原创 RFCs 文档中关键字SHALL SHOULD 的区别
在阅读IETF文档时经常遇到一些描述规范requirement程度的关键字,比如,MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALLNOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and"OPTIONAL",理解不清楚可能会对具体功能的实现造成影响,以下是规范中对这些关键字的定义
2024-10-15 15:45:58
834
原创 通过代码理解linux两种内存分配方式
之前在Linux平台开发时遇到过内存问题,当时查看过linux的内存分配原理,总结下来主要就是Linux有两种内存分配方式。以下通过代码分别验证brk和mmap两种内存分配方式中,free之后的内存变化。通过Result可以验证上述结论。
2024-10-14 18:58:47
538
原创 类中回调函数的使用场景
以下记录了在工作过程中使用回调的一种场景:class A 需要使用class B 的一个方法,但是这个方法的最终实现需要依赖调用者传入一个回调函数
2024-10-08 18:34:09
266
原创 Linux cgroup memory相关参数
最近在解决container中的内存问题过程中查找了linux memory 相关的一些文章,稍微整理一下
2024-09-25 17:14:24
1694
原创 k8s 资源配置不足导致的程序异常退出
最近遇到一个问题,我们的程序在k8s环境中运行会又有异常退出的情况,一开始以为是程序产生了crash,于是查看log打印,唯一一个异常点就是每次退出的时候进程的占用内存都在一个差不多的水平,因此怀疑是内存占用过高被系统kill,后来根据反馈,程序退出时也没有产生core_dump文件,更加证实了我们的猜想(由于我们在启动脚本里已经设置了ulimit -c unlimited,如果是发生异常crash应该会产生core文件)运行一段时间后,可以复现异常退出问题。
2024-09-25 14:33:43
489
原创 OpenSSL 1.1 crash when program exit
通过源码对比,从OpenSSL1.0.2开始引入了这样的逻辑:在程序退出了,自身会主动销毁一些内部资源,这与我们代码里的一些资源释放动作有冲突,从而引发了double free的错误。在程序退出处加了一些log跟踪,所有在return之前的log都会执行到,因此断定是执行完我们所写的程序之后,CRT调用atexit中注册的function去析构全局的和静态的一些对象而产生的崩溃。
2024-09-11 18:23:44
376
1
opengl红宝书源代码
2013-03-17
AN169_USBXpress_Programmers_Guide
2013-03-07
U-EC5使用说明
2013-01-29
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人