即引用相关头文件时候,要使用extern "C"{}来包含. 关于extern "C"{}的详情,参考:http://www.cnblogs.com/skynet/archive/2010/07/10/1774964.html…
在SRS的Ingest功能中,会调用本地FFmpeg进行拉流转码, 调用的核心代码在srs_app_ffmpeg.cpp 的 SrsFFMPEG::start() 中: // memory leak in child process, it's ok. ]; ; i < (int)params.size(); i++) { std::string& p = params[i]; charpv_params[i] = (char*)p.data(); } // EOF: NULL charpv…
加班次数频繁,已经快一年没有写博了.由于此次在项目中使用到了 FFmpeg 来处理音视频,顾记录下在 Linux 系统中源码安装 FFmpeg 以便不时之需. 1. 安装 yasm yasm 是一个汇编编译器.FFmpeg 编译中为了提高编译速度,使用了汇编命令,如果不想安装此功能,则只需在后续安装 FFmpeg 中使用 ./configure –disable-yasm 选项. 下载地址:http://yasm.tortall.net/Download.html 安装命令: (1)上传下载的…
之前vs2008开发一直都好好,不知道为什么如今的vs2008打开和关闭都老是弹出这这个初始化Microsoft Visual Sourcesafe源码管理提供程序时失败的错误 解决方法非常easy: 打开vs.点击菜单条的工具.再点击选项,如图 将插件选择的管理插件处选择无就可以解决这个问题 假设sql2005或者sql2008等sql数据库出现上述问题.方法也是一样的 另外的办法就是升级vs2008,打补丁类的.…
上一篇说了请求访问的流程,这一篇说一下请求对应的源码调用 as_view 定义view dispatch dispatch initialize_request get_parsers               (获取解析器) parser_context                (解析上下文) get_authentitors         (获取认证器) get_context_negotiator        (获取上下文内容) default_response_headers…
1. 概述 2. 主流程 3. ShareJoin 3.1 JoinParser 3.2 ShareJoin.processSQL(...) 3.3 BatchSQLJob 3.4 ShareDBJoinHandler 3.5 ShareRowOutPutDataHandler 4. 彩蛋 1. 概述 MyCAT 支持跨库表 Join,目前版本仅支持跨库两表 Join.虽然如此,已经能够满足我们大部分的业务场景.况且,Join 过多的表可能带来的性能问题也是很麻烦的. 本文主要分享: 整体流程.…
JUCE 源码https://github.com/julianstorer/JUCE 想在ubuntu下编译需要提前安装以下依赖库 sudo apt-get install mesa-common-dev libgl1-mesa-dev libglu1-mesa-devsudo apt-get install freeglut3-devsudo apt-get install build-essential gdb subversionsudo apt-get install automake…
MD与/MT编译 1./MD是动态库链接方式编译 (DEBUG版本是/MDd) 2./MT是静态库链接方式编译 (DEBUG版本是/MTd) 编译器不会检查到的问题 我今天遇到的记录下来 当你调用第三方库的时候 你编译的第三方库是MD方式编译的 那么你的调用程序编译的时候运行库 也应该和第三方库对应 否则就像我今天遇到的情况一样 整体大部分代码没问题,说不定某个情况下就出问题了 就比如如下这段代码: 我主程序使用的是MT运行库方式连接编译 整体大部分都没问题 然而执行到这个循环体中的时候 未知次…
相信大家在刚开始学习mybatis注解方式,或者spring+mybatis注解方式的时候,一定会有一个疑问,为什么mybatis的dao接口只需要一个接口,不需要实现类,就可以正常使用,笔者最开始的时候也会有这种疑问,当时在网上查了很多资料,也问过公司比较年长的同事,但是并没有得到答案,后来通过自己看mybatis的源码的方式才明白其中道理,接下来我就对大家分享,为什么dao接口不需要实现类的原理,这篇文章的讲解主要分为两部分: 1.mybatis注解方式是怎样通过没有实现类的dao接口进行数…
在研究OpenJDK源码过程中,我发现常用的设计方法就是2种:接口,接口-抽象类-具体实现类 . 在一些其它开源框架和业务开发中,经常存在着第3种设计,接口-具体实现类. 1.只有接口,没有实现类. 定义接口,制定标准. 在Java中,这个最典型的案例是JDBC的API的设计. Connection.Statement.PreparedStatement.CallableStatement.ResultSet等都是接口,没有任何实现方法. 这些接口就是一个标准,具体的实现,都是由数据库厂商自行实…
解决办法 出现错误:jni/ffmpeg/libavutil/common.h:175:47: error: 'UINT64_C' was not declared in this scope 解决:在 jni/ffmpeg/libavutil/common.h中添加// add by XXX#ifndef UINT64_C#define UINT64_C(value)__CONCAT(value,ULL)#endif//-// 最后编译通过,在目录~/workspace/ffmpeg_andr…
一.编译安装 ffmpeg在安装时依赖的包和版本都很让人头疼,不同编译环境也各不相同.公司之前封装了一个又各种出错. 其实办法很简单,就是到官网一步一步按着做就行了:http://trac.ffmpeg.org/wiki/CompilationGuide自己系统用的什么系统,就选择什么系统,照着操作就行了.我选的是“Compiling FFmpeg on CentOS / RHEL / Fedora”唯一的不足就是ffmpeg的git地址不起作用,我使用了下面的地址进行了替换git clone…
quagga是开源路由器软件,提供的用户界面与思科,华为的路由器的人机接口几乎一致,非常有学习价值,尤其是开源的协议代码,简直亮瞎了我的小眼睛. quagga的介绍,我就不赘述了,有兴趣的可以找度娘或者去官网看看. 一.通用库thread quagga是一个纯C实现的项目. C语言的项目,就是一个个C,H文件组成,当C文件很多的时候,相信一开始每个开源爱好者都会感到很头疼吧,完全不知道这么多文件要怎么组织,怎么去阅读吧? 哈,其实呢,quagga的C文件就像一个个散落在地上的珍珠,而thread…
我们这次依然用上次的例子CounterServer来进行讲解: 我这里就不贴整个代码了 public static void main(final String[] args) throws IOException { if (args.length != 4) { System.out .println("Useage : java com.alipay.sofa.jraft.example.counter.CounterServer {dataPath} {groupId} {serverI…
当拿到一含有大量代码的工程怎么看?!这时一个好的代码分析工具非常有用,网上有很多开源工具,但资料都参差不齐,偶然发现doxygen+ graphviz这两工具非常棒,使用工具直接生成函数调用链图,帮助分析整个项目方法的用法以及功能,然后可以方便的分析代码,生成相应的函数调用图 下面是我安装使用过程记录下来了 ps:安装了好几遍后的一个最简洁版的安装过程 一.软件安装.(环境:win10 64bit) 首先,安装doxygen,可以在官网的download页面下载,下载doxygen最新安装包,安…
请求流程如图 本次学到的新东西: functools.partial 可以代码重用 用于在哪些通用的方法上加上更多的参数 try: finally可以当go的defer用 即使return后 finally也是会执行的 raise exc from None 这样可以保持原来报错的上下文 asyncio.Queue 可以用来传输消息 类似于go的channel nonlocal 关键字是闭包函数用来修改外层函数变量的 __call__ 方法是当把类对象加()执行的时候调用的…
quagga作为一个路由器软件,自然要提供人机接口. quagga提供snmp管理接口,而且,自然就会有对应的命令行管理格式,当然一般路由软件不会提供界面形式的,也许有webui,然而quagga并没有. 我们要看的就是这个命令行处理的代码 command. 接触过类似命令行的朋友肯定有一点点好奇吧,那么数量庞大的命令和参数输入,还可以提供提示和自动补齐,这肯定不是一件很简单的事情. 下面是一个配置示例: ! interface bge0 ip ospf authentication messa…
问题重现: 解决方法: 1.删除android项目里隐藏的 .repo 文件夹中除了以下几个文件夹的其他文件及文件夹 2.重新初始化android项目 repo init -u https//github.com/xxx 3.初始化完成后,重新开始同步 repo sync -c -f -j8 --force-sync --no-clone-bundle 4.问题解决完成…
std::vector<std::wstring> list = Client.xxxx(); 千万不要写成 auto  list = Client.xxxx();…
1,AudriusButkevicius/cli 网址:https://github.com/AudriusButkevicius/cli 2,bkaradzic/go-lz4 网址:https://github.com/bkaradzic/go-lz4 3,calmh 备注:这位是Syncthing项目创立者和最主要的开发者,瑞典程序员,他的github网址:https://github.com/calmh. (1),calmh/du 网址:https://github.com/calmh/d…
本文首发于个人博客https://kezunlin.me/post/d5d4a460/,欢迎阅读! compile boost 1.66.0 from source on ubuntu 16.04 Guide apt-get # 1.58 for ubuntu 16.04 sudo apt-get install libboost-all-dev compile from source sudo apt-get -y purge libboost-all-dev wget https://dl.…
public static DefaultHttpClient httpclient; static { httpclient = new DefaultHttpClient(); //httpclient = (DefaultHttpClient) HttpClientConnectionManager.getSSLInstance(httpclient); // 接受任何证书的浏览器客户端 } /** * 生成短连接信息 * * @author: zhaojinhui * @date: 20…
ffmpeg是视频开发最常用到的开源软件,FFmpeg功能强大,用途广泛,提供几乎所有你能够想到的与视频开发相关的操作,许多商业软件都以ffmpeg为基础进行开发定制. FFmpeg: FFmpeg is a free and open-source project consisting of a vast software suite of libraries and programs for handling video, audio, and other multimedia files…
前言 这篇文章将着重于分析字节跳动开源的RPC框架Kitex的日志库klog的源码,通过对比Go原生日志库log的实现,探究其作出的改进. 为了平滑学习曲线,我写下了这篇分析Go原生log库的文章,希望你可以对比阅读:https://juejin.cn/post/7103790667595268126 本文的分析基于:github.com/cloudwego/kitex/pkg/klog的源码. klog库的使用 结果如下: klog.xxx能直接打印日志的原因 通过观察源码,klog包的def…
requests库是python爬虫使用频率最高的库,在网络请求中发挥着重要的作用,这边文章浅析requests的API源码. 该库文件结构如图: 提供的核心接口在__init__文件中,如下: from . import utils from . import packages from .models import Request, Response, PreparedRequest from .api import request, get, head, post, patch, put,…
原文地址: 交叉编译多平台 FFmpeg 库并提取视频帧 交叉编译多平台 FFmpeg 库并提取视频帧 本文档适用于 x86 平台编译 armeabi.armeabi-v7a.arm64-v8a.x86.x86_64 平台的 ffmpeg 运行库 开发环境 编译环境: Ubuntu 1810 x64 开发环境: Windows 10 IDE: Android Studio 3.4.1 Android: 7.1 FFmpeg: 3.4.6 编译流程 下载 FFmpeg 源码: Download F…
交叉编译多平台 FFmpeg 库并提取视频帧 转  https://www.cnblogs.com/leviatan/p/11142579.html 本文档适用于 x86 平台编译 armeabi.armeabi-v7a.arm64-v8a.x86.x86_64 平台的 ffmpeg 运行库 开发环境 编译环境: Ubuntu 1810 x64 开发环境: Windows 10 IDE: Android Studio 3.4.1 Android: 7.1 FFmpeg: 3.4.6 编译流程 下…
一.什么是CEF CEF即Chromium Embeded Framework,由谷歌的开源浏览器项目Chromium扩展而来,可方便地嵌入其它程序中以得到浏览器功能. CEF包括CEF1和CEF3两个版本,CEF1已停止更新.由于CEF只支持C.C++,所以出现了很多第三方项目来提供其它语言的支持. .NET 的包装类库有chromiumfx.cefglue.cefsharp,其它语言参看https://bitbucket.org/chromiumembedded/cef#markdown-h…
AMX高效自定义分页控件(WinForm)源码  2014-6-9 [VS2008]2014.6.9更新内容:   1. 更改用户自定义分页控件功能布局.大大精简了调用分页自定义控件的代码,和使用系统控件一样,只需要实现分页控件的一个分页触发事件即可,不需要再写多余的代码.   2.添加当前页以及每页显示条数手动输入后按回车触发分页.   3.添加自定义分页控件的导出数据功能.通过自定义分页控件的ExportDataSource属性赋予导出按钮要导出的数据源.调用简单.   4.添加导出数据时后…
自己牺牲了7个月的周末和下班空闲时间,通过研究Spark源码和原理,总结整理的<深入理解Spark:核心思想与源码分析>一书现在已经正式出版上市,目前亚马逊.京东.当当.天猫等网站均有销售,欢迎感兴趣的同学购买.我开始研究源码时的Spark版本是1.2.0,经过7个多月的研究和出版社近4个月的流程,Spark自身的版本迭代也很快,如今最新已经是1.6.0.目前市面上另外2本源码研究的Spark书籍的版本分别是0.9.0版本和1.2.0版本,看来这些书的作者都与我一样,遇到了这种问题.由于研究和…