- 博客(40)
- 资源 (4)
- 收藏
- 关注
原创 进程间通信的七种方法实战演示!值得收藏!
线程和进程间的通讯(Inter-Process Communication, IPC)是操作系统中的一个重要概念,用于实现不同进程或同一进程中的不同线程之间的数据交换和协调。以下是几个常见的进程间通信的方式:管道、消息队列、共享内存、信号、套接字、信号量、文件映射
2024-09-21 21:12:31
1702
原创 超实用线程调度方法!
你有想过这样一个问题吗?线程之间是如何调度的?更具体点说是这样,有两个线程:线程A和线程B,线程B要先于线程A运行,或者是线程B运行了多次之后在启动线程A,如何进行调度?
2024-09-21 17:03:13
299
原创 从零到一学FFmpeg:av_interleaved_write_frame 函数详析与实战
av_interleaved_write_frame是FFmpeg库中的一个函数,用于将一个已编码的媒体数据包(AVPacket)写入到输出媒体文件或流中。此函数特别关注于维护正确的交错(interleaving)顺序,即确保视频和音频帧按照它们应该播放的顺序被写入,这对于生成可正确播放的多媒体文件至关重要。提示:以下是本篇文章正文内容,下面案例可供参考。
2024-06-22 15:02:21
2237
原创 从零到一学FFmpeg:av_packet_rescale_ts 函数详析与实战
av_packet_rescale_ts是FFmpeg库中的一个函数,用于重新缩放或转换媒体流中的时间戳(timestamp),以适配不同的时间基(timebase)。在处理多媒体数据时,特别是当数据在不同组件间传递,或者在编码、解码、转封装等操作中,时间戳经常需要调整以匹配当前上下文的时间基。提示:以下是本篇文章正文内容,下面案例可供参考。
2024-06-22 14:55:38
1125
原创 从零到一学FFmpeg:AVCodecContext 结构体详析与实战
avio_open是FFmpeg库中的一个函数,用于打开一个I/O(输入/输出)上下文,以便于读写文件、网络流或其他类型的媒体数据源。这个函数是FFmpeg进行文件操作的基础,广泛应用于打开输入文件以进行解码或打开输出文件以进行编码。提示:以下是本篇文章正文内容,下面案例可供参考。
2024-06-22 14:29:50
629
原创 从零到一学FFmpeg:avcodec_parameters_from_context 函数详析与实战
avcodec_parameters_from_context是FFmpeg库中的一个实用函数,用于将AVCodecContext中的编解码参数复制到AVCodecParameters结构体中。这个操作在很多场景中都非常有用,尤其是在处理多媒体流和文件格式时,需要根据编解码上下文的信息来设置输出或输入流的参数。提示:以下是本篇文章正文内容,下面案例可供参考。
2024-06-22 12:09:26
1021
原创 从零到一学FFmpeg:avcodec_open2 函数详析与实战
avcodec_open2是FFmpeg库中的一个关键函数,用于根据给定的AVCodecContext和AVCodec实例初始化编解码器,使其准备好进行编解码操作。这个函数是编解码流程中配置编解码器上下文后的重要一步,它负责分配编解码器所需的资源,并根据上下文中的参数设置编解码器。提示:以下是本篇文章正文内容,下面案例可供参考。
2024-06-22 11:59:42
1481
1
原创 从零到一学FFmpeg:AVCodecContext 结构体详析与实战
AVCodecContext是FFmpeg库中的一个核心结构体,它代表了编解码器的上下文信息,是进行音频或视频编解码操作时必不可少的组件。AVCodecContext存储了编解码器的配置参数、状态信息以及与编解码过程相关的资源。无论是在编码还是解码过程中,都需要一个相应的AVCodecContext实例来管理和控制编解码过程。提示:以下是本篇文章正文内容,下面案例可供参考。
2024-06-22 11:23:44
2271
原创 从零到一学FFmpeg:avformat_alloc_output_context2 函数详析与实战
avformat_alloc_output_context2 是FFmpeg库中的一个函数,用于为输出多媒体文件初始化一个AVFormatContext结构体。这个函数在开始输出音频、视频数据到文件之前被调用,它是多媒体文件操作过程中的一个关键步骤。提示:以下是本篇文章正文内容,下面案例可供参考。
2024-06-22 10:12:19
1647
原创 从零到一学FFmpeg:av_compare_ts函数详析与实战
av_compare_ts是FFmpeg库中的一个函数,用于比较两个时间戳(Timestamps)。这个函数广泛应用于视频处理、流媒体播放和多媒体同步等场景,特别是在需要精确控制媒体数据播放顺序和时间的地方。提示:以下是本篇文章正文内容,下面案例可供参考。
2024-06-21 17:55:06
1498
原创 C语言中结构体使用.与->访问成员变量的区别
在C语言中,. 和 -> 都是用来访问结构体成员的运算符,但它们的使用场景和含义有所不同。提示:以下是本篇文章正文内容,下面案例可供参考当你直接使用结构体变量时,使用点运算符 .。当你通过指针访问结构体成员时,使用箭头运算符 ->。
2024-06-14 15:58:41
554
原创 基于pulseaudio实现一个边录边播的demo
通过上一讲,我们实现了一个加载pulseaudio的module-loopback的功能来实现侦听,那么除了加载模块的方式,有没有其他方式来实现侦听功能呢?答案自然是有的,今天我们就写一个实例来实现上一讲原文链接:提示:以下是本篇文章正文内容,下面案例可供参考。
2024-06-07 08:41:27
992
1
原创 pulseaudio如何加载侦听模块(module-loopback)
pulseaudio是一款基于Linux系统的音频服务器,它基于ALSA层之上来实现音频相关的各种设备管理、音频处理等功能,为用户提供更好的音频服务,它的功能大多数已模块化的形式进行加载,今天我们主要讲解的功能是它的侦听功能提示:以下是本篇文章正文内容,下面案例可供参考。
2024-06-07 08:12:13
937
原创 一文看懂RAM与ROM的区别!(建议收藏)
RAM与ROM是计算机中常见的存储器类型,它们在数据存储和访问方面扮演着重要的角色。RAM(Random Access Memory)是一种临时存储器,用于存储计算机正在运行的程序和数据。它具有快速的读写速度和随机访问的特点。相比之下,ROM(Read-Only Memory)是一种只读存储器,用于存储固定的程序指令和数据。ROM中的数据在计算机断电时不会丢失,因此被称为非易失性存储器。接下来,我们将详细介绍RAM和ROM的特点和常见类型。RAM和ROM在计算机系统中扮演着不同的角色。
2024-01-07 17:44:09
148768
1
原创 零基础学Linux内核:1、Linux源码组织架构
这里将是我们从零开始学习Linux的第一节,这节课我们将了解Linux源码的各个文件夹的组成与含义。
2023-11-26 11:05:21
868
原创 如何下载Linux源码,看这篇就够了!
在工作中,我们难免会遇到需要去找某个版本的linux源码的情况,今天这篇文章就手把手教大家如何找到自己想要的linux源码版本提示:以下是本篇文章正文内容,下面案例可供参考。
2023-11-11 10:10:13
13242
3
原创 Linux ifconfig只显示 lo 网卡,没有ens网卡解决方案
之前在调试linux的时候,由于一些不太清楚的误操作,导致ubuntu linux出现无网络问题,现象如下ifconfig 只显示了 lo 网卡lo 网卡:它是本地环回接口。这意味着您的虚拟机当前没有其他网络接口或网络适配器被识别。
2023-09-09 09:45:05
6106
1
原创 一文看懂什么是状态机
状态机(State Machine)是一种数学模型,用于描述系统或程序在不同状态之间转换的行为。它由一组状态、转移条件和动作组成。提示:以下是本篇文章正文内容,下面案例可供参考状态机可以被看作是一个抽象的机器,它可以处于不同的状态,并根据输入条件执行相应的动作来改变状态。状态表示了系统或程序所处的特定情况或阶段,而转移条件决定了在何种条件下从一个状态转移到另一个状态,动作则表示在状态转移时要执行的操作。
2023-08-01 09:28:20
14198
2
原创 一文看懂什么是回调函数
回调函数是一种在编程中常见的概念,它是指一个函数作为参数传递给另一个函数,并且在特定事件发生或条件满足时被调用执行的函数。
2023-07-17 22:36:51
7417
1
原创 手把手教你如何在linux环境下制作deb软件包
Linux系统一般分为两个派系:Redhat系和 Debian 系,Redhat系使用 RPM 包管理机制,而 Debian 系,像 Debian 系,如 Debian、Ubuntu 等操作系统则使用 deb 管理机制。
2023-07-08 11:32:24
4583
3
原创 跟我一起学Linux内核开发:1、准备开发环境
想要深入学习内核调试,首先需要准备好开发环境。在这篇文章中,作者详细记录了自己的学习笔记,并提供了丰富的实操经验。如果你也想成为内核调试的高手,不妨跟着作者的步伐一起学习,带你进入内核的奥妙世界!
2023-06-02 13:55:40
899
原创 cmake超详细入门教程,学不会你捶我~
我们在平时编译代码的时,面对简单的代码,直接GCC编译就好,稍微多一点,可以编写Makefile来编译,以上编译起来都很轻松,可是平时工作的时候基本都是大工程呀,代码文件少则几十个文件了,这种情况下就头疼了,咋办呢?今天我来教你使用cmake轻松解决问题~提示:以下是本篇文章正文内容,下面案例可供参考关于cmake的使用方法还有很多,这里只是做了一个最基本的介绍,后期有机会在进行详细补充~
2022-12-26 10:44:41
60666
22
原创 linux挂载U盘,mount命令搞定!
我们在有时往linux操作系统上插入U盘时,不会自动挂载U盘,这时候就需要我们手动来挂载,具体步骤如下提示:以下是本篇文章正文内容,下面案例可供参考。
2022-10-23 10:17:00
9465
原创 开发板通过NFS挂载linux镜像、设备树、文件系统等步骤
nfs(Network File System)网络文件系统,通过 nfs 可以在计算机之间通过网络来分享资源, 比如我们将 linux 镜像和设备树文件放到 Ubuntu 中,然后在 uboot 中使用 nfs 命令将 Ubuntu 中 的 linux 镜像和设备树下载到开发板的 DRAM 中。这样做的目的是为了方便调试 linux 镜像和 设备树,也就是网络调试,通过网络调试是 Linux 开发中最常用的调试方法。
2022-09-27 17:13:27
1975
2
原创 sudo arm-linux-gnueabihf-gcc:Command not found 原因及解决办法
使用 arm-linux-gnueabihf-gcc-7 编译系统时,不会提示找不到 arm-linux-gnueabihf-gcc,但是只要使用了sudo去编译(因为有些操作需要sudo),这种情况就会报找不到 arm-linux-gnueabihf-gcc 的问题
2022-09-27 16:16:25
6361
2
原创 uboot启动提示Resetting CPU原因及解决方案
之前学习uboot移植时,遇到的一个问题,编译完uboot后,到开发板上测试时,开发板会一直自动重启,提示 Resetting CPU 字样
2022-09-22 16:24:57
2049
原创 Linux vim 如何实现多行注释与取消多行注释
当我们在使用 vim 编辑器时,通常会遇到一种情况,那就是多行代码需要注释的情况,一行一行手动注释,严重影响工作效率,所以今天就讲解一种快速多行注释的方法提示:以下是本篇文章正文内容,下面案例可供参考。...
2022-08-05 08:59:28
5007
原创 linux下的sys目录的作用
众所周知,linux下一切皆文件,那么应用层如何控制硬件层,同样是通过 文件I/O的方式来实现的,那、么应用层控制硬件层通常有两种方式:1、/dev/ 目录下为各设备节点,通过对这些设备文件的I/O操作可以实现对底层硬件的操作2、sysfs 文件系统的主要功能是对系统设备进行管理,它可以产生一个包含所有系统硬件层次的视图,而 sysfs 文件系统挂载在 /sys 目录下进入到 sys 目录下,可以看到如下文件:包括 block、bus、class、dev、devices、firmware、fs、ker
2022-07-11 09:08:59
5928
原创 手把手教你制作一块Linux开发板(基于Planck-pi)
Hello,各位野生钢铁侠们!这篇文章初衷是帮助想自己制作linux小板子的小白们,文中会讲的比较基础,大佬勿喷~本教程会以稚晖君开源的 planck-pi 为基础,从0开始手把手教学直到成功复刻~
2022-06-19 10:48:51
20689
8
原创 git 如何快速同步其他分支的commit改动,git cherry-pick
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档文章目录前言一、git cherry-pick 命令介绍二、使用方法1.查看需要同步的 commit 编号2.切换到需要同步的分支下前言我们在使用git开发时,通常不只存在一个分支,不同版本可能有不同的分支,那么有时就会出现这样一种情况,同一个bug或者需求,可能好几个分支都需要同时改动,一个一个分支的改就显得很繁琐了,那么可以来使用 git cherry-pick 来加快效率提示:以下是本篇文章正文内容,下面案例可供参考.
2022-05-30 14:35:50
2706
原创 修改pulseaudio后,如何本地编译运行起来?
文章目录前言一、修改源码并配置二、使用 make 工具编译三、关闭原有的pulseaudio服务四、运行并打印debug信息前言这篇文章主要讲解如何本地编译pulseaudio源码提示:以下是本篇文章正文内容,下面案例可供参考一、修改源码并配置修改完 pulseaudio 的源码后,使用 configure 命令进行编译进入到 pulseaudio源码目录下,可以看到这个configure文件执行命令./configure二、使用 make 工具编译make -j8sudo m
2022-05-26 14:27:36
1413
原创 Linux下如何配置QT的kit
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档文章目录前言一、kit是什么?二、如何手动选择kit前言在刚开始使用QT开发的时候,可能会遇到这种情况,没有可选择的kit工具一、kit是什么?建套件(Kits)都是编译⼯具。是在linux或者windows平台使用⽤的GNU⼯具集导⼊库的集合,这个集合包括了C编译器,C++编译器,和gdb调试器等工具二、如何手动选择kit代码如下(示例):下载qt默认工具包sudo apt install qt5-default.
2022-05-05 09:12:54
5862
1
原创 git fork 别人仓库后,原作者改动了代码,如何同步远程仓库?
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档# 前言在日常的开发过程中,git的出场频率是很高的,但是你肯定遇到过这种情况:你fork了一个远程仓库,然后你在你fork下的源码开始解bug、写需求等,一周过去了,你准备push提交到自己fork的仓库下面,提交成功后,准备提pr合并代码到主仓库,结果发现合并不了,定睛一看,原来是主仓库有已经更新了好几个版本了,你们的代码存在冲突。那遇到这种问题怎么解决呢?这篇文章将给你答案~提示:以下是本篇文章正文内容,下面案例可供参考.
2022-04-24 13:47:19
3633
4.stm32f103学习记录,利用串口控制LED,USART - RGB.
2020-10-08
1.stm32f103学习笔记,EXTI按键中断点亮小灯应用
2020-10-08
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人