这是一篇关于讲解shared_ptr使用过程中常见的问题及对应方法的文章 什么是shared_ptr 自行百度。 常见问题 1.多次引用同一数据 { int* p = new int[10]; std::shared_ptr<int> sp1(p); std::shared_ptr<int> sp2(p); } 它会导致两次释放同一块内存,而破坏堆。 2.使用shar
左值是指在内存中有确定位置并且可以被取地址的表达式,它通常指代一个具有持久性(Permanent)和唯一性(Identity)的对象 右值是指表示值的表达式,它通常是一个临时的、没有持久性和唯一性的对象或字面值常量 右值分为:纯右值(字面常量)和将亡值(更侧重于自定义类型的函数的返回值,表达式的返回值)。 当构造传左值,就走拷贝构造,当构造传右值,就走移动构造。 对于左值,我们后续还要使用,所以只
嵌入式环境中,轻量级的 http 客户端 介绍: libghttp 其基本使用如下: ghttp_request *request = ghttp_request_new(); ghttp_set_type(request,ghttp_type_post); ghttp_set_header(request, http_hdr_Connection, "close"); ght
参考:https://zhuanlan.zhihu.com/p/468346396 1、基本概念 ffmpeg中提及时间戳时,一定要明确它所对应的时基(time_base)。为精确描述该其数值,使用以下结构体来描述这一有理数概念。 typedef struct AVRational{ int num; ///< numerator int den; ///< denom
python可以调用c/c++的动态库,前提是c库的函数必须用extern "C" 声明。 首先python 须引入 ctypes 库 以下示例,展示如何加载C库函数,并注册C库中的回调函数: import ctypes from time import sleep libmp4svr = ctypes.cdll.LoadLibrary('./libmp4RtspSer
C++ 中的工厂模式和抽象工厂模式都是为了实现对象的创建和实例化,但它们在设计和使用方式上有一些区别。 工厂模式(Factory Pattern): 工厂模式通过一个工厂类来封装对象的创建逻辑,并将具体对象的创建细节隐藏起来。客户端只需通过工厂类调用相应的方法来获取所需的对象实例。 工厂模式适用于需要创建一组相关对象的场景,工厂类可以根据条件返回不同的具体对象。 工厂模式强调的是创建过程的封装,使
// src 原始数据 是nv12 的YUV数据,直接从手机摄像头采集的数据 // dest 截取的数据 开辟的空间大小为(x1 - x0 + 1) * (y1 - y0 + 1)包含两边的点 // srcW 原始数据的宽 // srcH 原始数据的高 // x0 y0 左上角的坐标点 (必须是偶数) // x1 y1 右下角的坐标点 (必须是奇数) #define CLAMP(a, s, m)
YUV数据上面画线画框 参考:https://blog.csdn.net/u010312436/article/details/101379177 #include <stdio.h> #define READ_MAX (1024) typedef unsigned char uInt8; typedef unsigned short uInt16; typedef unsign
参考: https://codeleading.com/article/66461370741/ 在OnInitDialog()中添加: ::AllocConsole();//打开控件台资源 FILE *fp; freopen_s(&fp,"CONOUT$", "w+t", stdout);//申请写,这个是针对VS2013版本的代码,在VS较为早
1.关于结构体中定义函数 在C++中,结构体中定义函数没问题 在C中, 则不行。会报expected specifier-qualifier-list before... 2.在C++中,结构体与类的区别: 在C++中,结构体是一种特殊形态的类。 结构体和类的唯一区别就是: 结构体和类具有不同的默认访问控制属性。 3.C与C++中结构体的区别: 一、相同之处:结构体中可以包含函数;也可以定义p
对于采集视频的C程序,有时需要知道当前视频的实时码率,可以用以下片段实现打印。 #define SHOW_BITRATE #define FRM_BIT_RATE_TIME 3 #define STREAM_TYPE_NUM 3 static unsigned short frmrate_sp[STREAM_TYPE_NUM] = { 0 }; static unsigned short st
不能用gdb调试的场景下,如果发生崩溃,用 add2line工具也能定位到崩溃的行号。 首先在代码中添加以下代码 int pid = getpid(); printf("bitrate_control_init pid: %d\n",pid); char cmd[128]={0}; snprintf(cmd,128,"cat /proc/%d/maps",
c语言开发过程中,用以下工具检测内存泄露。将以下文件include加在需要检测的.c文件中.通过查看打印的malloc,free是否成对进行排查。 #include <stdio.h> #include <stdlib.h> #include <string.h> #include <malloc.h> #ifndef __MEM_TOOLS_H
1.先用ffmpeg将bmp图片转为argb8888,再将argb8888转为argb1555 ffmpeg.exe -i big.BMP -pix_fmt argb big.rgb ffmpeg.exe -i small.BMP -pix_fmt argb small.rgb 2.argb8888 转 argb1555代码如下: #include <stdio.h> #include
sigmarstar IPC开发总结
51CTO博客开发
X264 codec相关讲解:可能有人注意到了我使用的是x264的tmod..何为mod版...就是民间菊苣在官方x264的基础上又自行进行了一些编译修改..提升强化了一部分功能..本帖提供的是taro大编译的x264..故为tmod版本..前面说到码率是重中之重...那么通常会见到的码率控制模式有ABR [ Average Bitrate ](平均目标码率模式)CBR [ Constant Bi
注:如果插件没有caps属性,则需使用link_alsa_element_with_filter将caps置于两插件之间来实现。转自:http://e2e.ti.com/support/embedded/linux/f/354/p/569574/2087961 #include <glib.h>#include <stdio.h>#include <string.h&
char* get_sub_split(char* path,const char* delim,int index){//static const char *delim = "."; int i = 0;char* p = strtok(path, delim);//printf("i=%d,%s\\n", i,p);if(i==index){return p;}i++;while((p =
DEBUG=1CC = gccCXX=g++ifeq ($(DEBUG), 1) OPTS=-O0 -g -DDEBUGendifCFLAGS = -fPIC -I$(COMPILE_DIR) -I$(vesdkdev) -I$(es_common) -I$(vesdk) -I$(vesdk)/boost-153/include -I$(vesdkproject
HIER(7) OpenBSD Reference Manual &
/********************************************************************** STL HEAH FILE USE FOR 徐岩柏** Copyright(c) 2001 -2003**-------------------------------------------------------------Filename: &nbs
#include "soapH.h" #include "wsddapi.h"#include <stdio.h>#include <sys/types.h> /* See NOTES */#include <sys/socket.h>#include <unistd.h>
省略:onvif client soapRemoteDiscoveryBindingProxy 由 gsoap C++ 方式生成#include "soapRemoteDiscoveryBindingProxy.h"#include "RemoteDiscoveryBinding.nsmap"#include<string>using namespace std;
void StringSplit(CString source, CStringArray& dest, CString division) { if(source.IsEmpty()) { } else { int pos = source.Find(division); if(pos == -1) { dest.Add(sou
将SD卡插入到winodws电脑上,打开config.txt,修改以下值。# uncomment to force a specific HDMI mode (this will force VGA)hdmi_group=2hdmi_mode=16
在/etc/wpa_supplicant/wpa_supplicant.conf最后追加network={ ssid="network-name" psk="network password"}在/etc/network/interface中修改如下:3.配置完成后要执行 以下命令才能在下次
/*********************************************gsoap onvif 客户端功能开发****************************************************************************************/1.编译ssl ,其中安装目录会被gsoap编译时用到见17行2.gsoapunzip gs
安装openssh 到 am5728 板子上注意:目录不要放到虚拟机与windows的共享目录。准备虚拟机上进到目录 /home/llf/ssh创建目录:zlib.install 和 openssl.install $ cd ssh
本工程代码使用场景:2个webservice client ,1个webservice(本来有2个webservice,但富盛的不由我们管理开发)。FS(富盛) webservice client, ZS(卓视) webservice client. ZS(卓视) webservice.本WebServiceClient 工程将FS(富盛) webservice client, ZS(
Copyright © 2005-2024 51CTO.COM 版权所有 京ICP证060544号