自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

转载 chrome浏览器STATUS_STACK_BUFFER_OVERRUN解决方案

windows安全中心–》应用和浏览器控制—》Exploit Protection设置–》程序设置–》添加进行自定义–》选择准确的文件路径—》C:\Program Files (x86)\Microsoft\Edge\Application\msedge.exe–》在弹出窗口中找到“硬件强制实施的堆栈保护” 替代系统设置开,仅审核勾上—》应用–》重启Edge完成修复。修复前的一个解决方案分享给大家。

2023-05-17 16:37:10 1817

原创 近期edge、谷歌浏览器崩溃的问题解决方案

尝试了网上各种各样的方法都没用,原因大概率就是浏览器自动升级了chrome113版本,有bug,退回到chrome112版本就能使用了。

2023-05-08 19:53:53 941

原创 计算机网络之上篇

urlhttp。

2023-03-23 10:43:27 403

原创 cpp之十大排序算法

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-riZ9z3wf-1678258189998)(null)]排序算法的稳定性:在具有多个相同关键字的记录中,若经过排序这些记录的次序保持不变,说排序算法是稳定的。

2023-03-08 14:52:06 1306 1

原创 cpp之STL

Iterator(迭代器)模式又称游标(Cursor)模式,用于提供一种方法顺序访问一个聚合对象中各个元素,而又不需暴露该对象的内部表示。或者这样说可能更容易理解:Iterator模式是运用于聚合对象的一种模式,通过运用该模式,我们可以在不知道对象内部表示的情况下,按照一定顺序(由iterator提供的方法)访问聚合对象中的各个元素。

2023-02-28 11:01:54 970

原创 cpp面向对象

基类。

2023-02-22 10:48:48 390

原创 cpp语言基础

只能在堆上生成对象:将析构函数设置为私有。原因:C++是静态绑定语言,编译器管理栈上对象的生命周期,编译器在为类对象分配栈空间时,会先检查类的析构函数的访问性。若析构函数不可访问,则不能在栈上创建对象。只能在栈上生成对象:将new 和 delete 重载为私有。原因:在堆上生成对象,使用new关键词操作,其过程分为两阶段:第一阶段,使用new在堆上寻找可用内存,分配给对象;第二阶段,调用构造函数生成对象。将new操作设置为私有,那么第一阶段就无法完成,就不能够再堆上生成对象。static关键字。

2023-02-19 10:56:12 1622

原创 一文搞懂MySQL基础语法

在分组的列上通常配合 COUNT, SUM, AVG等函数一起使用。两个计算结果是不一样的,ifnull函数的作用就是发现值为null后将其值变为0。通过deptno字段对表数据进行分组后,然后通过sum(sal)来计算每个分组的总和。LIMIT 接受⼀个或两个数字参数,参数必须是⼀个整数常量。顺序:SELECT …如果只给定⼀个参数,它表示返回从第一行开始记录行的数⽬;例如:求工资总和大于9000的部门,并按照工资总和排序。如果给定两个参数,第⼀个参数指定起始记录⾏的。关键字,后面的参数是记录行的。

2023-02-14 15:35:21 1079

原创 通关算法题之 ⌈链表⌋

给你一个整数数组nums,返回该数组所有可能的子集(幂集)。解集不能包含重复的子集,你可以按任意顺序 返回解集。

2023-01-18 11:07:09 451

原创 通关算法题之 ⌈回溯算法⌋

给你一个整数数组nums,返回该数组所有可能的子集(幂集)。解集不能包含重复的子集,你可以按任意顺序 返回解集。

2023-01-15 14:22:25 250

原创 通关算法题之 ⌈动态规划⌋

动态规划是什么?解决动态规划问题有什么技巧?如何学习动态规划?首先,动态规划问题的一般形式就是求最值。动态规划其实是运筹学的一种最优化方法,只不过在计算机问题上应用比较多,比如说让你求最长递增子序列呀,最小编辑距离呀等等。既然是要求最值,核心问题是什么呢?求解动态规划的核心问题是穷举。因为要求最值,肯定要把所有可行的答案穷举出来,然后在其中找最值呗。首先,虽然动态规划的核心思想就是穷举求最值,但是问题可以千变万化,穷举所有可行解其实并不是一件容易的事,需要你熟练掌握递归思维,只有列出正确的「状态转移方程」,

2022-12-30 15:24:39 1129

原创 通关算法题之 ⌈字符串⌋

设计一个支持 , , 操作,并能在常数时间内检索到最小元素的栈。实现 类:使用两个栈,一个正常的按照栈的逻辑进行压入和弹出操作,另一个存储最小值。225. 用队列实现栈请你仅使用两个队列实现一个后入先出(LIFO)的栈,并支持普通栈的全部四种操作(、、 和 )。实现 类:注意:一个队列在模拟栈弹出元素的时候只要将队列头部的元素(除了最后一个元素外) 重新添加到队列尾部,此时在去弹出元素就是栈的顺序了。232. 用栈实现队列请你仅使用两个栈实现先入先出队列。队列应当支持一般队列支持的所有操作

2022-12-07 11:29:25 664

原创 通关算法题之 ⌈栈和队列⌋

设计一个支持 , , 操作,并能在常数时间内检索到最小元素的栈。实现 类:使用两个栈,一个正常的按照栈的逻辑进行压入和弹出操作,另一个存储最小值。225. 用队列实现栈请你仅使用两个队列实现一个后入先出(LIFO)的栈,并支持普通栈的全部四种操作(、、 和 )。实现 类:注意:一个队列在模拟栈弹出元素的时候只要将队列头部的元素(除了最后一个元素外) 重新添加到队列尾部,此时在去弹出元素就是栈的顺序了。232. 用栈实现队列请你仅使用两个栈实现先入先出队列。队列应当支持一般队列支持的所有操作

2022-12-06 11:17:31 292

原创 通关算法题之 ⌈哈希表⌋

给定一个字符串s,找到它的第一个不重复的字符,并返回它的索引。如果不存在,则返回-1。考察哈希表的使用。

2022-11-29 14:41:20 315

原创 通关算法题之 ⌈数组⌋ 下

给定一个 个元素有序的(升序)整型数组 和一个目标值 ,写一个函数搜索 中的 ,如果目标值存在返回下标,否则返回 -1。版本一:版本二:🔥while 循环的条件是

2022-11-23 16:48:44 466

原创 通关算法题之 ⌈数组⌋ 上

过程中会将数组划分成最小为1个元素的子数组,然后依次比较子数组的每个元素的大小,依次取出较小的一个合并成大的子数组。这里我们也可以用相同的方法划分,划分之后相邻一个元素的子数组就可以根据大小统计逆序对,而不断往上合并的时候,因为已经排好序了,我们逆序对可以往上累计。将和数组元素值相同的数组下标中对应的值置为其对应的负数,这样,当两个相同的元素映射到同一个位置,会发现元素值已经为负数了,既该值为重复的值。在数组中的两个数字,如果前面一个数字大于后面的数字,则这两个数字组成一个逆序对。本身模拟哈希集合的效果。

2022-11-22 17:01:05 232

原创 通关算法题之 ⌈二叉树⌋ 下

给定一个 完美二叉树 ,其所有叶子节点都在同一层,每个父节点都有两个子节点。二叉树定义如下:填充它的每个 next 指针,让这个指针指向其下一个右侧节点。如果找不到下一个右侧节点,则将 next 指针设置为 。初始状态下,所有 next 指针都被设置为 。示例:这道题若使用常规的遍历二叉树的话,只能将一个节点的左子树指向右子树,不同节点的子树之间无法建立联系,所以要改变遍历的方式。传统的 函数是遍历二叉树的所有节点,但现在我们想遍历的其实是两个相邻节点之间的「空隙」,所以可以在二叉树的基础上进行抽象,

2022-11-20 10:01:12 669

原创 通关算法题之 ⌈二叉树⌋ 上

使用。

2022-11-20 09:57:47 462

原创 音视频总结

AAC是高级音频编码(Advanced Audio Coding)的缩写,被认为是MP3的继任者,相对MP3有更高的压缩效率。由Fraunhofer IIS、杜比实验室、AT&T、Sony(索尼)等公司共同开发。出现于1997年,最初是基于MPEG-2的音频编码技术,目的是取代MP3格式。2000年,MPEG-4标准出台,AAC重新集成了其它技术包括SBR或PS特性,目前AAC可以定义为⼀种由 MPEG-4 标准定义的有损音频压缩格式。AAC被iPhone、iTunes以及大多数便携式设备所使用。

2022-11-09 20:27:28 1779

原创 ijkplayer项目

【错误记录】编译 Android 版本的 ijkplayer 报错 ( You must define ANDROID_NDK before starting. | 下载指定版本 NDK )_韩曙亮的博客-CSDN博客AndroidDevTools - Android开发工具 Android SDK下载 Android Studio下载 Gradle下载 SDK Tools下载git大文件下载文件结构ijkplayer在底层重写了ffplay.c文件,主要是去除ffplay中使用sdl音视频库播放

2022-11-09 20:26:49 1508

原创 ffplay源码分析

由于音频和视频的输出不在同一个线程,而且,也不一定会同时解出同一个pts的音频帧和视频帧。更有甚者,编码或封装的时候可能pts还是不连续的,或有个别错误的。因此,在进行音频和视频的播放时,需要对音频和视频的播放速度、播放时刻进行控制,以实现音频和视频保持同步,即所谓的音视频同步。在ffplay中,音频(audio)和视频(video)有各自的输出线程,其中音频的输出线程是sdl的音频输出回调线程,video的输出线程是程序的主线程。

2022-11-09 20:26:15 296

原创 音视频同步

音视频同步的目的是为了使播放的声音和显示的画面保持一致。视频按帧播放,图像显示设备每次显示一帧画面,视频播放速度由帧率确定,帧率指示每秒显示多少帧;音频按采样点播放,声音播放设备每次播放一个采样点,声音播放速度由采样率确定,采样率指示每秒播放多少个采样点。如果仅仅是视频按帧率播放,音频按采样率播放,二者没有同步机制,即使最初音视频是基本同步的,随着时间的流逝,音视频会逐渐失去同步,并且不同步的现象会越来越严重。这是因为:一、播放时间难以精确控制,二、异常及误差会随时间累积。

2022-11-09 20:25:33 2389

原创 音频播放总结

实现播放视频文件中的声音,不显示图像。

2022-11-09 20:25:01 141

原创 视频播放总结

基于 FFmpeg 和 SDL 实现简易视频播放器,主要分为读取视频文件解码和调用 SDL 播放两大部分。首先尝试实现(无声音)。使用FFmpeg库实现视频播放的函数调用流程图:初始化打开视频文件读取文件头,将文件格式信息存储在"fmt context"中。搜索流信息读取一段视频文件数据,尝试解码,将取到的流信息填入pFormatCtx->streams。p_fmt_ctx->streams是一个指针数组,数组大小是pFormatCtx->nb_streams。查找第一个视频流。

2022-11-09 20:24:17 94

原创 音视频基础

通过 av_read_frame() 从媒体文件中获取得到的一个 packet 可能包含多个(整数个)音频帧或单个视频帧,或者其他类型的流数据。图像格式转换的目的,是为了解码后的视频帧能被 SDL 正常显示,因为FFmpeg解码后得到的图像格式不一定就能被SDL支持,这种情况下不作图像转换是无法正常显示的。:搜索流信息:读取一段视频文件数据,尝试解码,将读取到的流信息填入pFormatCtx->streams;音频:PCM->ACC数据,视频:YUV->H264,音视频封装:FLV / MP4。

2022-11-09 20:22:04 1409

原创 cmake使用教程

可以用来指定工程的名字和支持的语言,默认支持所有语言PROJECT (HELLO) 指定了工程的名字,并且支持所有语言—建议PROJECT (HELLO CXX) 指定了工程的名字,并且支持语言是C++PROJECT (HELLO C CXX) 指定了工程的名字,并且支持语言是C和C++该指定隐式定义了两个CMAKE的变量_BINARY_DIR,本例中是 HELLO_BINARY_DIR_SOURCE_DIR,本例中是 HELLO_SOURCE_DIR。

2022-11-08 21:17:44 7778 1

原创 FFmpeg和SDL实现视频播放器之 ⌈音视频同步⌋

音视频同步的目的是为了使播放的声音和显示的画面保持一致。视频按帧播放,图像显示设备每次显示一帧画面,视频播放速度由帧率确定,帧率指示每秒显示多少帧;音频按采样点播放,声音播放设备每次播放一个采样点,声音播放速度由采样率确定,采样率指示每秒播放多少个采样点。如果仅仅是视频按帧率播放,音频按采样率播放,二者没有同步机制,即使最初音视频是基本同步的,随着时间的流逝,音视频会逐渐失去同步,并且不同步的现象会越来越严重。这是因为:一、播放时间难以精确控制,二、异常及误差会随时间累积。

2022-08-25 17:17:46 1010 1

原创 FFmpeg和SDL实现视频播放器之 ⌈音频播放⌋

实现播放视频文件中的声音,不显示图像。

2022-08-24 14:31:23 798 2

原创 FFmpeg和SDL实现视频播放器之 ⌈视频播放⌋

基于 FFmpeg 和 SDL 实现简易视频播放器,主要分为读取视频文件解码和调用 SDL 播放两大部分。首先尝试实现(无声音)。使用FFmpeg库实现视频播放的函数调用流程图:初始化打开视频文件读取文件头,将文件格式信息存储在"fmt context"中。搜索流信息读取一段视频文件数据,尝试解码,将取到的流信息填入pFormatCtx->streams。p_fmt_ctx->streams是一个指针数组,数组大小是pFormatCtx->nb_streams。查找第一个视频流。

2022-08-23 18:01:29 518

原创 FFmpeg和SDL实现视频播放器之 ⌈基础⌋

从解复用器(Media Extractor、AVFormatContetext->stream)开始,会有两个线程分别负责解析音频和视频。音频:PCM->ACC数据,视频:YUV->H264,音视频封装:FLV / MP4。是一个关键帧,能够独立解码并显示画面,可指定I帧出现的频率。

2022-08-23 16:56:30 262

原创 2023届互联网校招信息⌈提前批⌋⌈秋招⌋ ⌈春招⌋ 第一弹

🔥2023届互联网校招信息⌈提前批⌋ ⌈秋招⌋ ⌈春招⌋ 5.29更新后序会在 ⌈卡卡成长汇聚⌋ 微信公众号更新更多2023届互联网校招信息⌈提前批⌋ ⌈秋招⌋ ⌈春招⌋ 信息,关注获取最新消息:[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-TZ3s5n3L-1653810488664)(https://cdn.jsdelivr.net/gh/CARLOSGP2021/myFigures/img/202205282027513.gif)]提前批华为华为应届生_实习生

2022-05-29 15:48:57 4512

原创 go语言打怪通关之 ⌈排序⌋

文章目录排序函数自定义排序PanicDefer排序Go 的 sort 包实现了内置和用户自定义数据类型的排序功能,首先关注内置数据类型的排序。package mainimport "fmt"import "sort"func main() { // 排序方法是正对内置数据类型的;这里是一个字符串的例子。 // 注意排序是原地更新的,所以他会改变给定的序列并且不返回 // 一个新值。 strs := []string{"c", "a", "b"} so

2022-04-27 09:36:25 237

原创 go语言打怪通关之 ⌈互斥锁和状态协程⌋

文章目录互斥锁Go 状态协程互斥锁使用一个互斥锁来在 Go 协程间安全的访问数据。package mainimport ( "fmt" "math/rand" "runtime" "sync" "sync/atomic" "time")func main() { // 在我们的例子中,`state` 是一个 map。 var state = make(map[int]int) // 这里的 `mutex` 将同步对

2022-04-22 08:50:17 110

原创 go语言打怪通关之 ⌈并发编程⌋

文章目录定时器打点器工作池速率限制原子计数器定时器我们常常需要在后面一个时刻运行 Go 代码,或者在某段时间间隔内重复运行。Go 的内置 定时器 和 打点器 特性让这些很容易实现。package mainimport "time"import "fmt"func main() { // 定时器表示在未来某一时刻的独立事件。你告诉定时器 // 需要等待的时间,然后它将提供一个用于通知的通道。 // 这里的定时器将等待 2 秒。 timer1 := time.N

2022-04-21 10:22:40 455

原创 go语言打怪通关之 ⌈通道的操作⌋

文章目录超时处理非阻塞通道操作通道的关闭通道遍历超时处理超时对于一个连接外部资源,或者其它一些需要花费执行时间的操作的程序而言是很重要的。得益于通道和 select,在 Go 中实现超时操作是简洁而优雅的。package mainimport "time"import "fmt"func main() { // 在我们的例子中,假如我们执行一个外部调用,并在 2 秒后 // 通过通道 `c1` 返回它的执行结果。 c1 := make(chan string, 1)

2022-04-20 09:10:04 184

原创 go语言打怪通关之 ⌈通道⌋

文章目录通道通道缓冲通道同步通道方向通道选择器通道// _通道_ 是连接多个 Go 协程的管道。你可以从一个 Go 协程// 将值发送到通道,然后在别的 Go 协程中接收。package mainimport "fmt"func main() { // 使用 `make(chan val-type)` 创建一个新的通道。 // 通道类型就是他们需要传递值的类型。 messages := make(chan string) // 使用 `channel &

2022-04-19 09:03:43 123

原创 go语言打怪通关之 ⌈错误处理,协程⌋

文章目录错误处理协程错误处理// Go 语言使用一个独立的、明确的返回值来传递错误信息的。这与// 使用异常的 Java 和 Ruby 以及在 C 语言中经常见到的超重的// 单返回值/错误值相比,Go 语言的处理方式能清楚的知道哪个函数// 返回了错误,并能像调用那些没有出错的函数一样调用。package mainimport "errors"import "fmt"// 按照惯例,错误通常是最后一个返回值并且是 `error` 类// 型,一个内建的接口。func f1(ar

2022-04-18 09:58:04 215

原创 go语言打怪通关之 ⌈指针,结构体,方法,接口⌋

文章目录指针结构体方法接口指针Go 支持指针,允许在程序中通过引用传递值或者数据结构。package mainimport "fmt"// 我们将通过两个函数:`zeroval` 和 `zeroptr` 来比较指针和// 值类型的不同。`zeroval` 有一个 `int` 型参数,所以使用值// 传递。`zeroval` 将从调用它的那个函数中得到一个 `ival`// 形参的拷贝。func zeroval(ival int) { ival = 0}// `zeropt

2022-04-17 08:55:48 137

原创 go语言打怪通关之 ⌈闭包,递归⌋

文章目录闭包递归Go 支持通过闭包来使用匿名函数,匿名函数在你想定义一个不需要命名的内联函数时是很实用的。闭包package mainimport "fmt"// 这个 `intSeq` 函数返回另一个在 `intSeq` 函数体内定义的// 匿名函数。这个返回的函数使用闭包的方式 _隐藏_ 变量 `i`。func intSeq() func() int { i := 0 return func() int { i += 1 return i

2022-04-16 08:32:18 278

原创 go语言打怪通关之 ⌈函数,多返回值,变参函数⌋

文章目录函数多返回值变参函数函数// 函数 是 Go 的中心。我们将通过一些不同的例子来// 进行学习。package mainimport "fmt"// 这里是一个函数,接受两个 `int` 并且以 `int` 返回它们的和func plus(a int, b int) int { // Go 需要明确的返回值,例如,它不会自动返回最 // 后一个表达式的值 return a + b}func main() { // 通过 `name(args

2022-04-15 09:20:40 124

空空如也

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

TA关注的人

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