
工作学习
文章平均质量分 50
傻不拉几的程序员
开放、共享、合作,共赢;
展开
-
C 读文件
#include <stdio.h>#include <stdlib.h>#include <string.h>#pragma warning(disable:4996)FILE *fp = NULL;static void read_file_ex(const char *file_name){ char *line=NULL; char *p_pos = NULL; fp = fopen(file_name, "wb");...原创 2022-02-21 21:16:15 · 557 阅读 · 1 评论 -
ffmpeg命令行参数
ffplay:-ss 10:从第10秒开始播放-t 10:播放10秒-autoexit:播放完后自动退出-window_title "adfas":windows窗口显示adfas-x 400:窗口宽400-y 400:窗口高400-vcodec h264:强制解码器h264解码-acodec aac:强制音频解码器aac解码-an:禁用音频-vn:禁用视频-i 输入流-f 设定输出格式音频参数:-aframes :设置要输出的音频帧数-b:a 音频码率-ar ...原创 2021-10-16 20:01:59 · 1067 阅读 · 0 评论 -
AV1码率控制
AV1源码:libaom-2.0.0一、什么时候会计算码率?encoder_init 和 encoder_ctrl_maps二、如何计算初始化的编码比特数? encoder_init 和 设置 rc_control 时会调用 av1_change_config 进行码率计算与设置:帧的比特率是如何分配的? 1、encoder_init --> create_context_and_bufferpool --> av1_create_compressor --> in...原创 2021-10-10 18:29:54 · 1338 阅读 · 1 评论 -
AVC、HEVC、VVC帧间预测技术
帧间预测总体思路: 帧间预测主要的工作是运动估计与运动补偿。 所谓运动估计简单说就是在参考帧中找到当前块的最优参考块,用运动向量(MV)表示参考块与当前块的位置关系。 所谓运动补偿简单说就是对参考块与当前块求差值得到残差用于传输。 总的过程:通过搜索算法找到最优的参考块,计算MV,计算残差, MV提供位置信息,残差提供值的信息。==================================================================...原创 2021-09-25 09:47:47 · 1202 阅读 · 0 评论 -
AVC/HEVC/VVC/AV1 帧间预测:运动估计、运动补偿
帧间预测主要的工作是运动估计与运动补偿:所谓运动估计简单说就是在参考帧中找到当前块的最优参考块,用运动向量(MV)表示参考块与当前块的位置关系。所谓运动补偿简单说就是对参考块与当前块求差值得到残差用于传输。总的过程:通过搜索算法找到最优的参考块,计算MV,计算残差,MV提供位置信息,残差提供值的信息。=================================================================...原创 2021-09-22 20:02:18 · 2665 阅读 · 0 评论 -
AVC/HEVC/VVC/AV1 块划分、帧内预测过程及预测模式编码
预测过程HEVC: 在当前块内的像素被映射到参考像素之后,用最邻近的两个参考像素通过线性插值来生成预测像素值。VVC:对于靠近水平和垂直方向的方向预测,采用4-tap Cubic 插值滤波器来更好的保留图像的边缘信息,对于靠近对角线方向的方向预测,采用4-tap Gaussian 插值滤波器来生成更加平滑的预测图像。DC模式的差异: HEVC的编码块都是方形的,所以DC计算时不使用除法(移位);VVC则会出现矩形的CU,所以计算DC模式时会...原创 2021-09-20 17:43:27 · 7759 阅读 · 0 评论 -
VS调试问题
1、error C2143: 语法错误 : 缺少“;”(在“{”的前面)如果是头文件中,函数前加static inline 直接去掉。2、error C4996: 'av_init_packet': 被声明为已否决是因为函数或者结构体属性被标示为attribute_deprecated,很有可能在未来的版本中就删除了。3、error LNK2001: 无法解析的外部符号 avformat_close_inputlib的库的类型不对:release 和 debug4、error LNK201原创 2021-09-22 19:06:39 · 970 阅读 · 0 评论 -
快速排序-----c
查看文件依赖项时:not a dynamic executable方法:ldd ./autogen/shLD_TRACE_LOADED_OBJECTS=1 ./autogen.sh readelf -d 你的程序 | grep NEEDED设置行号,进入/etc/vimrc(/etc/virc) 添加:set number...原创 2021-08-15 21:40:39 · 101 阅读 · 0 评论 -
LZW压缩算法源码下载
github地址:https://github.com/jobbuffer/lzw_encoder-decoder资源:https://download.youkuaiyun.com/download/fengxianghui01/20464566原创 2021-07-25 21:13:41 · 254 阅读 · 0 评论 -
二叉搜索树:创建、插入、查找、遍历,删除(有点儿问题)
/*=============================================针对二叉搜素树=============================================*/#include <stdio.h>#include <string.h>#include <malloc.h>#include <stdint.h>typedef struct treeNode *Tree;struct treeNode.原创 2021-05-26 22:58:08 · 145 阅读 · 1 评论 -
AAC格式分析——头部含义解析
原创 2020-11-30 23:29:40 · 618 阅读 · 0 评论 -
进程间通信(附进程同步源码)
摘要: 进程的用户空间是互相独立的,一般而言是不能互相访问的,唯一的例外是共享内存区。另外,系统空间是“公共场所”,各进程均可以访问,所以内核也可以提供这样的条件。此外,还有双方都可以访问的外设。在这个意义上,两个进程当然也可以通过磁盘上的普通文件交换信息,或者通过“注册表”或其它数据库中的某些表项和记录交换信息。广义上这也是进程间通信的手段,但是一般都不把这算作“进程间通信”。简介: 进程间通信(IPC,Interprocess communication)是一...原创 2020-05-13 22:08:12 · 839 阅读 · 0 评论 -
FLV、AAC、AVC封装格式分析
/*============================================================================ FLV格式分析------------------------------------------------------------------------------FILE Header:固定9字节----------------------------------------------------------------------.原创 2020-11-29 11:31:38 · 1905 阅读 · 0 评论 -
MP4封装格式分析
参考文章:https://www.jianshu.com/p/529c3729f357/*====================================================================================* sample:mp4格式分析*-------------------------------------------------------------------------------------* MP4由box组成,box中的.原创 2020-11-21 17:03:43 · 320 阅读 · 0 评论 -
windows及linux下,socket创建
#include <stdio.h>#include <string.h>#ifdef _WIN32#include <WinSock2.h>#pragma commnet(lib, "ws2_32.lib");#else#include <sys/socket.h>#include <sys/inet.h>#include <errno.h>#include <sys/time.h>#inc.原创 2020-11-15 14:21:24 · 960 阅读 · 0 评论 -
ffmpeg重要函数和结构体整理
参考:https://blog.youkuaiyun.com/leixiaohua1020/article/details/14215369自己学习记录,方便以后查看。=======================================================================================================================ffmpeg关键结构体类型:1)解协议AVIOContext,URLProtocol,URLCo.原创 2020-11-08 16:32:10 · 592 阅读 · 1 评论 -
(C)从文件中读取配置项值
配置文件内容:[cfg]ip=192.168.10.1port=5890方式一:纯粹的读匹配static void test_get_cfg_value(char *file_path){ char ip[110] = { 0 }; char port[110] = { 0 }; int len = 0; int i = 0; int j = 0; char line[1024] = { 0 }; FILE *fp = fopen(file_path, "r");.原创 2020-10-08 20:21:28 · 465 阅读 · 0 评论 -
套接字之:accept()
accept()是在一个套接口接受的一个连接。函数从s的等待连接队列中抽取第一个连接,创建一个与s同类的新的套接口并返回句柄。SOCKET accept(int sockfd, struct sockaddr *addr, socklen_t *addrlen);参数 sockfd:套接字描述符,该套接口在listen()后监听连接。 addr:(可选)指针,指向...原创 2020-02-20 17:40:36 · 2001 阅读 · 0 评论 -
阻塞与非阻塞、连接与非连接
在阻塞模式下,在I/O操作完成前,执行的操作函数一直等候而不会立即返回,该函数所在的线程会阻塞在这里。相反,在非阻塞模式下,套接字函数会立即返回,而不管I/O是否完成,该函数所在的线程会继续运行。...原创 2020-02-20 00:46:17 · 552 阅读 · 0 评论 -
套接字之读写:recvfrom()、read() 和sendto() 、write()
1、read() 和write()#include <unistd.h> ssize_t read(int fd, void *buf, size_t count); 成功返回读取的字节数,出错返回-1并设置errno,如果在调read之前已到达文件末尾,则这次read返回0。 ssize_t write(int fd, const void *buf, size_t...原创 2020-02-19 19:20:07 · 7832 阅读 · 0 评论 -
如何用rand实现产生固定长度的随机数?结构体字符数组赋值?以及如何拷贝字符串?
总的代码如下;#include <string.h>#include <stdio.h>#include <stdlib.h>#include <Windows.h>#define shell_command "aaaasdff"#define snprintf(dest, size, format, ...) _snprintf_...原创 2020-02-15 13:53:33 · 486 阅读 · 0 评论 -
Mobaxterm连接Linux 虚拟机出现Network error: Connection refused错误
1、查看SSH服务有没有安装# rpm -qa | grep ssh列出很多安装包表示已经安装ssh2、查看SSH服务有没有开启# service sshd status3、开启或重启ssh服务# service sshd start即可解决问题。若出现其他情况,可联系我一起解决。...原创 2020-02-07 13:34:44 · 18492 阅读 · 2 评论 -
strcpy和strncpy、sprintf和snprintf、strcat和strncat、
警告 1 warning C4013: “snprintf”未定义;这种情况需要加入宏定义:#if _MSC_VER#define snprintf _snprintf#endif1、snprintf和strncpy的区别:snprintf会在字符串末尾添加字符串结束符 ‘\0’ ,strncpy不会。#include <Windows.h>#i...原创 2019-12-14 11:19:22 · 954 阅读 · 0 评论 -
Windows和Linux定时器的使用
timer 1:/*--------------------windows:----------------------------------*/方法1:CreateTimerQueueTimervoid process_timer(){ HANDLE g_Event = NULL; // 定时器句柄 HANDLE hTimer = NULL; HANDLE hTime...原创 2019-12-12 08:44:56 · 410 阅读 · 0 评论 -
Linux网络事件通知机制
本文为转载:https://blog.youkuaiyun.com/iampisfan/article/details/534701881. kernel space –> kernel space1.1. notifier_block原理介绍linux内核中各个子系统相互依赖,当其中某个子系统状态发送改变时,就必须使用一定的机制告知使用其服务的其他子系统,以便其他子系统采取相应的措施。为满足这...转载 2019-11-22 21:24:09 · 3028 阅读 · 1 评论 -
Linux下gcc编译生成动态链接库*.so文件并调用它
转载出处:https://blog.youkuaiyun.com/flyztek/article/details/73612469Linux下gcc编译生成动态链接库*.so文件并调用它动态库*.so在linux下用c和c++编程时经常会碰到,最近在网站找了几篇文章介绍动态库的编译和链接,总算搞懂了这个之前一直不太了解得东东,这里做个笔记,也为其它正为动态库链接库而苦恼的兄弟们提供一点帮助。1...转载 2019-11-21 22:44:33 · 549 阅读 · 0 评论 -
yum list :Another app is currently holding the yum lock; waiting for it to exit...
方法一:遇到这种问题,可能是因为启动了多个进程:杀死了这些进程:然后重启yum list:成功:注意:这是在联网情况下。方法二:进入 /etc/yum.repos.d进入CentOS-Base.repo注释掉所有的mirrorlist。修改baseurl为自己yum源挂载目录,不会挂载的请看:https://blog.csdn.ne...原创 2019-11-08 19:48:22 · 320 阅读 · 0 评论 -
autoreconf: configure.ac: not using Libtool
思路就是去yum源里面找到依赖包,然后安装:查找依赖包:yum list | grep libtool安装依赖包:yum install -y libtool一般的话是直接安装编译环境,建议报错的时候把运行环境也同时安装了:编译环境包:libtool运行环境包:libtool-devel其他问题类似解决办法。例如:...原创 2019-10-19 19:48:27 · 2742 阅读 · 0 评论 -
configure.ac:37:error: must install xorg-macros 1.3 or later before running antoconf
找到configure.ac,进入编辑 在m4_ifndf的中间添加[echo “$XORG_MACROS_VERSION”]最初本来是想查看XORG_MACROS_VERSION这个变量是什么的,结果这么一添加就不报错了。提供查找configure.ac的方法:find / -name "*configure.ac*"...原创 2019-10-19 19:37:44 · 1271 阅读 · 0 评论 -
解决:not a dynamic executable
经常会遇到不是动态连接的提示,提供三种方法查看动态链接库。方法1:ldd ./autogen.sh方法2:LD_TRACE_LOADED_OBJECTS=1 ./autogen.sh方法3:readelf -d autogen.sh | grep NEEDED...原创 2019-10-19 19:32:23 · 9999 阅读 · 0 评论 -
Can't locate Automake/Config.pm in @INC(@INC contains: /usr/local/share/automake-1.14 /xxxxx)
总是会遇到这种问题:解决方法:上传压缩包,用解压命令解压后安装。亲测有效。试过改路径啥的都没用。原创 2019-10-19 11:11:06 · 3339 阅读 · 0 评论 -
解决:error: Libtool library used but 'LIBTOOL' is undefined
在编译spice库函数pixman时,出现:pixman/Makefile.am:1: error: Libtool library used but 'LIBTOOL' is undefinedpixman/Makefile.am:1: The usual way to define 'LIBTOOL' is to add 'LT_INIT'pixman/Makefile.am:1...原创 2019-10-12 11:21:16 · 16923 阅读 · 5 评论