android media
文章平均质量分 61
flyingqr
这个作者很懒,什么都没留下…
展开
-
stagefright 架构分析(二) TimedEventQueue
在stagefright中,所有操作,实际都是调用AwesomePlayer完成的。AwesomePlayer中的触发事件,是通过TimedEventQueue完成的。TimedEventQueue是一个事件触发器,当给定的时间到达后,触发TimedEventQueue::EventEvent是以queue进行管理的TimedEventQueue原创 2013-02-05 15:50:44 · 2219 阅读 · 0 评论 -
awesomePlayer 流程
LocalPlayback0 setDataSource_l(const char *uri, const KeyedVector *headers) 00 prepareAsync_l() 000 onPrepareAsyncEvent() 0000 finishSetDataSource_l() 00000 DataSource::Crea原创 2012-12-14 10:30:43 · 883 阅读 · 0 评论 -
Android 4.1 Surface系统变化说明
时间真的是很巧,本来没打算写Surface系统的(相比AudioFlinger来说,Surface变化之后的难度真的是毛毛雨了),但为了庆祝泷泽萝拉发第二部大作,我决定还是要坚持一下。下面将延续Audio的分析风格,从几个层面来介绍Surface系统的变化(JB号称在Surface这块做过大量的优质的改进,无非就是引入在PC机上早都烂熟的VSYNC,Triple Buffering。但是JB,转载 2013-02-22 15:48:21 · 1235 阅读 · 0 评论 -
stagefright 架构分析(七) 动态加载libstagefrighthw.so
在加载软解码库的代码中,可以看到有加载libstagefrighthw.so的代码,其是加载硬件解码plugin,每个平台都有自己libstagefrighthw.so的实现,以实现硬编解码,以高通平台为例:OMXMaster::OMXMaster() : mVendorLibHandle(NULL) {//加入硬解码Plugin addVendorPlugin原创 2013-02-25 18:11:46 · 6157 阅读 · 1 评论 -
stagefright 架构分析(八) 如何获取ComponentHandle,plugin与omx_core桥接
目前基于高通的code分析:1. 引入libOmxCore.so根据stagefright 架构分析(七) 动态加载libstagefrighthw.so中的描述Plugin会加载libOmxCore.so,并调用相应的functionsOMX_InitOMX_DeinitOMX_ComponentNameEnumOMX_GetHandleOMX_Fre原创 2013-03-21 14:48:22 · 2796 阅读 · 0 评论 -
android audio 架构分析(2) AudioPolicyService 的结构
AudioPolicyService简介AudioPolicyService是android audio system中两大服务之一,另外一个是AudioFlinger。主要的功能:1. 检测和设置输入输出设备的连接状态2. 音频系统的切换策略抉择3. 音量和音频系统参数的设置4. 音效的设置AudioPolicyService的相关代码frameworks原创 2013-04-16 16:51:33 · 6703 阅读 · 0 评论 -
Android Audio System 之三: AudioPolicyService 和 AudioPolicyManager
引言 AudioPolicyService是Android音频系统的两大服务之一,另一个服务是AudioFlinger,这两大服务都在系统启动时有MediaSever加载,加载的代码位于:frameworks/base/media/mediaserver/main_mediaserver.cpp。AudioFlinger主要负责管理音频数据处理以及和硬件抽象层相关的工作。本文主要介绍转载 2013-07-03 17:57:00 · 1043 阅读 · 0 评论 -
Android Audio System 之二:AudioFlinger
引言 AudioFlinger是Android音频系统的两大服务之一,另一个服务是AudioPolicyService,这两大服务都在系统启动时有MediaSever加载,加载的代码位于:frameworks/base/media/mediaserver/main_mediaserver.cpp。AudioPolicyService的相关内容请参考另一编文章:《Android Aud转载 2013-07-03 17:56:26 · 1049 阅读 · 0 评论 -
Android Audio System 之一:AudioTrack如何与AudioFlinger交换音频数据
引子Android Framework的音频子系统中,每一个音频流对应着一个AudioTrack类的一个实例,每个AudioTrack会在创建时注册到AudioFlinger中,由AudioFlinger把所有的AudioTrack进行混合(Mixer),然后输送到AudioHardware中进行播放,目前Android的Froyo版本设定了同时最多可以创建32个音频流,也就是说,Mixe转载 2013-07-03 17:56:15 · 1322 阅读 · 0 评论 -
xbmc 应用介绍
XBMC是一个优秀的自由和开源的(GPL)媒体中心软件。XBMC最初为Xbox而开发,可以运行在Linux、OSX、Windows、Android4.0系统。 2003年,一些兴趣相投的程序员创建了这个项目。XBMC是一个非盈利的项目,由遍布世界各地的自愿者开发维护。超过50名软件开发人员为XBMC作出贡献,还有超过100名翻译人员努力扩大它的应用范围,使它支持超过30种语言(当然也包括咱们的中文转载 2013-07-03 14:08:38 · 1437 阅读 · 0 评论 -
Android下的多媒体开源项目
1. ffmpeg for x86 http://gitorious.org/~olvaffe/ffmpeg/ffmpeg-android 没有实现android media interface,标准流程是通过surface输出解码后的YUV视频数据,audioTrack输出解码后的音频PCM数据。简单说就是不能用该代码树上的代码来完成多媒体的播放,但是,个人认为ff转载 2013-07-04 11:25:58 · 1218 阅读 · 0 评论 -
vlc-android 移植live555到android
一. 在contrib目录下编译live555修改~/code/vlc-android/extras/contrib 下的distro.mak 增加.live all: .zlib / .a52 .mpeg2 .mad .ogg .vorbis .vorbisenc .theora / .flac .speex .faad .lame .转载 2013-07-04 15:21:17 · 1555 阅读 · 0 评论 -
android vlc 编译流程
1. git clone git://git.videolan.org/vlc/vlc-android.git2. get android ndk and sdk3. export ANDROID_NDK=/home/me/android/android-ndk-r8eexport ANDROID_SDK=/home/me/android/android-sdk-linuxex原创 2013-07-04 15:29:52 · 1116 阅读 · 0 评论 -
关于图像的YC压缩与YC伸张
这两天一直在研究图像的RGB显示超限的问题,谷歌了老半天,终于找到一篇Silky的帖子。帖子内容如下,希望可以帮到有需要之人。 我把以前写过的东西做一个整理,因为时间的关系,我没有办法把每一个细节都讲得非常的详细,不过我会把大概的原因,和处理的方法,尽量用很精简的方式,条列整理出来。如果对更深入的原理有兴趣,请搜寻过去零散的讨论。一切都要从 ITU-R BT.601 这转载 2014-06-09 15:17:29 · 3932 阅读 · 0 评论 -
向android stagefright增加软解码库
在stagefright中,加入了可增加软解码库的plugin:SoftOMXPlugin,可以自己加入软解码。看文件SoftOMXPlugin.cpp首先要增加kComponents[],标示自己的软解码库。在这个文件中,最关键的是 SoftOMXPlugin::makeComponentInstance()根据提供的component name在kCompone原创 2012-12-19 15:41:52 · 3237 阅读 · 0 评论 -
ffmpeg 注册log callback
在FFmpeg中,内部的log信息会被printf打印出来。可以通过av_log_set_callback()注册log callback function,ffmpeg就会把log重定向到callback function中。在android中可以在callback function中使用LOG打印,或者空函数,什么都不打印。void av_log_set_c原创 2012-12-20 10:13:06 · 3332 阅读 · 0 评论 -
stagefright 架构分析(六) 创建一个 Soft Decoder
参考代码在android中,已经有一些soft decoder,例如AAC AMR AVC等,这些都是软解的decoder,如果想自己加入一种decoder,可以参照这些代码的写法。例如frameworks/av/media/libstagefright/codecs/aacdec/ amrnb/ amrwbenc/ avc/ flac/原创 2013-02-16 15:22:05 · 5617 阅读 · 0 评论 -
wvm 文件
WVM is a video file that has been encrypted using the Widevine (now Google) DRM platform. The first 10 seconds are not encrypted, that is why you can see it in VLC.A wvm file is not the same转载 2012-12-19 10:58:57 · 3123 阅读 · 0 评论 -
android 3d player
3d分为偏光式3D和快门式3D如何检测到3D模式H.264的SEI信息中:Supplemental enhancement information (SEI) and video usability information (VUI), which are extra information that can be inserted into the bitstream t原创 2013-02-04 17:01:43 · 1192 阅读 · 0 评论 -
OpenMax在Android上的实现
摘要:本文简要介绍了OpenMax 的集成层,并阐述了其在Android上的实现和运行过程。关键字:OMX, 多媒体框架, IL, Android, Stagefright1、OpenMax 集成层介绍OpenMax是一个多媒体应用程序的框架标准。它自上而下分为三层,Application Layer, Integration Layer和Development Layer。应用层规定转载 2013-02-16 17:45:36 · 1980 阅读 · 0 评论 -
stagefright 架构分析(一) stagefright 介绍
stagefright stagefright是android froyo版本引入的多媒体架构。android 4.1代码:文件目录 frameworks/av/media/libstagefright/生成库libstagefright.so主要的module:awesomeplayer其在MediaPlayerService中构造:player_type原创 2013-02-05 14:30:35 · 3339 阅读 · 0 评论 -
stagefright 架构分析(三) stagefright 功能和调用流程
stagefright继承于MediaPlayerInterface通过VideoView对MediaPlayer的调用关系,分析一下MediaPlayer的接口层VideoView:openVideo(){ mMediaPlayer = new MediaPlayer();//设定回调函数 mMediaPlayer.setOnPre原创 2013-02-07 11:25:30 · 3167 阅读 · 0 评论 -
stagefright 架构分析(四) MediaExtractor
MediaExtractor 是什么?MediaExtractor 就是解复用器,将audio和video分离Android 4.1目前支持mp4 mkv ogg wav flac amr ts mp3 ps aac wvm这几种分离器其实android支持分离器支持的不好,很多格式都没有或者不够健壮,毕竟它一般是用在手机上,简单一些就够了,不过可以看到android media正在慢原创 2013-02-08 09:59:07 · 12864 阅读 · 0 评论 -
media 字幕相关
字幕格式 .utf .idx .sub .srt .smi .rt .txt .ssa .aq .jss .js .ass .srt .ksc .snc .krc .qly 图形格式字幕由 idx 和 sub 文件组成,idx 相当于索引文件,里面包括了字幕出现的时间码和字幕显示的属性,sub 文件就是字幕数据本身,由于是图片格式,所以比较大,动辄 10M 以上(不过我们可以将之压缩为 r转载 2012-12-27 10:04:22 · 886 阅读 · 0 评论 -
h264: mp4 to annexb in ffmpeg
h264有两种封装,一种是annexb模式,传统模式,有startcode,SPS和PPS是在ES中一种是mp4模式,一般mp4 mkv会有,没有startcode,SPS和PPS以及其它信息被封装在container中,每一个frame前面是这个frame的长度很多解码器只支持annexb这种模式,因此需要将mp4做转换:在ffmpeg中用h264_mp4toan原创 2013-01-11 15:57:14 · 10760 阅读 · 1 评论 -
openmax 简介
1.openmax 简介 OpenMax是一个多媒体应用程序的框架标准,由NVIDIA公司和Khronos在2006年推出。OpenMAX分为3层:第一层:OpenMax DL(Development Layer,开发层)第二层:OpenMax IL(Integration Layer,集成层)第三层:OpenMax AL(Appliction Layer,应用层)转载 2012-12-13 15:31:45 · 807 阅读 · 0 评论 -
android 多媒体基础架构
看这篇文章:http://blog.csdn.net/tjy1985/article/details/8123515转载 2012-12-17 15:23:32 · 827 阅读 · 0 评论 -
android jpeg
在Android中,最终的解码库是IJG(Independent JPEG Group)JNI:core/jni/android/graphics/BitmapFactory.cpp Interface: nativeDecodeStream nativeDecodeFileDescriptor nativeDecodeAsset n原创 2012-05-17 10:46:08 · 1770 阅读 · 0 评论 -
stagefright 架构分析(五) 初始化 VideoDecoder
VideoDecoder的初始化实际就是OMX的创建,Stagefright提供了OMX的封装OMXCodec在平台上stagefright -l 可以看到所有的组件VideoDecoder的创建流程status_t AwesomePlayer::initVideoDecoder(uint32_t flags) {//最重要的创建mVideoSource sp原创 2013-02-16 11:49:20 · 5476 阅读 · 0 评论 -
Android系统优化工具
Systrace输出的html需要用chrome打开,而且要通过chrome://tracing/ load原创 2017-03-06 19:54:29 · 367 阅读 · 0 评论