操作系统总结系列之【内存管理】 目录虚拟内存whatwhyhow内存管理方式内存碎片段式管理计算公式例子特点页式管理计算公式例子特点多级页表为什么不分级的页表就做不到这样节约内存呢?TLB快表段页式管理参考谈到内存管理,首先要了解什么是操作系统的虚拟内存虚拟内存 what 最早接触到虚拟内存是上初中时候用大屁股台式机打游戏,那个时候什么游戏都喜欢玩,最经常干的事情就是一边挂着RPG游戏自动打怪刷材料,一边打CS或者lol那个时候的电脑物理内存
音视频基础学习之【07.仿优酷界面的UI设计】 界面设计 QScrollArea QScrollArea滚动区域的使用添加一个scrollArea,里面会附带一个QWidget,开始时怎么弄都不显示滚动条在网上查询了很多资料,才知道里面附带的QWidget的大小大于scrollArea时,才会出现滚动条例如我这里设计的scrollArea的大小为170*695,里面的scrollAreaWidgetContents设置为145*1000才会显示垂直滚动条 添加地方电视台 通过添加QPushButton实现,每个按键都有
音视频基础学习之【06.播放跳转】 播放跳转在解码线程类中添加跳转的控制标志,记录是否需要跳转,在读取视频文件的线程中判断此变量,当需要跳转的时候就执行跳转操作跳转操作可以直接使用 FFMPEG 的跳转函数 av_seek_frame 来实现函数原型如下: int av_seek_frame(AVFormatContext *s, int stream_index, int64_t timestamp,int flags); 首先添加状态位 //==========================跳转控制==...
音视频基础学习之【05.添加播放控制】 目录播放器播放控制添加界面设计暂停停止主线程具体操作视频解码线程具体操作音频解码函数具体操作ui界面控制操作播放器播放控制添加 界面设计 仿优酷的界面设计,资源都是自己在优酷客户端上截取处理的,暂时没有对界面进行优化 暂停 在decode类中添加播放控制状态,考虑到后续的复用性,可以拷贝到其它地方直接使用,在这个类中不对ui进行设置,只更改状态使用枚举类型代表播放、暂停、停止三个状态添加播放控制函数不要忘记在构造函数中.
音视频基础学习之【04.音视频同步优化方案】 目录音视频同步的几种方案各个方案的比较视频时钟的计算方式音频时钟的计算方式视频同步到音频时钟的方法参考音视频同步的几种方案音频同步到视频 视频同步到音频 音视频都同步到外部时钟各个方案的比较第一种方案,势必会出现音频的卡顿或加速,非常影响观感体验第二种方案比第一种更加合理,因为音频一般和外部时钟是相同的,而且考虑到人对声音的敏感度要强于视频,所以一般会以音频时钟为参考时钟,视频同步到音频上第三种方案,通常在播放网络流或者视频源没有音频时钟的情况下使用,是更加
音视频基础学习之【01.基于ffmpeg的简单播放器demo实现】 最近在学习音视频基础知识,在这里感谢雷神留下的一系列指引新手入门的宝贵资源,虽然他英年早逝,但他的硕果永存。不由感慨真是天妒英才,愿雷神在天堂安好附上学习资料地址:雷霄骅(leixiaohua1020)的专栏选择学习ffmpeg的原因是,它具有跨平台特性,Windows、Linux、Aandroid、IOS 这些主流系统可以通吃而且它非常全能,从从视频采集、视频编码 到视频传输都可以直接使用ffmpeg完成,有雷神留下的学习资料加持,学习起来自然是事半功倍。下面简单记录一下自己使用Qt来做图
数据库基础系列之【事务与并发一致性问题】 事务 概念 事务指的是一组操作的集合,事务的产生,其实是为了当应用程序访问数据库的时候,简化我们的编程模型,不需要我们去考虑各种各样的潜在错误和并发问题当我们使用事务时,要么提交,要么回滚,我们不会去考虑网络异常了,服务器宕机了,同时更改一个数据怎么去处理它 特性 事务操作的正确性,通过以下几个特性来保障特性 描述 原子性 事务不可再分,要么全提交,要么全回滚 隔离性 两个事务操作的结果在未提交前互相不可见 持久性 即使发生故障导致数据
C++基础总结系列之【构造函数】 目录特点作用分类调用规则是否自定义构造函数自定义的构造函数是否有参数是否自定义拷贝构造函数初始化列表作用必须使用初始化列表的情况解释一下对象成员为什么必须要在初始化列表中初始化使用初始化列表的原因用构造函数初始化用初始化列表初始化初始化列表的执行顺序拷贝构造函数调用时机初始化值传递值返回浅拷贝与深拷贝解决办法特点没有返回值,函数名与类名相同,可以有重载,只调用一次作用用于在创建对象时,给对象...
C++基础总结系列之【内存结构】 目录内存分区内存图内存四区栈区堆区数据区代码区堆与栈的区别动态内存管理malloc、calloc、reallocnew/deletenew和malloc的区别智能指针内存对齐whatwhy没有内存对齐机制引入内存对齐机制how对齐系数有效对齐值(对齐单位)结构体内存对齐规则类内存对齐规则常见的内存错误(如何避免内存泄漏)内存分区 内存图 内存四区 栈区作用:保存局部变量、函数调用参数
计算机网络总结系列之【http/https协议】 http——超文本传输协议(HyperText Transfer Protocol)简介超文本传输协议,顾名思义,分为3个部分:超文本、传输、协议超文本:是文字、图片、视频等的混合体——最关键是有超链接,即能从一个超文本跳转到另外一个超文本传输:专门用来在两点(服务器-浏览器、服务器-服务器)之间双向传输数据协议:各种控制和错误处理方式的行为约定和规范因此,http是一个在计算机世界里专门在「两点」之间「传输」文字、图片、音频、视频等「超文本」数据的「约定和规范」http首部格式
C++STL学习总结系列之【序列式容器——vector】 目录特点vector的数据结构例子vector的构造函数1.不带参数的构造函数2.默认的拷贝构造函数3.创建一个有n 个对象的 vector4.创建一个包含从 start 到 end 之间的所有元素的 vector5.利用数组创建vectorvector操作的内存管理push_backpop_backerase特点其操作方式与C++中的数组array类似,但两者的区别在于空间运用的灵活性1.array是静态空间,一旦配置就不能再改变大小2.
计算机网络总结系列之【TCP/UDP协议】 简介在计算机网络中,网络层把分组发送到目的主机,但真正通信的并不是主机,而是主机中的进程。传输层提供了进程间的逻辑通信,向高层用户屏蔽了下面网络层的细节,使得应用程序看起来像是有一条端到端的逻辑通信信道。而TCP/UDP协议是传输层最重要的两种协议,提供了应用程序间的通信,它负责数据从发送端到接收端的信息流格式化和保证可靠传输。UDP——用户数据报协议(User Datagram Protocol)特点 面向无连接 不需要和 TCP一样在发送数据前进行三次握手建立连接的,想发数