- 博客(32)
- 资源 (14)
- 收藏
- 关注
原创 用gstreamer写的一个播放器
这个程序是要实现linux下的一个简单播放器,要求播放器能够向远端服务器发送消息,相应键盘消息,切换节目具体功能是:响应键盘的N、P和数字键,N:下一个节目;P:前一个节目;数字键:选择对应的节目在切换节目的时候需要向远端服务器发送响应的消息。#include <gst/gst.h>#include <gst/video/video.h>#include <gst/i...
2018-04-03 19:57:48 1286
原创 pthread线程传递参数
用pthread传递参数格式一般是这样的:int pthread_create (pthread_t *tid,const pthread_attr_t *attr,void *(*func)(void *),void *arg)其中最后一个参数就是用来传递参数的,可以是一个简单的参数,也可以是一个参数集合成的结构体。 由于线程之间使用不同的栈,因此,如果是本地的局部变量作为参数传递...
2018-03-29 15:03:17 5322 1
原创 XCode8下一个undefined symbols for architecture arm64问题的解决
在Xcode7下能够编译通过的工程,在XCode8下会报undefined symbols for architecture arm64 错误,通过nm命令将 静态库的符号表都导出来,发现所有报错的符号在表里面都存在,但是为什么就是报错呢,经过不懈的上网查资料,终于找到有位高人给出的答案:修改build settings->Enable Testability选项为NO,而在Xco
2017-02-22 21:11:58 11569
转载 RFC5766-TURN协议
http://blog.csdn.net/shenxin870409/article/details/42978693摘要 如果一台主机处于NAT后面,那么在一定条件下两台主机无法之间进行通讯。在这种条件下,那么使用中继服务提供通讯是有必要的。这个规范定义了一个名为TURN(使用中继穿越NAT)的协议,它允许一台主机使用中继服务与对端进行报文传输。T
2016-12-06 10:34:57 528
转载 iOS 解决一个因三方静态库冲突产生的duplicate symbol的问题
http://www.cnblogs.com/rayshen/p/5160218.html最近在开发项目时编译三方.a时出现了冲突,原因是存在duplicate symbol。模拟器编译时,应用的即时通讯模块采用的三方库(容联云),和视频监控模块采用的三方库(海康威视)之间有冲突,无法编译通过。真机编译时,假如对other linker flags设置为-ObjC,
2016-09-23 10:53:01 1468
转载 iOS判断当前是否有网络
在对应的.h文件中加入声明:[cpp] view plain copy print?- (BOOL) connectedToNetwork; 如果方法前面加+,就相当于类的静态方法,这里要注意一下在.m中加入定义:[cpp] view plain copy pr
2016-06-30 21:34:57 888
转载 修改VLC读缓冲机制
0x00 前置信息为进一步降低延迟,采用极端方法修改VLC读缓冲机制。0x01 VLC读缓冲机制对于一个rtmp流的读取,发起端在Demux module中,具体在该模块的Demux方法中调用ffmepg的接口av_read_frame读取每一帧数据。但是这个read的接口实在不清晰,经过了多个抽象层的封装,最后真正指向了rtmp_read接口。还是通过一个图来看会比较清晰:上
2016-05-01 15:13:12 8662
转载 avformat_find_stream_info接口延迟降低
0x00 前置信息版本:ffmpeg2.2.0文件:vlc src/module/demux/avformat/demux.c函数:OpenDemux0x01 研究背景ffmpeg的两个接口avformat_open_input和avformat_find_stream_info分别用于打开一个流和分析流信息。在初始信息不足的情况下,avformat_find_stre
2016-05-01 15:11:13 1258
转载 VLC架构及流程分析
zz:https://jiya.io/archives/vlc_learn_2.html0x00 前置信息VLC是一个非常庞大的工程,我从它的架构及流程入手进行分析,涉及到一些很细的概念先搁置一边,日后详细分析。0x01 源码结构(Android Java相关的暂未分析)# build-android-arm-linux-androideabi/:第三方库。# mod
2016-05-01 15:09:21 589
转载 Linux 下编译 VLC for Android
https://jiya.io/archives/compile-vlc-for-android.html最近在研究VLC播放器,主要目的是使用Android平台VLC播放器进行RTMP直播,研究目的是为了降低RTMP直播的延迟,目标将延迟降到1s以内。首先需要在Linux(本人使用Ubuntu 14)下编译VLC for Android的源码,根据官方的Wiki,以及自己实际操作的步
2016-05-01 15:06:55 577
转载 使用 NDK r9 编译ffmpeg
转自:http://wang-peng1.iteye.com/blog/20048971. 环境 ubuntu 我的是13.10 ndk r9 64位2. 下载ffmpeg http://www.ffmpeg.org/download.html 找到 FFmpeg 2.1.3 "Fourier"2.1.3 was released on 2014-01-15. It
2016-03-31 13:26:27 373
原创 ubuntu 上tp-link无线网卡驱动安装
为了使安装了ubuntu系统的台式机能够链接无线网络,购买了USB 无线网卡,当然无线网卡分为很多品牌,这里介绍两种:1. 磊科:无需安装驱动,在ubuntu上直接可以上网;2. TP-LINK: 该品牌的无线网卡需要安装驱动后才能使用,但是官网上只有WINDOWS系统的驱动程序,在unbuntu上如何安装驱动呢?下面讲一下TP-LINK驱动的安装方法,以WN823N型号为例:1.
2016-03-01 18:27:51 20201 3
原创 vlc发送的时间戳分析
很多人发送流媒体习惯于使用VLC, 很方便也很好用, 功能很强大.但是很少人提及VLC 发出的帧的时间戳是什么意义,是如何计算得来的. 本人最近分析了VLC的源代码, 分析了时间戳形成机制, 不敢独享,拿出来与大家共享.VLC发送实时流的命令一般如下: vlc -vvv localFile --sout udp://ip:port-vvv是输出调试信息的选项--sout是输出流
2016-02-04 10:02:11 3748
原创 ubuntu14.04上VLC编译问题
最近将VLC-2.1.6在ubuntu上编译,由于gstreamer版本是0.10,因此不能用vlc 2.0之后的版本.编译时报错,错误信息如下:/usr/bin/ld: /usr/local/lib/libavformat.a(allformats.o): relocation R_X86_64_32 against `ff_a64_muxer' can not be used when
2016-02-03 15:29:34 1563 1
原创 一个支持socket并发的方案
TCP 的socket有创建、绑定、监听、收数据等过程,如果需要创建一个能够监听多个客户端链接的后台socket,如何支持并发访问呢?首先需要确定在什么地方需要支持并发:显然前三步都是初始化过程,不需要并发支持;收数据的过程是需要支持并发的,那也就是需要accept过程支持并发。如何支持并发呢?答案显然是多线程处理。那如何让多线程的处理减轻CPU 负担,同时还能及时响应客户端的请求?可
2015-12-17 16:58:32 2139
转载 NuPlayer介绍
简介Android2.3时引入流媒体框架,而流媒体框架的核心是NuPlayer。Android4.0之后HttpLive和RTSP协议开始使用NuPlayer播放器,Android5.0(L版本)之后本地播放也开始使用NuPlayer播放器。视频是如何播放的 DataSource有两个概念:上面框图中的DataSourceInput(或者直接叫DataSource)
2015-11-24 19:13:19 2154 1
原创 实现一个简单的http服务器
实现一个简单的http服务器,功能类似与apache服务器,能够将本地电脑作为一个后台服务器供客户端访问。该实现只是一个简单的原型,用户跨域访问。
2015-11-18 12:48:46 1179
原创 使用GDB调试android模拟器
使用android的模拟器可以调试应用,也可以调试C/C++代码库。调试C/C++代码时,还可以使用GDB单步调试代码,跟linux上一样方便。1. 准备android代码:从官网上下载代码,编译整个系统,最好选X86的选项2. 编译得到的系统便可以启动模拟器运行,如果要启用GPU加快渲染速度,使用: emulator -gpu on 以调试httplive为例,说明如何调试C/C
2015-11-13 15:49:29 2405
原创 VIM中将tab转换为空格
1. vim打开文档,输入下列命令 :set ts=8 :set expandtab :%reb!2. 保存后退出即可将tab剪转化为8个空格
2015-11-13 15:40:54 574
转载 vim删除^M
1.进入命令模式。vim的命令模式,就是在编辑模式下输入":",光标就会跳到屏幕最后一行,并在那里显示冒号,此时就已经进入命令模式。命令模式的内容均显示在屏幕的最后一行,按下回车键,vim执行命令。2.在命令模式下输入下列字符:输入:%s/^M$//g 3.回车。即会自动删除该文件中的所有 ^M 字符。删除行尾空格的命令: :%s/\s\+$//这句命令到底是什么意思呢?% 指
2015-11-13 15:37:24 495
原创 ubuntu安装中文输入法
ubuntu 14.04 系统默认没有打开中文输入法,如果需要可以安装,主要有以下几种方法1,启用系统自带的中文输入法: 方法:设置中text entry中添加中文输入法 缺点: 启用该输入法后,很多全拼输入都找不到自己想要的文字。2. 安装sogou拼音输入法 方法:官网上下载最新的deb安装包 缺点:安装不成功,同时导致系统登录异
2015-11-13 10:00:31 450
原创 ubuntu 14.04 登录界面无法进入系统
今天开机,发现ubuntu 14.04停留在登录界面,输入密码后闪烁一下,马上又回到登录界面,重启多次都无法解决问题,访客模式都无法进入上网查了很多人的解决方案,包括:http://zhidao.baidu.com/question/200253233158498565.htmlhttp://bbs.csdn.net/topics/390890329http://www.myexc
2015-11-13 09:50:50 1524
原创 android framework添加对C++的支持
最近在将C++ STL写的模块移植到frameworks/av/media中,遇到了很多编译方面的问题,通过努力,顺利编译通过,下面将过程记录一下,以便以后参考:下面的方法在android-5.1.1_r9上测试过。1. STL模块函数找不到,链接失败stdc++/include/bits/stl_list.h:466: error: undefined reference to
2015-11-01 11:56:34 1315
原创 nexus 6 remount失败问题
最近开发android时用到了nexus 6手机,已经获得了root权限, 但是在执行adb remount时,还是会报"remount of system failed: Permission denied", 于是疯狂找资料, 发现这样会解决问题:$adb shell$mount$su#mount -o rw,remount /dev/by-name/system
2015-10-19 17:40:59 1167
原创 用VLC做流媒体服务器命令
VLC(VideoLan)是一个开源播放器,可以播放本地文件,接受UDP,HTTP,RTP等流媒体数据,同时也可以作为流媒体服务器,将本地媒体文件流化成流媒体数据流,具体命令总结如下:1. one stream input vlc -vvv sport.mp4 --input-repeat=2 --sout udp://192.168.0.1:1234将本地文件sport.mp
2015-05-24 22:13:46 1971
原创 using FFMPEG to setup HLS server on Ubuntu
1. environment setup in Linux OS 1). install libx264 to support h264 encoder sudo apt-get install libx264-dev 2). install FFMPEG with libx264 library sudo apt-get install f
2015-05-24 22:08:08 996
转载 二叉树后序遍历的非递归算法
#include #include #define maxsize 50 typedef struct Bnode //声明二叉树的数据结构 { char data; struct Bnode *lchild,*rchild; }bnode,*btree; typedef struct type { btree node; int flag; }datatype,*pdatatype; typ
2009-11-28 00:01:00 362
转载 指针的使用误区
下面是使用指针经常出的错误和误解 程序1:void myMalloc(char *s) //我想在函数中分配内存,再返回{ s=(char *) malloc(100);}void main(){ char *p=NULL; myMalloc(p); //这里的p实际还是NULL,p的值没有改变,为什么? if(p) free(p);}
2009-11-14 23:20:00 376
原创 【转帖】VC中使CListCTrl控件排序
http://blog.sina.com.cn/s/blog_5baa65b30100ahxm.htmlVC中使CListCTrl控件排序(2008-09-26 18:41:19)标签:杂谈 分类:软件开发 列表控件(CListCtrl)的排序功能不像其它直接调用API就可以完成的功能一样.它比较复杂.今天将我的一点体会简单地谈一下. 列表控件的顶部有一排按钮,用户可以通过选
2009-11-10 22:18:00 756
DASH 测试工具
2015-12-18
android ICS 动画原理与实现分析
2012-01-08
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人