自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(26)
  • 资源 (3)
  • 收藏
  • 关注

转载 Darwin Streaming Server 核心代码分析

首先,我针对的代码是Darwin Streaming Server 6.0.3未经任何改动的版本。Darwin Streaming Server从设计模式上看,采用了Reactor的并发服务器设计模式,如果对Reactor有一定的了解会有助于对Darwin Streaming Server核心代码的理解。Reactor模式是典型的事件触发模式,当有事件发生时则完成相应的Ta

2017-06-28 14:50:16 205

转载 Darwin 框架概述

转自: http://www.rosoo.net/a/200904/7285.html1. 前言Darwin Streaming Server是Apple公司提供的开源实时流媒体播放服务器程序。整个程序使用C++编写,在设计上遵循高性能,简单,模块化等程序设计原则,务求做到程序高效,可扩充性好。本文简述了程序的整个结构,目的是为了以后阅读及修改程序的方便。解开程

2017-06-23 17:16:50 2749

原创 C++ 跨平台编程宏定义

操作系统判定宏Windows:   WIN32Linux:   linuxSolaris:   __sun编译器VC:  _MSC_VERGCC/G++:   __GNUC__SunCC:   __SUNPRO_C和__SUNPRO_CC

2017-06-22 16:49:21 2524

转载 关于ndk开发使用jni回掉java方法更新UI的问题

重新整理,原理:应用程序启动时,Android首先会开启一个主线程 (也就是UI线程) , 主线程为管理界面中的UI控件, 进行事件分发。耗时的操作,放在一个子线程中,如果子线程涉及到UI更新,那就要用到handler,Android主线程是线程不安全的, 也就是说,更新UI只能在主线程中更新,子线程中操作是危险的。Handler运行在主线程中(UI线程中)

2017-06-21 15:55:56 705

原创 解决Unbantu eclipse 菜单栏目消失的问题

1. 新建一个eclipse.sh文件,加入如下内容,下面的路径是ecipse的路径export UBUNTU_MENUPROXY=0/usr/bin/eclipse              //这一行是安装路径一定不能错2. 在终端 sh ./eclipse.sh

2017-06-16 16:40:23 623

转载 linux下epoll如何实现高效处理百万句柄的

开发高性能网络程序时,windows开发者们言必称iocp,Linux开发者们则言必称epoll。大家都明白epoll是一种IO多路复用技术,可以非常高效的处理数以百万计的socket句柄,比起以前的select和poll效率高大发了。我们用起epoll来都感觉挺爽,确实快,那么,它到底为什么可以高速处理这么多并发连接呢?先简单回顾下如何使用C库封装的3个epoll系统调用吧。

2017-06-16 11:12:28 262

原创 安卓学习系列

http://blog.csdn.net/jianghuiquan/article/details/8298687

2017-06-14 16:03:19 171

转载 Android学习笔记之AndroidManifest.xml文件解析

一、关于AndroidManifest.xmlAndroidManifest.xml 是每个android程序中必须的文件。它位于整个项目的根目录,描述了package中暴露的组件(activities, services, 等等),他们各自的实现类,各种能被处理的数据和启动位置。 除了能声明程序中的Activities, ContentProviders, Service

2017-06-13 17:01:23 354

转载 Android下的JNI创建多线程的方法

一、概述      JNI编程和Linux上的C/C++编程还是挺相似的,每次java调用JNI中的函数时都会传入有关JVM的一些参数(如JNIEnv,jobject),每次JNI回调java中的方法时都要通过JVM的有关参数来实现,当在JNI中涉及到多线程的话还是有一些不一样的地方,就是要在子线程函数里使用AttachCurrentThread()和DetachCurrentThread

2017-06-13 09:03:15 2088

转载 FFmpeg视频播放-SurfaceView

之前已经把FFmpeg集成到项目里面了,剩下的就是做开发了,做过安卓视频播放的都应该知道在播放的时候都有用到SurfaceView,这里我们也采用这种方式。一、定义Java层的调用接口我们需要知道播放视频的网络地址或者是本地路径,并且希望这个地址是可以修改的,所以我们需要有一个参数去接收这个地址。和系统一样,我们也需要传递一个Surface,在Jni中没有Surface这个类型,所

2017-06-09 17:39:14 426

转载 OpenGL 学习

http://blog.csdn.net/jackie03/article/details/7303097

2017-06-09 14:18:57 210

转载 Intent详解

【正文】Intent组件虽然不是四大组件,但却是连接四大组件的桥梁,学习好这个知识,也非常的重要。一、什么是Intent1、Intent的概念:Android中提供了Intent机制来协助应用间的交互与通讯,或者采用更准确的说法是,Intent不仅可用于应用程序之间,也可用于应用程序内部的activity, service和broadcast receiver之

2017-06-09 11:08:25 627

原创 FFmpeg跳转函数调用

调用avformat_seek_file后需要调用avcodec_flush_buffers来清除解码器缓存

2017-06-08 17:46:47 807 1

转载 Ubuntu下搭建 eclipse+NDK for android JNI 的开发环境

一、准备安装包1、去官网下载adt-bundle-Linux 和 Android-ndk,我的环境是Ubuntu64位,所以我下载的版本是:(1)adt-bundle-linux-x86_64-20131030.zip(2)android-ndk-r9b-linux-x86_64 .tar.bz2下载完后解压,用命令行进入,执行  "  ./eclips

2017-06-08 11:33:32 841

转载 Ubuntu 下用NDK编译移植 ffmpeg 2.0 (配置最新版x264) 到android平台

将x264配置到ffmpeg中需要先编译x264,生成静态库或动态库。因为264的静态库本身不大(我编译完成后是1.1M)且考虑到平台移植问题,这里选择的是编译生成静态库。准备,新建工作空间 (1)创建总目录FFmpeg-Androideg: mkdir workspace --> cd workspace --> mkdir FFmpeg-Android --

2017-06-08 11:30:39 505

转载 NDK在自己的SO中调用第三方SO

拷贝第三方的SO及其头文件在Android.mk中申明第三方编译模块在Android.mk的自己编译模块中包含第三方编译模块在自己的代码中调用第三方头文件Android.mk配置说明LOCAL_PATH := $(call my-dir)#第三方的编译模块include $(CLEAR_VARS)LOCAL_MODULE := _3rdsdkLOCAL_SRC_FILE

2017-06-07 17:17:18 853

原创 Unbantu 编译ffmpeg Android版本库

首先需要去FFmpeg的官网http://www.ffmpeg.org/去下载FFmpeg的源码,目前的版本号为FFmpeg3.3(Hilbert)。下载的文件为压缩包,解压后得到ffmpeg-3.3目录。修改ffmpeg-3.3的configure文件:# 原来的配置内容:SLIBNAME_WITH_MAJOR='$(SLIBNAME).$(LIBMAJO

2017-06-07 11:18:23 339

原创 ffmpeg中调用解码器过程

该文将以X264编码器为例所有编码器和解码器都是在avcodec_register_all()函数中注册的。从中可以找到视频的H264解码器和X264编码REGISTER_DECODER(H264,              h264);REGISTER_ENCODER(LIBX264,           libx264);#define

2017-06-06 11:17:56 1912

转载 Android-SurfaceView与SurfaceHolder对象

调试Media播放时,不时用到SurfaceView与SurfaceHolder对象,写case测试及实际运行效果,基本上搞清楚这两个对象的用法及区别1、SurfaceView public class SurfaceView extends ViewSurfaceView是视图(View)的继承类,这个视图里内嵌了一个专门用于绘制的Surface。你可以控制这个Surfa

2017-06-02 15:00:22 230

转载 TextureView+SurfaceTexture+OpenGL ES来播放视频(一)

http://www.jianshu.com/p/d3d3186eefcb

2017-06-02 14:35:18 762

转载 最简单的Android项目(NDK命令行编译)

Android的NDK编程需要下载NDK编译环境,可以从官网下载window64位版,然后解压到任意目录即可。NDK的实现其实是利用里Java的jni方法,所以前期的步骤可以参考jni的实现方法,只是编译时可以利用NDK工具来进行。首先将Java源程序写好,例如: 1 package test.android; 2 3 import android.app.Act

2017-06-02 10:04:44 1952

转载 Android MediaPlayer API 大全

Android MediaPlayer API 大全1)当一个MediaPlayer对象被刚刚用new操作符创建或是调用了reset()方法后,它就处于Idle状态。当调用了release()方法后,它就处于End状态。这两种状态之间是MediaPlayer对象的生命周期。1.1) 在一个新构建的MediaPlayer对象和一个调用了reset()方法的MediaPlayer对象之

2017-06-02 09:44:39 878

转载 Android学习三、SurfaceView的学习

想要学习SurfaceView,必须了解SurfaceView、Surface、SurfaceHolder。一、Surface下面是Google提供的关于Surface的API的概述:Handle onto a raw buffer that is being managed by the screen compositor.直接从raw缓冲区中读取数据到屏幕。

2017-06-01 11:58:57 275

转载 Android学习二、MediaPlayer播放视频

MediaPlayer主要是用来播放音频的,因此它没有提供图像输出界面,此时就需要借助于SurfaceView来显示MediaPlayer播放时候的图像输出。有几点要注意的:1、MediaPlayer管理播放的,所以状态问题一定不能忽略的。2、SurfaceHolder.setType(int)方法虽然被标记为deprecate的,但是最好还是对SurfaceView进行这

2017-06-01 11:56:27 350

转载 Android学习一、MediaPlayer播放音频

想要使用MediaPlayer播放音频和视频,首先必须了解MediaPlayer的状态问题。下面是Google提供的MediaPlayer的状态图,基本上只要明白了,在MediaPlayer的状态上。就不会出问题了。还有什么不明白的,可以详细的看看Google提供的API。要想用MediaPlayer所写的的音频播放程序健壮的话,不仅需要了解MediaPlaye

2017-06-01 11:45:25 373

转载 JNI中的jclass和jobject的区别

jclass和jobject的迷惑第一次使用JNI,实例引用(jobject)和类引用(jclass)让人觉得很困惑。实例引用与一个数组和java.lang.Object类或它的子类的实例对应。类引用与java.lang.Class实例对应,它代表着类的类型。一个操作如GetFieldID,需要参数jclass,是一个类操作,因为它从一个类中获得field的描述。与此相反,GetInt

2017-06-01 09:38:52 7846

基于live555的Rtsp服务器源码

基于live555的Rtsp服务器源码

2017-02-20

FFmpeg开发包

FFmpeg开发包

2017-02-16

C++编程思想

C++编程思想

2015-03-13

空空如也

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

TA关注的人

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