- 博客(26)
- 资源 (1)
- 收藏
- 关注
原创 Android中Media Framework浅析(二)——MediaServer
MediaServer是整个android中media部分的核心和灵魂。几乎所有与多媒体播放相关的内容都放在这里。包括了音视频的编解码以及显示输出。MediaServer的main函数位于frameworks/base/media/mediaserver/main_mediase
2011-08-25 18:47:45
22431
1
原创 Android中Media Framework浅析(一)——概述
研究Android中Media framwork已经有一段时间了,有必要好好总结一下。从今天开始,就把我这几个月所学到的整理出来与大家分享。由于我所有的开发是基于android 3.0 honeycomb版本,并且里面有一些涉及到Google TV的内容。这部分内容并不开源,
2011-08-25 18:25:38
5116
原创 Android系统的Binder机制之一——Service Manager
Android虽然构建在Linux上面,但是在IPC(进程间)机制方面,没有利用Linux提供IPC机制,而是自己实现了一套轻量级的IPC机制——binder机制。并且Android Binder机制之上,Android框架提供了一套封装,可以实现对象代理(在本地进程中代理远程进程的对象)。本文简单分析一下Android Binder机制。 Binder情景分析 一个IPC通讯我们可以理解成客户端-服务器模式,因此我们先在这里分析一下典型的Binder应用模式: 1、客户端通过某种方式(
2011-04-22 17:11:00
1793
原创 Android的垃圾回收机制(android refbase类(sp wp))
sp和wp的实现过程~~ 个人觉得sp和wp实际上就是android 为其c++实现的自动垃圾 回收机制 ,具体到内部实现,sp和wp实际上只是一个实现垃圾回收功能的接口 而已,比如说对*,->的重载,是为了其看起来跟真正的指针一样,而真正实现垃圾回收的是refbase这个基类。这部分代码的目录 在:/frameworks/base/include/utils/RefBase.h 首先所有的类都会虚继承refbase类,因为它实现了达到垃圾回收所需要的所有funct
2011-04-08 11:18:00
1298
原创 volatile的用法
就象大家更熟悉的const一样,volatile是一个类型修饰符(type specifier)。它是被设计用来修饰被不同线程访问和修改的变量。如果没有volatile,基本上会导致这样的结果:要么无法编写多线程程序,要么编译器失去大量优化的机会 推荐一个定义为volatile的变量是说这变量可能会被意想不到地改变,这样,编译器就不会去假设这个变量的值了。精确地说就是,优化器在用到这个变量时必须每次都小心地重新读取这个变量的值,而不是使用保存在寄存器里的备份。下面是volat
2011-03-28 13:16:00
880
原创 C/C++中const用法总结
最近在学习C++,看到一篇文章总结关键词const挺不错,转过来: const类型定义:指明变量或对象的值是不能被更新,引入目的是为了取代预编译指令 **************常量必须被初始化************************* cons的作用 (1)可以定义const常量 例如: const int Max=100; int Array[Max]; (2)便于进行类型
2011-03-28 11:19:00
854
原创 like,unlikely宏和GCC内建函数__builtin_expect()
在阅读GStreamer代码中有两个调用很频繁的宏: #define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1)) #define G_UNLIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 0)) 其中 _G_BOOLEAN_EXPR宏的定义如下: #define _G_BOOLEAN_EXPR(expr) / __ext
2011-02-21 16:53:00
2049
原创 Enterprise Architect 7.0入门教程(目前最详细的中文教程)
使用案例,逻辑,动态和物理模型; 定制进程模型的扩展或其他; 高品质的MS Word 兼容文档; 应用直观方便; 低许可费; 数据建模,前向DDL数据库工程,反向ODBC数据库工程; 多用户(Professional 和 Corporate Edition); 前向或逆向代码工 程(Professional 和 Corporate Edition)——支持Java, C#, C++, VB.Net, Delphi, Visual Basic 和 PHP; XML导入/导出容易; 拼写检查;
2010-10-22 15:37:00
2465
转载 Symbian 因何没落
<br /> 在回家的路上,和同事开玩笑说,要是 Nokia 或者 Symbian 请我去做 Symbian OS 的技术总监,我会告诉他们如何把 Symbian 引导到正确的方向。当然,这仅仅是笑谈,但是似乎不妨碍我们正确地思考这一问题。<br />在 2006 年,我开始做真正智能移动平台的安全软件(在此之前,曾经跟踪过 Palm 上的安全动态,也有原型程序)。当时的平台还是以 Symbian(包括 S60 和 UIQ)和 Windows Mobile 为主。在经历痛苦的学习,持续的挫折感,并
2010-07-28 11:14:00
1187
原创 H.264句法和语法总结(十四)CAVLC 残差句法
residual_block_cavlc( coeffLevel, maxNumCoeff ) { C Descriptor for( i = 0; i coeffLevel[ i ] = 0 // coeff_token 指明了非零系数的个数,拖尾系数的个数。 coeff_token if( Tot
2010-04-12 17:19:00
2563
原创 H.264句法和语法总结(十三)残差句法
residual( ) { if( !entropy_coding_mode_flag ) residual_block = residual_block_cavlc else residual_block = residual_block_cabac if(
2010-04-12 17:13:00
2267
原创 H.264句法和语法总结(十二)子宏块预测句法
sub_mb_pred( mb_type ) { for( mbPartIdx = 0; mbPartIdx // sub_mb_type[ mbPartIdx ] 指明子宏块的预测类型,在不同的宏块类型中这个句法元素的语义不一样。 sub_mb_type[ mbPartIdx ] for( mbPartIdx = 0; mb
2010-04-12 17:12:00
2258
原创 H.264句法和语法总结(十二)子宏块预测句法
sub_mb_pred( mb_type ) { for( mbPartIdx = 0; mbPartIdx 0 | | mb_field_decoding_flag ) && mb_type != P_8x8ref0 && sub_mb_type[ mbPartIdx ] != B_Direct_8x8 && SubMbPredMode( sub
2010-04-12 17:05:00
1580
原创 H.264句法和语法总结(十一)宏块层预测句法
mb_pred( mb_type ) { if( MbPartPredMode( mb_type, 0 ) = = Intra_4x4 | | MbPartPredMode( mb_type, 0 ) = = Intra_16x16 ) { if( MbPartPredMode( mb_type, 0 )
2010-04-12 17:01:00
3942
原创 H.264句法和语法总结(十)宏块层句法
macroblock_layer( ) { // mb_type 指明当前宏块的类型。H.264规定,不同的片中允许出现的宏块类型也不同。下表指明在各种片类型中允许出现的宏块种类。 片类型 允许出现的宏块种类 I (slice) I 宏块 P (slic
2010-04-12 16:45:00
3095
5
原创 H.264句法和语法总结(九)片层数据句法
slice_data( ) { if( entropy_coding_mode_flag ) while( !byte_aligned( ) ) // cabac_alignment_one_bit 当熵编码模式是CABAC 时,此时要求数据字节对齐,即数据从下一个字节的第一个比特开始,如果
2010-04-12 16:11:00
4216
原创 H.264句法和语法总结(八)参考图像序列标记 (marking)操作的语义
重排序(reordering)操作是对参考帧队列重新排序,而标记(marking)操作负责将参考图像移入或移出参考帧队列。 dec_ref_pic_marking( ) { if( nal_unit_type = = 5 ) { // no_output_of_prior_pics_flag 仅在当前图像是 IDR 图像时出现这个句
2010-04-12 15:54:00
4558
原创 H.264句法和语法总结(七)加权预测句法
pred_weight_table( ) { // luma_log2_weight_denom 给出参考帧列表中参考图像所有亮度的加权系数,是个初始值luma_log2_weight_denom 值的范围是 0 to 7。 luma_log2_weight_denom // chroma_log2_weight_denom 给出参考帧列表中参
2010-04-12 15:40:00
3727
原创 H.264句法和语法总结(六)参考帧队列重排序(reordering)句法
ref_pic_list_reordering( ) { if( slice_type != I && slice_type != SI ) { // ref_pic_list_reordering_flag_l0 指明是否进行重排序操作,这个句法元素等于1 时表明紧跟着会有一系列句法元素用于参考帧队列的
2010-04-12 15:29:00
5798
原创 H.264句法和语法总结(五)片头句法
slice_header( ) { // first_mb_in_slice 片中的第一个宏块的地址, 片通过这个句法元素来标定它自己的地址。 要注意的是在帧场自适应模式下,宏块都是成对出现,这时本句法元素表示的是第几个宏块对,对应的第一个宏块的真实地址应该是2 * first_mb_in_slice first_mb_in_slice /* slice_ty
2010-04-12 15:16:00
9305
原创 H.264句法和语法总结(四)图像参数集语义
pic_parameter_set_rbsp( ) { // pic_parameter_set_id 用以指定本参数集的序号,该序号在各片的片头被引用。 pic_parameter_set_id // seq_parameter_set_id 指明本图像参数集所引用的序列参数集的序号。 seq_parameter_set_id
2010-04-12 14:07:00
3284
原创 H.264句法和语法总结(四)图像参数集语义
pic_parameter_set_rbsp( ) { // pic_parameter_set_id 用以指定本参数集的序号,该序号在各片的片头被引用。 pic_parameter_set_id // seq_parameter_set_id 指明本图像参数集所引用的序列参数集的序号。 seq_parameter_set_id
2010-04-12 14:03:00
4721
原创 H.264句法和语法总结(三)序列参数集层(SPS)句法
seq_parameter_set_rbsp( ) { // profile_idc level_idc 指明所用 profile、level profile_idc // constraint_set0_flag 等于 1 时表示必须遵从附录 A.2.1 所指明的所有制约条件。等于 0 时表示不必遵从所有条件。 constraint_s
2010-04-09 19:08:00
10293
3
原创 H.264句法和语法总结(二)NAL层句法
NAL&VCL: H.264 的功能分为两层,即视频编码层(VCL)和网络提取层(NAL,Network Abstraction Layer)。VCL 数据即编码处理的输出,它表示被压缩编码后的视频数据序列。在 VCL 数据传输或存储之前,这些编码的 VCL 数据,先被映射或封装进 NAL 单元中。 每个 NAL 单元包括一个原始字节序列负荷(RBSP)、一组对应于视频编
2010-04-09 18:14:00
12014
1
原创 H.264句法和语法总结(一)句法元素的分层结构
在 H.264 定义的码流中,句法元素被组织成有层次的结构,分别描述各个层次的信息,如下图所示 在H.264 中,句法元素共被组织成 序列、图像、片、宏块、子宏块五个层次。 在这样的结构中,每一层的头部和它的数据部分形成管理与被管理的强依赖关系,头部的句法元素是该层数据的核心,而一旦头部丢失,数据部分的信
2010-04-09 17:16:00
9651
3
原创 AAC算法总结
一 引言 本文对AAC(Advanced Audio Coding)音频编码算法进行总结。首先简要介绍MPEG音频(包括AAC)的发展历程及AAC概况,然后结合FAAC(Free AAC)的代码对AAC编码算法的各个模块进行比较详尽的分析。 二 AAC概况1 MPEG及其AAC音频的发展历程 1988年ISO/IEC标准化组织成立了运动图像
2008-07-22 10:54:00
8038
4
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人