自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(36)
  • 资源 (2)
  • 收藏
  • 关注

原创 采用Jmeter TCP采样器对Linux IO模型 TCP服务器进行测试

采用Jmeter TCP采样器对Linux IO模型 TCP服务器进行测试Linux IO模型Linux IO模型分为五大类:同步阻塞IO,同步非阻塞IO,IO多路复用,信号驱动IO,异步IO。具体的IO底层模型,可以参考其它博客,再此不进行赘述。下面为使用Jmeter对同步阻塞IO,同步非阻塞IO 信号驱动IO,异步IO为原理实现TCP服务器采样测试效果及结论Jmeter TCP采样器下图为我的JmeterTCP采样设置[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(im

2021-09-06 23:43:59 257

原创 字符串复制

intfz_strlcpy(char *dst, const char *src, int siz){ register char *d = dst; register const char *s = src; register int n = siz; /* Copy as many bytes as will fit */ if (n != 0 && --n != 0) { do { if ((*d++ = *s++) == 0) break; }

2021-04-09 18:03:31 94

原创 C#学习随笔,同步方法总结

说在最前面在多线程中编程中,少不了需要对共享资源的同步。此时就需要对资源同步的相关知识,在C#中,提供了如下几种线程资源同步的方式。将字段使用volatile关键字修饰当一个字段被声明为volatile关键字时,CLR中一些管理代码和内存的内部机制将负责对字段进行同步,并且总能保证读取到的字段信息都为最新的值,。声明为volatile的关键字必须具备如下:引用类型(不安全代码的)指针sbyte,byte,short,ushort,int,uint,char,float,bool一个使用底层

2020-05-31 13:34:26 289

原创 C#学习随手笔记之多线程编程

线程的概念:线程(Thread)是进程中的基本执行单元,是操作系统分配CPU时间的基本单位,一个进程可以包含若干个线程,在进程入口执行的第一个线程被视为这个进程的主线程。在.NET应用程序中,都是以Main()方法作为入口的,当调用此方法时系统就会自动创建一个主线程。线程主要是由CPU寄存器、调用栈和线程本地存储器(Thread Local Storage,TLS)组成的。CPU寄存器主要记录当前所执行线程的状态,调用栈主要用于维护线程所调用到的内存与数据,TLS主要用于存放线程的状态信息。(即线程是CP

2020-05-27 00:22:19 276

原创 2020/5/12 使用C#力扣刷题记录

判断是否为丑数public class Solution { public bool IsUgly(int num) { //判断一个数是否为丑数 if(num < 1) return false; while(num % 2 == 0) num /= 2; while(num % 3 == 0) num /= 3; while(num % 5 == 0) num /= 5; return

2020-05-12 18:28:08 491

原创 音视频开发基础(七)理解FFMpeg重要结构体及常用成员

AVStream1.简介AVStream在FFmpeg使用过程中关于编解码至关重要的结构体之一,是对流(Stream)的封装和抽象,描述了视频、音频等流的编码格式等基本流信息。此外也是音频、视频、字母数据流的重要载体。2.源码解读typedef struct AVStream { int index; /**< 在AVFormatContext中的stream索...

2020-04-05 11:08:09 275

原创 音视频开发基础(六)AAC基础

一、AAC是什么(一直音频编码的方式,MP4里面音频是AAC)AAC(Advanced Audio Coding),中文名:高级音频编码。出现于1997年,基于MPEG-2的音频编码技术。由Fraunhofer IIS、杜比实验室、AT&T、索尼等公司共同开发,目的是取代MP3格式。2000年,MPEG-4标准出现后,AAC重新集成了其特性,加入了SBR技术和PS技术,为了区别于传统...

2020-04-02 11:17:13 437

原创 音视频开发基础(五)H264基础

一、H.264是什么(是一种标准)首先H.264是一种高度压缩数字视频压缩编码器的标准。H.264最大的优势是具有很高的数据压缩比率,在同等图像质量的条件下,H.264的压缩比是MPEG-2的2倍以上,是MPEG-4的1.5~2倍。这里说一下X264它是一个编码器,参照的标准是H.264标准。编码出来的数据就是H264数据。二、H264相关名词解释NALU:H264编码数据存储或传输的基本单...

2020-04-01 22:23:44 390

原创 力扣刷题2020/3/13

一、两数之和class Solution {public: vector<int> twoSum(vector<int>& nums, int target) { //由于不能重复利用,所以容易想到hash vector<int>res; if(nums.size() <= 0) ret...

2020-03-14 19:02:46 87

原创 2020/3/12力扣刷题

一、最小树/** * Definition for a binary tree node. * struct TreeNode { * int val; * TreeNode *left; * TreeNode *right; * TreeNode(int x) : val(x), left(NULL), right(NULL) {} * }; ...

2020-03-12 14:31:05 142

原创 音视频开发基础(四)编码音视频----aac编码和h.264编码实现

PCM编码成AAC数据#include <faac.h>#include "faaccfg.h"#include <stdio.h>#include <stdlib.h>#include <string.h>typedef struct AAC{ faacEncHandle hEncoder; //编码描述符 ...

2020-03-09 21:16:42 556

原创 音视频开发基础(三)X264编码库

编译安装X264库git clone http://git.videolan.org/git/x264.gitcd x264./configure --enable-shared --disable-asmmakesudo make install编译完成之后编译的库在/usr/local/lib下面X264编码需要用到的结构体typedef struct _X264Encode...

2020-03-08 23:31:14 371

原创 音视频开发基础知识(二)像素格式转换

绪论在上篇博客中已经总结了常用的两种像素格式YUV与RGB。本篇博客将用代码来实现两种像素格式间,和两种像素格式的转换。视频宽高与不同像素格式占用的存储空间例如:一个视频的视频宽度为Width、高度为Height 那么像素格式所占存储空间RGB16Width * Height * 2––RGB24Width * Height * 3––...

2020-03-07 23:15:36 342

原创 音视频开发基础知识(一)像素格式

像素格式概念像素格式指的是图像的具体像素用什么所表示。指的是原始数据或者解码之后的数据。常见像素格式RGBRGB色彩模式是工业界的一种颜色标准,是通过对红、绿、蓝三个颜色通道的变化以及它们相互之间的叠加来得到各式各样的颜色的,RGB即是代表红、绿、蓝三个通道的颜色,这个标准几乎包括了人类视力所能感知的所有颜色,是目前运用最广的颜色系统之一。而我们显示器能够直接显示的格式就是RGB格式RGB...

2020-03-07 21:54:56 1318

原创 Linux(Ubutun)V4L2采集YUV422转YUV420,ALSA采集pcm、QT播放音频QOpenGL显示

在Ubutun16.0.中使用V4L2采集采集视频数据(YUV422)转换成YUV420数据,再使用ALSA采集pcm数据。在两个线程中分别播放音频视频。其中音频使用QT自带的multimedia播放YUV420数据由Opengl实时渲染显示。YUV422转420代码//YUV422转YUV420int YuvCapture::Yuv422ToYuv420(unsigned char ...

2020-03-07 14:32:50 971

原创 二叉树算法面试笔试总结

一、翻转一颗二叉树递归实现TreeNode * invertTree(TreeNode *root){ if(!root) return NULL; TreeNode *tmp = root->left; root->left = invertTree(root->right); root->right = invertTree(root->left);...

2020-03-04 23:36:56 77

原创 力扣刷题2020-3-2

一、化栈为队列class MyQueue {private: //两个栈 一个实现进 一个实现出 //栈是先进后出,队列先进先出 stack<int>s1; stack<int>s2; int size;public: /** Initialize your data structure here. */ My...

2020-03-02 18:46:43 150

原创 力扣刷题记录2-29-2020-3-1

一、字符串轮转class Solution {public: bool isFlipedString(string s1, string s2) { if(s1.size() != s2.size()) return false; if(s1.size() == s2.size() & s1.size() == 0) return true;...

2020-03-01 22:17:35 255

原创 力扣刷题记录-2020-2-28

一、给定一个字符串,编写一个函数判定其是否为某个回文串的排列之一。回文串是指正反两个方向都一样的单词或短语。排列是指字母的重新排列。回文串不一定是字典当中的单词。class Solution {public: bool canPermutePalindrome(string s) { if(s.size() <= 0) return false; ...

2020-02-28 12:24:12 185

原创 Linux(Ubutun)使用V4L2采集摄像头数据

Ubutun 安装V4L库sudo apt-get install libv4l-dev直接使用如上命令即可安装。V4L2介绍 V4L与V4L2的区别V4L是 Video for Linux的缩写,它是Linux 内核中关于视频设备的子系统,它为linux 下的视频驱动提供了统一的接口,使得应用程序可以使用统一的API 函数操作不同的视频设备,极大地简化了视频系统的开发和维护。由于早期...

2020-02-27 20:26:49 3677 1

原创 力扣刷题记录2020-2-27

一、大小为K且平均值大于等于阈值的子数组数目class Solution {public: int numOfSubarrays(vector<int>& arr, int k, int threshold) { //k个平均值为threshold。总大小k*threshold if(arr.size() < k) retur...

2020-02-27 12:55:32 123

原创 QT+FFmpeg+OpenGL-Shader实现视频播放器

一、项目功能展示模块。初始运行界面打开文件进行播放:快进暂停/播放功能在播放过程中继续打开其他文件播放等全屏功能。二、项目架构本项目分为几大模块:打开获取视频信息模块、解封装解码模块、音频解码模块、视频解码模块、音频播放模块、视频播放模块、视频图像渲染模块、显示界面模块。三、项目实现思路。1.打开文件,进行解封装。创建解封装上下文AVFormatContext调用avfor...

2020-02-21 17:20:23 2331 2

原创 VS中QT项目移植到qtcreato出现错误解决

vsQT项目到qtcreator中运行???? error: No rule to make target ‘GeneratedFiles//moc_vsqt.cpp’, needed by 'deb将源文件的Q_OBJECT 注释掉就可以了~~~

2020-01-28 13:00:16 413

原创 FFMPEG---常用结构体以及编译的几个库文件

1.编译FFMPEG1.下载ffmpeg进入ffmpeg官网下载ffmpeg的安装包进入下载。我是在linux环境下。下载Ubutun安装包。但是对于学习ffmpeg使用2XX版本的就可满足要求。现在网上很多代码都是基于老的FFMPEG库。而最近ffmpeg包摒弃了一切API 并且对API做了调整使用tar -zxvf解压FFmpeg编译需要 YSM X264这两个库,所以还需要下载...

2020-01-03 23:46:23 617

原创 音视频学习-------任意格式音频文件转码成MP3文件(使用ffmpeg转码实现)

源代码void ConvertAuidoToPCMWithPath(const char *inputPath, const char *outputPath){ AVFormatContext *pFormatCtx=NULL; FILE *pFile = fopen(outputPath,"wb"); if (!pFile){ fpr...

2020-01-02 23:36:16 578 1

原创 音视频学习----------Ubutun下使用alsa录音成Pcm文件再使用liblame转码Pcm成mp3文件

源代码实现#include <stdio.h>#include <stdlib.h>#include <errno.h>#include <alsa/asoundlib.h>#include <signal.h>#include <lame/lame.h>/*PCM文件转码成mp3文件*/void Conv...

2020-01-02 23:30:26 248

原创 Linux下samba的简单配置Windows与linux文件共享

sambasamba是什么?能干什么?什么场合需要用到它?1.samba 是基于SMB协议(ServerMessage Block,信息服务块)的开源软件,samba也可以是SMB协议的商标。SMB是一种Linux、UNIX系统上可用于共享文件和打印机等资源的协议,这种协议是基于Client\Server型的协议,Client端可以通过SMB访问到Server(服务器)上的共享资源。当Wind...

2019-10-25 11:06:29 188

原创 基于Linux C GTK使用epoll+TCP/UDP实现及时通讯软件

本项目花费大概15天时间去实现大致功能入下:1.登录2.注册3.忘记密码4.私聊5.同时多发发送大文件并且能聊天6.语音消息7.语音通话8.群聊9.离线语音消息 私聊消息 群聊消息一登录界面二、注册窗口三、忘记密码窗口五、登录成功界面登录新用户自动刷新在线状态 发消息功能语音消息语音通话功能发送文件模块功能待更新...

2019-08-14 14:12:20 983 2

原创 C++类和对象

类与struct的区别class默认是私有的,使用堆存储,可以被继承。struct是公有的,使用栈存储,不可以选择。堆栈空间有限,对大量逻辑对象创建类好一些。结构表示点,矩,颜色的轻量对象,成本较低表现抽象使用类类型为数据时,结构体较好类成员的访问控制private:只能在类的内部访问,继承后子类不可以访问public:公有在类的外部可以访问(通过对象)protected:只能在...

2019-07-27 19:10:37 86

原创 c语言关键字

C语言作用关键字**:static const typedef extern register volatilestatic:1.修饰局部变量时(在函数体内):一个被声明为静态的变量在函数过程中值保持不变,使得声明周期延长至程序结束,此时的变量存放区域为数据段上。(从而可以少使用全局变量)2.修饰全局变量:使得全局变量的作用域在本文件中,不能被其他文件使用3.修饰函数:使得函数的作用域只在...

2019-05-19 23:51:16 311

原创 C语言函数指针

函数指针变量:首先:函数名的作用:是一个指针常量,保存函数的入口地址,步长为1定义一个函数int add(int a, int b){return a + b;}int (*p)(int ,int) = add;这样p就可以当add函数去使用。完成加法运算,这是最普通的用法常用用法:回调函数;可以实现统一接口调用不同函数(用函数指针做形参),从而增加代码的扩展性。如int c...

2019-05-13 23:28:24 90

原创 C语言指针与数组理解

指针32位机C语言中指针是变量:所以它有如下特点:1.所占内存大小(4个字节 );2.作用域3.存储区域而指针又有步长,当指针进行表达式运算时。其步长跟所定义指针的类型相关如:char *p 步长为1 int *p 步长为4;所以在进行不同步长指针赋值时,会出现数据错误。延伸出另外一个知识点:大端字节序与小端字节序。这是由不同cup决定的(inter大多数是小端字节序)小...

2019-05-12 00:47:12 172

原创 C语言指针总结(第一结)

内存和地址我们可以把计算机的内存看成一条长街上的一排房屋。每个房子都可以容纳数据,并可以通过房号来标识但是计算机的内存由数以万计的位组成,每个位可以容纳0/1,由于一个为能标识的值范围太有限,通常许多位组成一组合成一个单位,叫字节。一个字节包含8位 可以存储无符号值0 ~ 255,或者有符号数-128 ~127。为存储更大的值,通常把多个字节合在一起作为更大的内存单位。从而内存中的每个位...

2019-04-17 11:20:37 268

原创 C语言基础

一基本数据类型int整型在大多数计算机占32位,TC中站2位,已32位机为例**float **单精度浮点数,一般是4个字节长double双精度浮点数,一般是8个字节长字符型char字符,一般是1个字节长用来表示256个ASCII字符,或者0~255的整数由此涉及到不同类型的数进行运算负数在计算机中以补码形式存在。如int j = -20;unsigned int i...

2019-04-16 17:45:39 181

原创 静态库动态库

1.库文件就是用来保存函数和变量的长裤,只能使用库文件里的函数或者变量,但是无法看到它的源码即无法实现,如我们C语言中的pritf scanf strcpy等函数。2Linux下的库文件分为两种:静态库 .a在编译时加载动态库 .so在启动时加载编译器优先加载动态库他们的存放位置在根目录下的lib文件夹下与根目录下/usr/lib目录下其中:根目录下lib存放的是系统运行时需要加载...

2019-04-08 00:17:26 122

原创 Linux下GUN之GCC编译器

gcc是一款linux Gun计划当中的一款编译工具,用于编译C语言文件。其显著特点就是可以交叉编译。说道交叉编译首先因为汇编语言的特点是,能够直接访问硬件,并且每款CPU都有自己的汇编语言。由于嵌入式系统需要进行操作系统的移植,并且在主机上开发的软件程序需要跑到特点的嵌入式系统中,不同的嵌入式系统所用到的处理器也是不同的如PC机CPU采用的是X86架构,即对应x86版汇编手机大多数采...

2019-04-02 14:15:10 1668

Linux(Ubutun)V4L2采集YUV422转YUV420,ALSA采集pcm、QT播放音频QOpenGL显示

Linux(Ubutun)V4L2采集YUV422转YUV420,ALSA采集pcm、QT播放音频QOpenGL显示

2020-03-07

C语言实现带文件操作的通讯录

Linux c 环境下实现的一个简单通讯录,添加,删除,查找,遍历,清空,写入到文件,重文件当中读等操作。并且使用makefile编程

2019-03-14

空空如也

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

TA关注的人

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