自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

手中沙的博客

天道酬勤,机会是送给有准备的人的。

  • 博客(138)
  • 资源 (16)
  • 收藏
  • 关注

原创 Linux代码table键转空格键

【版权申明】转载请附上出处链接Linux代码table键转空格键  适用于c文件、cpp文件、h文件(需要支持更多文件自行修改),此脚本运行会递归处理当前目录和子目录的所有文件。#!/bin/bashfind . -name '*.c' ! -type d -exec bash -c 'expand -t 4 "$0" > /tmp/e && mv /tmp/e "$0"' {} \;find . -name '*.cpp' ! -type d -exec bash -c

2021-03-22 16:12:57 549

原创 live555交叉编译时config.armlinux的修改

【版权申明】转载请附上出处链接live555交叉编译时config.armlinux的修改ROOT_PATH ?= `pwd`DESTDIR ?= $(ROOT_PATH)/../../output-targetCROSS_COMPILE ?= /opt/hisi-linux/x86-arm/arm-hisiv300-linux/binCOMPILE_OPTS = $(INCLUDES) -I. -O2 -DSOCKLEN_T=socklen_t -DNO_SSTREAM=1 -D_LA

2021-03-18 10:22:21 419

原创 静态库报错:函数重复定义或者找不到某个函数

【版权申明】转载请附上出处链接静态库报错:函数重复定义或者找不到某个函数1. 函数重复定义现象如下:  libcrypto.a 库文件发现SHA1_Update被重复定义从而报错。libcrypto.a(sha1dgst.o): In function `SHA1_Update':sha1dgst.c:(.text+0x1040): multiple definition of `SHA1_Update'libpaho-mqtt3a.a(SHA1.c.o):SHA1.c:(.text+0x5

2021-03-10 10:46:54 3149

原创 Linux合并多个静态库.a为一个.a

【版权申明】转载请附上出处链接Linux合并多个静态库.a为一个.a其他标题索引:静态库再打包多个静态库打包成一个思路:  再打包需要将当前的.a文件解包.o文件,然后统一打包成新的.a文件。环境(将所有的.a文件放到lib目录下,在lib的同级目录下运行下面的脚本):  注意会弄脏该脚本所在的目录,请自行新建目录用于运行#!/bin/sh# 循环读取 ${PWD}/lib 目录下的文件名for filename in `ls ${PWD}/lib`do # 对.a文件进行

2021-03-08 17:47:44 1200

原创 const char* 、char* const、 char const * 三者的区别

  你或许听过好几种 Make 工具,例如 GNU Make ,QT 的 qmake ,微软的 MS nmake,BSD Make(pmake),Makepp,等等。这些 Make 工具遵循着不同的规范和标准,所执行的 Makefile 格式也千差万别。这样就带来了一个严峻的问题:如果软件想跨平台,必须要保证能够在不同平台编译。而如果使用上面的 Make 工具,就得为每一种标准写一次 Makefile ,这将是一件让人抓狂的工作。什么是 CMake  CMake就是针对上面问题所设计的工具:它首先允许.

2021-03-08 15:24:48 195 1

原创 Linux执行可执行文件提示No such file or directory的解决方法

【版权申明】转载请附上出处链接Linux执行可执行文件提示No such file or directory的解决方法现象描述:  文件存在,但是执行时却提示文件不存在。这是由于系统位数与该可执行文件需要的lib库位数不匹配导致的。运行如下命令可知:我的系统是64bit的,而该程序确实32bit的。$ uname -aLinux yangbk-virtual-machine 5.4.0-65-generic #73~18.04.1-Ubuntu SMP Tue Jan 19 09:02:24

2021-03-01 10:50:50 2107

原创 Ubuntu切换默认sh为bash或者dash

【版权申明】转载请附上出处链接Ubuntu切换默认sh为bash或者dash# 查看当前默认的sh是 bash 还是 dash$ ls -l /bin/sh# 切换为bash$ sudo dpkg-reconfigure dash 选择no# 切换为dash$ sudo dpkg-reconfigure dash 选择yes...

2021-03-01 10:11:46 1301

原创 VMware-Ubuntu 硬盘大小扩展

【版权申明】转载请附上出处链接VMware-Ubuntu 硬盘大小扩展1. 关闭虚拟机,进入设置界面选择扩展(自己决定,不能比原硬盘大小容量小)2. 启动Ubuntu,安装并启动gparted$ sudo apt-get install gparted$ sudo gparted3. 删除linux-swap分区(后面自己留1G重新创建),然后扩展/dev/sda1(你的根目录在这),最后重新创建linux-swap分区即可。(因为我之前已经搞定了,所以这里没有截图)4. 重启检查是

2021-02-26 18:14:26 264

转载 关于H.264 profile-level-id

  我们在WebRTC开发中,如果采用的是H.264来作为视频流编码类型,就会面临一个问题,那就是编码端和解码端需要进行协商各自的编解码能力。例如,如果编码端使用了高级别的profile和level,或使用了解码器不支持的编码特性,那么对解码端来说就是个灾难了。  大家知道,H.264的Profile以及Level有好多种,而并不是每一种编码器或者解码器都支持每一个Profile和Level。实际应用当中,我们经常会看到一个3个字节的值(例如42801f),它是H.264 SPS信息的头三个字节,用来标识

2021-02-22 11:31:47 3188

原创 编译libsrtp找不到pthread_once等与pthread相关的东西

【版权申明】转载请附上出处链接编译libsrtp找不到pthread_once等与pthread相关的东西编译器不支持-pthread这样的用法,需要把他修改为-lpthread

2021-02-04 15:24:02 242

原创 Ubuntu 登录界面无限循环

【版权申明】转载请附上出处链接有三种可能:/etc/profile 环境配置问题,还原先前修改重启即可。登录配置原因,据说删除家目录下的.Xauthority文件重启即可。NVIDIA显卡驱动问题,更正驱动即可。NVIDIA显卡驱动问题,更正驱动# 1. 查看本机有哪几个显卡驱动,挨个尝试即可sudo apt-get remove nvidia-xxxsudo dpkg-reconfigure nvidia-xxxsudo reboot...

2021-02-02 16:33:57 1792

原创 Linux 代理设置

【版权申明】转载请附上出处链接平台设备驱动总线的注册实现简介:设备与驱动的两种绑定方式:在设备注册时进行绑定及在驱动注册时进行绑定。platform_driver_register()platform_device_register()...

2021-01-26 16:54:56 384

原创 零基础如何入门嵌入式领域

【版权申明】转载请附上出处链接新手该怎么学单片机 / 嵌入式?  不知不觉已经毕业几年了,大学时候接触嵌入式并一头扎进去学习钻研,当时确实学到了很多东西,但当时的自己并没有把学到的东西用到实际的产品上(没有机会),免不了迷茫和质疑自己学这些毕业后能不能找到心仪的工作,如果你也是处于刚开始接触或者学了一阵子不知道自己在干什么的焦虑期,相信这篇文章对你会有所帮助。  首先先谈下机会吧(也是一件比较遗憾的事),其实当时我是有机会的(大一的时候)。当时我学校的创新实验室(机器人实验室,嵌入式方向的)在招生,

2021-01-06 21:47:00 567

原创 Looking for pthread_create in pthreads - not found

【版权申明】转载请附上出处链接Looking for pthread_create in pthreads - not founderror log:-- Looking for pthread_create in pthreads - not found-- Looking for pthread_create in pthread-- Looking for pthread_create in pthread - foundlib/libcrypto.a(threads_pthread.

2020-11-26 11:11:39 9532 11

原创 ffmpeg里面的av_log实现

【版权申明】转载请附上出处链接ffmpeg里面的av_log实现话不多说,直接上demo:#include <stdio.h>#include <libavutil/log.h>/** * Print no output. */#define AV_LOG_QUIET -8/** * Something went really wrong and we will crash now. */#define AV_LOG_PANIC 0/*

2020-11-12 00:31:10 835

原创 Ubuntu源码编译ffmpeg遇到的问题(半适用于交叉编译)

【版权申明】转载请附上出处链接Ubuntu源码编译ffmpeg遇到的问题(适用于交叉编译)ERROR: libfdk_aac not found解决办法:  缺少fdk_aac 库,安装即可。(在交叉编译中,不可用host的fdk_aac库,需要在configure阶段使用–extra-cflags和–extra-ldflags来指定你编出来的fdk_aac库在哪里)libfdk_aac官网下载https://sourceforge.net/projects/opencore-amr/fil

2020-10-14 20:43:43 2523

原创 编译Hi3518EV200 SDK遇到的问题

【版权申明】转载请附上出处链接编译Hi3518EV200 SDK遇到的问题/bin/sh: /opt/hisi-linux/x86-arm/arm-hisiv300-linux/target/bin/arm-hisiv300-linux-gcc: No such file or directorydirname: missing operand解决办法:$sudo apt-get install lib32z1$sudo apt-get install lib32stdc++6-4.8-dbg

2020-08-11 23:37:53 2588 1

原创 嵌入式Linux大杂烩

【版权申明】转载请附上出处链接嵌入式Linux大杂烩ifconfig lo 127.0.0.1  lo(local),本地环回网络接口,属于虚拟网络接口。它代表网络设备的本地虚拟接口,所以默认被看作是永远不会宕掉的接口。  虚拟网络接口并不真实地从外界接收和发送数据包,而是在系统内部接收和发送数据包,因此虚拟网络接口不需要驱动程序。虚拟网络接口和真实存在的网络接口在使用上是一致的。telnetd&  常见于开机脚本中,用于启动telnetd服务器。busybox中所自带(需要在menu

2020-07-11 11:53:14 268

原创 编译hi3516dv300 SDK遇到的问题

【版权申明】转载请附上出处链接编译hi3516dv300 SDK遇到的问题/bin/sh: 1: pushd: not found原因:  sh命令链接到的是dash,而pushd命令需要在bash的环境中执行。# 执行以下命令,将dash设置为No。$sudo dpkg-reconfigure dashbash: ./java: No such file or directory$sudo apt-get install lib32z1error while loading sha

2020-07-11 11:06:25 791

原创 编译hi3516a SDK遇到的问题

【版权申明】转载请附上出处链接编译hi3516a SDK遇到的问题serve_image.c:32:18: error: storage size of ‘hints’ isn’t known原因在于ubuntu操作系统版本太高,而SDK使用的mtd-utils版本太低导致的。修改sdk版本下的mtd-utils-1.5.0为mtd-utils-2.0.0即可,需要修改一下Makefile。2. configure: error: ncurses or ncursesw selected, bu

2020-07-11 10:59:26 488

原创 Shell脚本中的$@和$#

【版权申明】转载请附上出处链接Shell脚本中的$@和$#直接上脚本:$cat test.shecho $#echo $@$sh test.sh param1 param2 param33param1 param2 param3可见,  $#表示参数的个数  $@表示所有参数

2020-07-11 10:44:49 606

原创 git使用中遇到的问题(个人笔记)

【版权申明】转载请附上出处链接git使用中遇到的问题(个人笔记)关于git 1.x中的match与git 2.x中的simple$git push warning: push.default is unset; its implicit value has changed inGit 2.0 from 'matching' to 'simple'. To squelch this messageand maintain the traditional behavior, use: git

2020-07-11 10:39:05 372

原创 嵌入式中关于flash的一些思考

【版权申明】转载请附上出处链接嵌入式中关于flash的一些思考jiffs2 用于烧写 SPI Flash,实测yaffs2也可以用于SPI flash上,其中的64k/128k/256k表示的是SPI flash块大小,这个是硬件所决定的。yaffs2 用于烧写 Nand Flash,实测ext2也可以用于Nandflash上,其中的2k表示器件的页大小,4bit 表示 ECC 校验能力。我们需要根据具体 Flash 器件类型及特性烧写对应的根文件系统。...

2020-07-11 10:12:39 468

原创 Spiflash使用tftp进行烧录与备份

【版权申明】转载请附上出处链接Spiflash使用tftp进行烧录与备份uboot下的内存操作指令:b: 8位 w: 16位 l: 32位(默认值) mw(Memory Write),即向内存写入数据指令。mw - memory write (fill)Usage:mw [.b, .w, .l] address value [count]md(Memory Display),即从内存读出数据并显示。md - memory displayUsage:md [.b, .w, .l

2020-07-11 09:48:06 625

原创 h264 NALU偏门知识

【版权申明】转载请附上出处链接h264 NALU偏门知识AUD(Access Unit Delimiter):00 00 00 01 09 f0从结构上看,有start code,所以是一个NALU,类型09在H264定义里就是AUD(Access Unit Delimiter 访问单元分隔符)。大部分播放器可以在没有AUD的情况下正常播放。紧随AUD的一般是SPS/PPS/SEI/IDR的组合或者是一个SLICE,也就是一个帧的开始。像Flash这样的播放器,每次需要一个完整的帧数据,那么把

2020-06-15 14:06:56 1264

原创 rtp中的组合封包以及分片封包

【版权申明】转载请附上出处链接rtp中的组合封包以及分片封包RTP的PayLoad部分:Rtp负载第一个字节的结构如下,它和H.264的NALU头结构完全一致。 +---------------+ |0|1|2|3|4|5|6|7| +-+-+-+-+-+-+-+-+ |F|NRI| Type | +---------------+  需要注意的是,其中Type表示媒体类型。当为1~23时,与NALU中的Type是一致的定义,且为单一NALU模式。除此以外还可取以下值:

2020-06-05 14:26:30 1327

原创 rtp包头解析

【版权申明】转载请附上出处链接rtp包头解析RTP固定报文字段:字段占用bit数含义version(V)2表示RTP 的版本号padding(P)1如果设置了填充位,则包在端处包含一个或多个附加的填充八进制,它们不是有效负载的一部分。填充的最后一个八进制包含有多少填充八进制应该被忽略,包括它本身。一些具有固定块大小的加密算法或在较低层协议数据单元中承载多个rtp分组时,可能需要填充。extension(X)1如果设置了扩展位,则固定的头必须后面紧跟着一

2020-06-05 11:13:34 2185

原创 ffmpeg中的AVPacket的申请、使用与释放

【版权申明】转载请附上出处链接ffmpeg中的AVPacket的申请、使用与释放正确的使用姿势Mark。AVPacket的申请:AVPacket *packet = NULL;packet = av_packet_alloc();此时,已经申请了AVPacket,但是AVPacket中的data为空,size为零。AVPacket的使用:av_init_packet(AVPacket *pkt)初始化AVPacket中的值av_grow_packet(AVPacket *pk

2020-06-02 16:41:16 1832

原创 C+ffmpeg从媒体文件mkv提取h264码流源码

【版权申明】转载请附上出处链接C+ffmpeg从媒体文件mkv提取h264码流源码编译指令:$gcc extr_video.c -lavcodec -lavformat -lavutil -lswscale -o extr_video包含的头文件:#include <stdio.h>#include <libavutil/log.h>#include <libavformat/avio.h>#include <libavformat/avform

2020-06-02 15:52:41 712

原创 H264 NALU

【版权申明】转载请附上出处链接H264 NALUH264码流在网络中传输时实际是以NALU的形式进行传输的。在H264码流中,每个NALU间隔一个startcode(0x000001/0x00000001),标志着上一个NALU的结束和新的NALU的开始。NALU的组成每一个NALU由NALU Header + RBSP Size + RBSP组成。其中:NALU Header(NALU头) ,由一个字节组成,包含了这个NALU的信息:forbidden_zero_bit(1bit

2020-06-02 09:54:31 394

原创 关于rtp推流的一些事情

【版权申明】转载请附上出处链接关于rtp推流的一些事情使用ffmpeg推流一个mp4文件$ffmpeg.exe -re -i in.mp4 -c:v copy -c:a copy -f rtp rtp://192.168.3.34:5004[rtp @ 0000017a4a5c0500] Only one stream supported in the RTP muxerCould not write header for output file #0 (incorrect codec para

2020-06-01 10:55:13 1789 3

转载 关于RTP的SDP文件

【版权申明】转载请附上出处链接 关于RTP的SDP文件SDP文件的介绍即SDP(Session Describe Protocol),会话描述协议。用于在媒体会话中传递媒体流信息,并允许会话描述的接收者去参与会话。它定义了会话描述的统一格式,但并不定义多播地址的分配和SDP消息的传输,也不支持媒体编码方案的协商,这些功能均由下层传送协议完成。SDP所提供的信息会话的名称与目的会话存活时间包含在会话中的媒体信息,包括:媒体类型(video、audio、、、)传输协议(RTP、UDP、IP

2020-05-29 15:54:14 2273

原创 C语言变量声明时加冒号的用法

【版权申明】转载请附上出处链接 C语言变量声明时加冒号的用法  有些信息在存储时,并不需要占用一个完整的字节, 而只需占一个或几个二进制位。例如在存放一个开关量时,只有0和1 两种状态, 用一位二进位即可。为了节省存储空间,并使处理简便,C语言又提供了一种数据结构,称为“位域”或“位段”。  所谓“位域”是把一个字节中的二进位划分为几 个不同的区域,并说明每个区域的位数。每个域有一个域名,允许在程序中按域名进行操作。这样就可以把几个不同的对象用一个字节的二进制位域来表示。位域变量的定义与结构体变量

2020-05-28 15:47:24 2897

原创 socket编程常见函数

【版权申明】转载请附上出处链接 socket编程常见函数$man 2 socketNAME socket - create an endpoint for communicationSYNOPSIS #include <sys/types.h> /* See NOTES */ #include <sys/socket.h> int socket(int domain, int type, int protocol);RETURN VALU

2020-05-28 13:49:57 482

原创 socket编程中getaddrinfo与getnameinfo

【版权申明】转载请附上出处链接 socket编程中常见的函数与宏$man getaddrinfoNAME getaddrinfo, freeaddrinfo, gai_strerror - network address and service translationSYNOPSIS #include <sys/types.h> #include <sys/socket.h> #include <netdb.h

2020-05-28 09:44:29 732

原创 C语言中的%i

【版权申明】转载请附上出处链接 C语言中的%i%i的作用与%d一致,详情可见man 3 printfd, i The int argument is converted to signed decimal notation.The precision, if any, gives the minimum number of digits that must appear; if theconverted value requires fewer digits, it is pa

2020-05-27 08:58:48 5663

原创 socket编程中常见的数据结构

【版权申明】转载请附上出处链接 socket编程中常见的数据结构struct addrinfo#include <netdb.h>socket 网络信息相关结构体:/* Structure to contain information about address of a service provider. */struct addrinfo{ int ai_flags; /* Input flags. */ int ai_family

2020-05-26 17:09:40 656

原创 select, pselect, FD_CLR, FD_ISSET, FD_SET, FD_ZERO - synchronous I/O multiplexing

【版权申明】转载请附上出处链接 select, pselect, FD_CLR, FD_ISSET, FD_SET, FD_ZERO - synchronous I/O multiplexing/* According to POSIX.1-2001, POSIX.1-2008 */#include <sys/select.h>/* According to earlier standards */#include <sys/time.h>#include <s

2020-05-25 09:47:58 219

原创 Linux线程中的互斥锁与条件变量

【版权申明】转载请附上出处链接 Linux线程中的互斥锁与条件变量1. 互斥锁互斥锁用于保护临界区资源(实际保护的是临界区中被操纵的数据),通常用于保护多个线程间的共享数据。而这些共享数据通常是一些可供线程间使用的全局变量/硬件寄存器等,为达到线程安全的目的,我们需要保证在任何时刻只有一个线程在执行其中的代码。故互斥锁只有两个状态,即“上锁”和“未上锁”。互斥锁常见函数:// 头文件#include <pthread.h>/* Initialize a mutex. */

2020-05-24 14:18:47 262

原创 C语言宏: #if/#elif、#ifdef、#if defined

#if的使用说明#if的后面接的是表达式#if (MAX10)||(MAX20) code… #endif它的作用是:如果(MAX10)||(MAX20)成立,那么编译器就会把其中的#if 与 #endif之间的代码编译进去(注意:是编译进去,不是执行!!)#if defined的使用#if后面接的是一个宏。#if defined (x) …code… #endif这个#if defined它不管里面的“x”的逻辑是“真”还是“假”它只管这个程序的前面的宏定义里面有没有定义“x”这个宏,如果定

2020-05-24 01:48:50 11048 2

ISP_Calibration_Tool.zip

海思比较老的ISP Tools不支持ISP Calibration,这个功能是被独立成一个可执行文件,如果你没办法找海思/代理拿到这个程序,那么恭喜你来对地方了。

2020-11-04

MCR_R2012a_win32_installer.exe

《Hi3516A/Hi3516D IPC图像质量调优.pdf》里面的ISP调节软件ISP Calibration tool在SDK中未发现?那是因为你没有装Matlab库,下载安装然后重新打开PQ Tools即可。 如果发现有了这个选项,但是里面并没有“Black Level”等选项卡,你需要换一个SDK下面的PQ Tools。

2020-08-29

ortp及其依赖源码大礼包

最新资源且已编译通过, 时间戳: 2020.5.20 编译过程见: https://blog.csdn.net/MACMACip/article/details/106209984

2020-05-29

jdk-8u241-windows-x64.zip

Windows64位Java安装包: jdk-8u241-windows-x64.exe

2020-04-10

jdk-8u241-windows-i586.zip

Windows32位Java安装包: jdk-8u241-windows-i586.exe

2020-04-10

Windows64位java包: jdk-6u45-windows-x64.exe和jre-6u45-windows-x64.exe

Windows64位java包: jdk-6u45-windows-x64.exe和jre-6u45-windows-x64.exe

2020-04-10

Windows32位java包: jdk-6u45-windows-i586.exe和jre-6u45-windows-i586.exe

Windows32位java包: jdk-6u45-windows-i586.exe和jre-6u45-windows-i586.exe

2020-04-10

Linux64位Java包: jdk-6u45-linux-x64.bin和jre-6u45-linux-x64.bin

Linux64位Java包: jdk-6u45-linux-x64.bin和jre-6u45-linux-x64.bin

2020-04-10

Linux32位Java包: jdk-6u45-linux-i586.bin和jre-6u45-linux-i586.bin

Linux32位Java包: jdk-6u45-linux-i586.bin和jre-6u45-linux-i586.bin

2020-04-10

MIPI-CSI-DSI-DCS-DPHY官方文档

MIPI_CSI-2_specification_v01-01-00_r0-05.pdf MIPI_DCS_Specification_V1.02.00.pdf MIPI_D-PHY_Specification_v01-00-00.pdf mipi-DSI-specification-v1-1.pdf

2020-02-12

韦东山C++视频配套源码

韦东山老师Android视频教程系列中, C++视频快速入门配套源码.

2018-03-29

STM32F103C8T6核心板资料

STM32F103C8T6核心板资料, stm32最小版配套资料,带有pcb、数据手册等

2018-02-26

51单片机心形闪烁配套资料

51单片机心形闪烁配套资料,自己淘宝买的心形闪烁配套资料。

2018-02-26

Linux编程技术详解-源码

Linux编程技术详解-源码 杜华老师编《Linux编程技术详解》配套源码

2018-02-26

韦东山C++快速入门框架图

韦东山老师的C++快速入门思维导图,里面包含了韦东山老师对C++的整体认识,很精髓! 有兴趣有条件的支持韦老师哦。

2018-02-26

S5PV210_iROM_ApplicationNote_Preliminary_20091126

S5PV210_iROM_ApplicationNote_Preliminary_20091126,S5PV210的启动过程文档。大概讲解,不涉及uboot。

2017-07-08

空空如也

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

TA关注的人

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