- 博客(57)
- 资源 (3)
- 收藏
- 关注
原创 链接整理分享
1、Cache基本原理:https://zhuanlan.zhihu.com/p/102293437?utm_source=qq
2020-11-24 14:50:35 351 1
原创 C语言面试基本点整理
1、static和extern:1). 在函数体,一个被声明为静态的变量在这一函数被调用过程中维持其值不变。 2). 一个被声明为静态的变量可以被模块内所用函数访问,但不能被其他文件函数访问。它是一个本地的全局变量。 3). 在模块内,一个被声明为静态的函数只可被这一模块内的其它函数调用,这个函数被限制在声明它的模块的本地范围内使用。C++中的static 在C++中static还具有其它功能...
2018-03-29 00:14:07 3452
原创 C++基础
在上面的例子中,makeSound() 方法是一个虚函数,在动物类中声明为虚函数并且没有实现,这意味着每个子类都可以提供自己的实现。虚函数是在基类中声明的函数,它可以在派生类中被重新定义,并且在运行时确定调用的是哪个版本。在上面的例子中,makeSound() 方法在基类 Animal 中被声明为虚函数,它的行为取决于具体的子类。继承是指一个类(子类)可以继承另一个类(父类)的属性和方法。在这个例子中,狗类和猫类都可以继承动物类的属性和方法,例如它们都有颜色、年龄等属性,以及行为,如移动和发出声音。
2024-02-21 13:26:40 368
转载 Makefile
在当前文件或子目录下自动编译:SHELL=/bin/shCC = $(CROSS_COMPILE)gccCXX = $(CROSS_COMPILE)g++LD = $(CROSS_COMPILE)ldCFLAGS +=LDFLAGS +=-L.MAKE_DIR=$(PWD)CFLAGS += $(INCLS)CXXFLAGS += $(INCLS)#find all the sub-directoryVPATH=$(foreach dir,$(shell find . -
2021-02-08 02:47:10 891
原创 DPDK背景和优势
https://cloud.tencent.com/developer/article/11983331.传统的收发报文方式都必须采用硬中断来做通讯,每次硬中断大约消耗100微秒,这还不算因为终止上下文所带来的Cache Miss。2.数据必须从内核态用户态之间切换拷贝带来大量CPU消耗,全局锁竞争。3.收发包都有系统调用的开销。4.内核工作在多核上,为可全局一致,即使采用Lock Free,也避免不了锁总线、内存屏障带来的性能损耗。5.从网卡到业务进程,经过的路径太长,有些其实未.
2021-01-29 11:19:43 2100
原创 Callback回调函数
Callbck回调函数#include <stdio.h>int callback_1(){ printf("Hello, this is callback_1\n"); return 0;}int Handle(int (* callback)){ callbck(); return 0;}int main(){ printf("Entering Main Function. \n"); Handle(callback_1); return 0;}..
2021-01-28 13:13:49 208
原创 sizeof字节对齐
1、根据最大的占的字节变量和偏移量来计算:#include <stdio.h>struct{ int a; //4字节 double b;//8字节 short c;//2字节}A;int main(){ printf("sizeof A =%d",sizeof(A)); return 0;}最大字节变量为double b 为8字节偏移量: a 4 * 0 = 0; b 8 * 1 =...
2021-01-27 17:10:26 232
转载 Linux echo 显示内容颜色
格式echo 显示内容颜色,需要使用 -e 参数-e :打开反斜杠转义 (默认不打开) ,可以转义 “\n, \t” 等-n:在最后不自动换行str="kimbo zhang"echo -e "\033[字背景颜色;文字颜色m ${str} \033[0m"注:文字颜色后面有个m举例1,字体颜色#字体颜色:30m-37m 黑、红、绿、黄、蓝、紫、青、白str="kimbo zhang"echo -e "\033[30m ${str}\033[0m" ...
2020-10-28 14:57:30 204
转载 C语言实现的一个简单的HTTP程序
C语言实现的一个简单的HTTP程序以下是参考<winsock网络编程经络>中讲解web应用http协议的时候,实现的一个简单的http程序,包含一个服务器和一个客户端。先贴上客户端的程序: /************************************************************************* * * Copyright (c) 2012-...
2018-06-18 10:49:33 8030
原创 HTTP协议
HTTP是一个基于TCP/IP通信协议来传递数据(HTML 文件, 图片文件, 查询结果等)。HTTP 工作原理HTTP协议工作于客户端-服务端架构上。浏览器作为HTTP客户端通过URL向HTTP服务端即WEB服务器发送所有请求。Web服务器有:Apache服务器,IIS服务器(Internet Information Services)等。Web服务器根据接收到的请求后,向客户端发送响应信息。H...
2018-06-16 09:08:14 258
转载 MJPG-streamer源码分析-输出部分
MJPG-streamer源码分析-输出部分MJPG-streamer可以创建多个输出,简单的说,根据主函数中输入的参数解析的结果,确定输出通道的个数,至少保证有一个输出通道在程序运行时存在。从参数解析结果确定每个输出通道的参数,并以这些参数为每个通道创建发送线程。在每个发送线程上,不断侦听是否有连接请求。每当有连接请求,在未达到最高连接数目时,为每个连接请求创建连接线程。在连接线程中,根据参数,...
2018-06-07 21:25:07 531
转载 最简单的基于libVLC的例子:最简单的基于libVLC的推流器
最简单的基于libVLC的例子文章列表:最简单的基于libVLC的例子:最简单的基于libVLC的视频播放器最简单的基于libVLC的例子:最简单的基于libVLC的视频播放器(图形界面版)最简单的基于libVLC的例子:最简单的基于libVLC的推流器=====================================================本文记录基于libVLC的最简单的推流器...
2018-06-06 22:33:59 360
转载 RTSP再学习 -- 利用FFmpeg 将 rtsp 获取H264裸流并保存到文件中
既然已经可以通过 RTSP 获取h264 裸流了。那么通过 FFmpeg 将其保存到文件中怎么做呢?一、首先RTSP获取 h264 裸流我们上面两篇文章主要讲的是通过 rtsp://Your ip:554/stream_chn0.h265 播放H.265视频流。PS:我刚试了一下,我的 FFmpeg 程序暂时不支持 h265 ... 之前编译的时候,只提供了 x264没有x265如果感兴趣参看...
2018-06-05 22:44:25 700
转载 Linux C语言的Socket编程例子(TCP和UDP)
套接字是一种进程间的通信的方法,不同于以往介绍的进程间通信方法的是,它并不局限于同一台计算机的资源,例如文件系统空间,共享内存或者消息队列。套接字可以认为是对管道概念的扩展——一台机器上的进程可以使用套接字与另一台机器上的进程通信。因此客户与服务器可以分散在网络中。同一台机器上的进程间也可以用套接字通信。套接字是一种通信机制,客户/服务器系统既可以在本地单机上运行,也可以在网络中运行。套...
2018-06-04 20:32:45 1919 1
原创 文章目录结构
一、V4L2视频采集与H264编码1、socket发送一帧JPG格式的流:2、保存的照片格式为jpeg,文件后缀为.jpg3、通过x264库实现yuv格式编码为h264的视频二、
2018-06-04 19:18:34 549
原创 录像socket服务端
#include <stdio.h>#include <string.h>#include <stdlib.h>#include <sys/socket.h>#include <arpa/inet.h>#define RCV_BUF_LEN 200int check_cmd(char *cmd){ int i,g=0,...
2018-06-02 22:34:05 222
原创 局域网socket传输视频流
ret=pthread_create(&cam_id,NULL,cam_work,NULL); //启动摄像头采集线程void *cam_work(void *arg){ struct sockaddr_in img_peer; socklen_t len=sizeof(struct sockaddr_in); struct v4l2_buffer buf_temp; ...
2018-06-02 21:45:15 8232
转载 udp socket: 简单的数据包与视频流传输
简单的包传输客户端向服务端发送数据包,服务端打印出来。 我们来传送一首诗吧,柳永的《雨霖铃》 服务端:#include <stdio.h>#include <sys/socket.h>#include <sys/types.h>#include <string.h>#include <netinet/in.h>#include ...
2018-06-02 15:24:29 9874 1
转载 MJPEG原理
拍照:static int pixel_format=V4L2_PIX_FMT_MJPEG; 保存的文件格式为:jpg这里涉及到我们如何从摄像头中把数据取出来,首先是封装一个结构体用来描述摄像头的一些信息,比如采集图片的宽高,图片的格式,等等。通过ioctl完成来初始化摄像头,涉及到的命令包括VIDIOC_QUERYCAP、VIDIOC_S_FMT、VIDIOC_S_PARM、VI...
2018-06-02 14:31:56 7211
转载 Linux V4L2 摄像头视频采集
一,什么是 video4linuxVideo4linux(简称V4L),是linux中关于视频设备的内核驱动,现在已有Video4linux2,还未加入linux内核,使用需自己 下载补丁。在Linux中,视频设备是设备文件,可以像访问普通文件一样对其进行读写,摄像头在/dev/videoN下,N可能为0,1,2,3... 一般0.另,推荐一个用于播放从摄像头采集到的raw数据的播放器RawPla...
2018-06-02 08:48:28 595
转载 V4L2视频应用程序编程架构
V4L2介绍编辑V4L2有一段历史了。大约在1998的秋天,它的光芒第一次出现在Bill Dirks 的眼中。经过长足的发展,它于2002年11 月,发布2.5.46 时,融入了内核主干之中。然而直到今天,仍有一部分内核驱动不支持新的API,这种新旧API 的转换工作仍在进行。同时,V4L2 API也在发展,并在2.6.18 版本中进行了一些重大的改变。支持V4L2的应用依旧相对较少。V4L2在设...
2018-06-02 08:10:58 212
转载 C语言链表
一个简单结点的结构体表示为: struct note { int data; /*数据成员可以是多个不同类型的数据*/ struct note *next; /*指针变量成员只能是-个*/ }; 一个简单的单向链表的图示 1.链表是结构、指针相结合的-种应用,它是由头、中间、尾多个链环组成的单方向可伸缩的链表,链表...
2018-04-15 23:25:28 431
原创 win10关闭自动更新
删除下载补丁的文件夹,设置只读权限C:\Windows\SoftwareDistribution\Download现在删除download整个文件夹然后新建一个名叫download的空白文件(记得把扩展名去掉),加上只读属性...
2018-04-07 23:14:26 231
原创 软通生活思考
时间一晃,在软通已经呆了1年半了,16年的8月18入职的软通。当时大夏天,忙着找工作,最后拿到两份offer,一份是做股票软件的,需要用C++弄个股票客户端,还有一份就是软通了,当时觉得外包也没啥区别,终于对着工资来了软通。入职过后就一直外包到华为了,当时是跟着BMC项目组做的NVME,然而并没做什么,啥事都没干,写了测试脚本,后面就换到ARM组了,手动测试容器和裸机发放,一直到了5月15...
2018-04-02 20:35:56 2248 2
转载 C/C++ 笔试——三
C/C++ 笔试、面试题目大汇总这些东西有点烦,有点无聊。如果要去C++面试就看看吧。几年前网上搜索的。刚才看到,就整理一下,里面有些被我改了,感觉之前说的不对或不完善。 1.求下面函数的返回值( 微软) int func(x) { int countx =0; while(x) { countx ++; x = x&(x-1); } return countx; } 假定x = 9999...
2018-03-31 12:15:49 312
转载 C++经典面试题全集——二
C++经典面试题全集 50~100道 标签:C++面试题51. 引用与指针有什么区别?答 、1) 引用必须被初始化,指针不必。2) 引用初始化以后不能被改变,指针可以改变所指的对象。3) 不存在指向空值的引用,但是存在指向空值的指针。 52. 描述实时系统的基本特性答 、在特定时间内完成特定的任务,实时性与可靠性。 54. 全局变量和局部变量在内存中是否有区别?如果有,是什么区别?答 、全局...
2018-03-31 12:14:35 288
转载 C++基础面试——一
面试中的C++常见问题1.在C++ 程序中调用被C 编译器编译后的函数,为什么要加extern “C”?答:首先,extern是C/C++语言中表明函数和全局变量作用范围的关键字,该关键字告诉编译器,其声明的函数和变量可以在本模块或其它模块中使用。通常,在模块的头文件中对本模块提供给其它模块引用的函数和全局变量以关键字extern声明。extern "C"是连接申明(linkage declar...
2018-03-31 11:25:15 15861
转载 C语言面试基础知识之一
第一部分:基本概念及其它问答题1、关键字static的作用是什么?这个简单的问题很少有人能回答完全。在C语言中,关键字static有三个明显的作用:1). 在函数体,一个被声明为静态的变量在这一函数被调用过程中维持其值不变。2). 在模块内(但在函数体外),一个被声明为静态的变量可以被模块内所用函数访问,但不能被模块外其它函数访问。它是一个本地的全局变量。3). 在模块内,一个被声明为静态的函数只...
2018-03-31 11:21:46 23966 4
原创 uvc以h264格式保存
#include <stdio.h>#include <stdlib.h>#include <unistd.h>#include <sys/types.h>#include <sys/stat.h>#include <sys/file.h>#include <string.h>#include &am
2018-03-29 00:08:12 2342
转载 V4L2视频采集与H264编码2—v4l2采集YUV数据
在上一篇中因为是在PC机上使用的USB摄像头只能支持GPEG image格式,但是H264编码需要使用YUV数据,所以我找了个ARM开发板来做测试。本以为代码从PC机移植到开发板是很简单的一个事,谁知因为平台或是V4L2底层驱动的不同,最终也是花了九牛二虎之力才把问题给解了。话不多说,直接上代码:[objc] view plain copy/*=========================...
2018-03-28 23:57:36 418
转载 FFMPEG 编码YUYV 数据
《最简单的基于FFMPEG的视频编码器(YUV编码为H.264)》,它介绍的是使用FFMPEG将YUV420 数据编码成H.264数据。在它的博客中,没有介绍到YUYV数据格式的编码,但是我们在实际应用中,有时候摄像头只能输出YUYV数据格式,这样他的工程就不能使用了。经过一通折腾,终于在他的基础上实现了使用FFMPEG将YUYV编码成H264数据。 因为YUYV数据是属于YUV422格式,...
2018-03-28 23:53:27 1075
转载 Linux 下实现RTP实时打包发送H.264视频文件
在实现H264实时RTP打包和发送之前,我们需要先熟悉H264的编码原理及语法结构,然后是熟悉RTP协议以及RTP协议传输H264数据的相关准则。下面是与此相关的几篇博客。 H264语法结构及编码原理 RTP Payload H264 Linux 下实现RTP实时打包发送H.264码流 下面是rtp.c的代码[objc] view plain copy/*=========...
2018-03-28 23:50:53 880
转载 Wireshark基本介绍和学习TCP三次握手
之前写过一篇博客:用 Fiddler 来调试HTTP,HTTPS。 这篇文章介绍另一个好用的抓包工具wireshark, 用来获取网络数据封包,包括http,TCP,UDP,等网络协议包。记得大学的时候就学习过TCP的三次握手协议,那时候只是知道,虽然在书上看过很多TCP和UDP的资料,但是从来没有真正见过这些数据包, 老是感觉在云上飘一样,学得不踏实。有了wireshark就能截获这些网络数据包...
2018-03-28 23:46:34 144
转载 使用RTMPdump(libRTMP)直播来自v4l2的摄像头数据
转载至:https://blog.csdn.net/li_wen01/article/details/71548079 RTMP是Real Time Messaging Protocol(实时消息传输协议),RTMPdump 封装了RTMP协议的一些接口,使用户使用RTMP协议更加的方便。关于RTMPdump的使用,可以参考博客 linux系统RTMPdump(libRTMP) 通过RTMP...
2018-03-28 23:44:09 258
转载 FFMPEG学习记录及总结
转载至: https://blog.csdn.net/li_wen01/article/details/60765749FFMPEG是一套非常强大的软件,他主要提供音视频格式转换,图像拉升,添加水印,视频截图等功能。关于FFMPEG的学习资料非常的多,以雷神为主的博客非常详细介绍了FFMPEG的使用和具体实现。但是雷神的博客多以Windows平台开发,对于我等初学者,能做的就是把他们应用到linu...
2018-03-28 23:41:00 247
转载 Linux中快速定位段错误的方法
在做嵌入式Linux开发的时候,程序很容易出现段错误。段错误一般是内存操作指针出错或是内存溢出等问题,有的时候系统会有一点错误提示,但有的时候就直接提示个Segmentation fault (core dumped) 。如果程序是单线程,那很好处理,编译的时候添加参数-g ,直接使用gdb 单步调试就可以直接定位到问题点在哪了。但是对于多线程,情况就不一样了。多线程进行单步调试不好处理,并且...
2018-03-28 23:39:05 5814 2
转载 socket详解
“一切皆Socket!”话虽些许夸张,但是事实也是,现在的网络编程几乎都是用的socket。——有感于实际编程和开源项目研究。我们深谙信息交流的价值,那网络中进程之间如何通信,如我们每天打开浏览器浏览网页时,浏览器的进程怎么与web服务器通信的?当你用QQ聊天时,QQ进程怎么与服务器或你好友所在的QQ进程通信?这些都得靠socket?那什么是socket?socket的类型
2017-10-31 22:11:14 174
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人