自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(61)
  • 收藏
  • 关注

转载 JAVA中this的三种用法的详解

this关键字必须放在非静态方法里面this关键字代表自身,在程序中主要的使用用途有以下几个方面:? 使用this关键字引用成员变量? 使用this关键字在自身构造方法内部引用其它构造方法? 使用this关键字代表自身类的对象? 使用this关键字引用成员方法8.8.1.1 引用成员变量在一个类的方法或构造方法内部,可以使用“this.成员变量名”这样的格式来引用成员变量名,有些时候可以省略,有些...

2018-03-08 19:34:33 583

转载 Java 内存分配全面浅析

本文将由浅入深详细介绍Java内存分配的原理,以帮助新手更轻松的学习Java。这类文章网上有很多,但大多比较零碎。本文从认知过程角度出发,将带给读者一个系统的介绍。进入正题前首先要知道的是Java程序运行在JVM(Java Virtual Machine,Java虚拟机)上,可以把JVM理解成Java程序和操作系统之间的桥梁,JVM实现了Java的平台无关性,由此可见JVM的重要性。所以在学习Ja...

2018-03-08 11:23:11 377

转载 Android开发——Android多进程以及使用场景介绍

0.  前言在Android中,默认情况下,同一应用的所有组件均运行在同一进程中,且大多数应用都不会改变这一点。不过,单进程开发并不是Android应用的全部,今天我们就来说说Android中的多进程开发以及多进程的使用场景。 1.  进程我们都知道Android系统是基于Linux改造而来的,进程系统也是一脉相承,进程其实就是程序的具体实现。当程序第一次启动,Android会启动一个Linux进...

2018-02-11 11:38:22 608

转载 Android Media Player 框架分析-AHandler AMessage ALooper

在之前一篇中简单的介绍了一下setDataSource的流程,其中遇到了一个新的消息机制AHandler,其实这东西本来不需要介绍,因为消息机制原本就是一个很成熟和常见的技术技巧,这玩意里面包含了计算机哲学和计算机玄学的双学位问题,听起来牛逼轰轰,其实也就那回事了。为了这次文档的完整性,再一个后面可能要整理到公司的文档库中,所以在此介绍一下,熟悉的同学直接飘过了。先说说为什么要用消息机制,在我们的...

2018-02-09 19:46:31 1040

转载 FU-A分包方式,以及从RTP包里面得到H.264数据和AAC数据的方法

【原创】 RFC3984是H.264的baseline码流在RTP方式下传输的规范,这里只讨论FU-A分包方式,以及从RTP包里面得到H.264数据和AAC数据的方法。1、单个NAL包单元12字节的RTP头后面的就是音视频数据,比较简单。一个封装单个NAL单元包到RTP的NAL单元流的RTP序号必须符合NAL单元的解码顺序。2、FU-A的分片格式数据比较大的H264视频包,被RTP分片发送。12字...

2018-02-09 10:13:26 779

转载 Android 源码分析之基于NuPlayer的HLS流媒体协议

HLS 概述HTTP Live Streaming(HLS)是苹果公司实现的基于HTTP的流媒体直播和点播协议,主要应用在iOS系统。相对于普通的流媒体,例如RTMP协议、RTSP协议、MMS协议等,HLS最大的优点是可以根据网络状况自动切换到不同码率的视频,如果网络状况较好,则会切换到高码率的视频,若发现网络状况不佳,则会逐渐过渡到低码率的视频,这个我们下面将会结合代码对其进行说明。HLS框架介...

2018-02-08 18:46:03 1461

转载 RTP协议

转自http://blog.csdn.net/chen495810242/article/details/392073051、RTP 分析(1)IP是属于网络层部分的,UDP和RTP都是属于传输层部分的。(2)RTP首部1)        V:RTP协议的版本号,占2位,当前协议版本号为22)        P:填充标志,占1位,如果P=1,则在该报文的尾部填充一个或多个额外的八位组,它们不是有效...

2018-02-08 18:06:04 365

转载 RTP协议全解析(H264码流和PS流)

写在前面:RTP的解析,网上找了很多资料,但是都不全,所以我力图整理出一个比较全面的解析,其中借鉴了很多文章,我都列在了文章最后,在此表示感谢。互联网的发展离不开大家的无私奉献,我决定从我做起,希望大家支持。原创不易,转载请附上链接,谢谢http://blog.csdn.net/chen495810242/article/details/392073051、RTP Header解析        ...

2018-02-08 15:58:04 1261

转载 Wireshark 抓包分析 RTSP/RTP/RTCP 基本工作过程

整体而言,RTSP 通常工作于可靠的传输协议 TCP 之上,就像 HTTP 那样,用于发起/结束流媒体传输,交换流媒体元信息。RTP 通常工作于 UDP 之上,用于传输实际的流媒体数据,其中的载荷格式因具体流媒体类型的不同而不同,通常有专门的 RFC 规范对其进行定义,如 H.264 编码格式视频数据的载荷格式在 RFC 6184, RTP Pay...

2018-02-08 15:52:37 1067

转载 RTSP请求详解及RTP 基于UDP和TCP协议传输数据的对比

最近一段时间一直在研究rtsp和rtp,现在写博客总结一下,也是对知识的一种巩固吧。rtsp的协议的请求流程及格式请参考一下链接:http://blog.csdn.net/u010425035/article/details/10410851下面是我用VLC播放器获取海康NVR视频的截图(此次获取是基于TCP的):下面来看一下针对每一条消息的详细截图:客户端发送的OPTION消息:服务器对OPTI...

2018-02-08 15:50:29 689

转载 AndroidStudio 中使用FFMPEG

1.下载 FFmpeg 源码git clone https://git.ffmpeg.org/ffmpeg.git这一步可能会花比较长的时间2.编译 FFmpeg for Android2.1.修改 FFmpeg 的 configure由于FFMPEG默认编译出来的动态库文件名的版本号在.so之后(例如“libavcodec.so.5.100.1”),但是android

2018-01-29 17:57:54 1282 1

转载 Android 权限的一些细节

Android 权限的一些细节1 哪些app属于system app?为了区分privilege app和system app,这里先说明system app是什么,避免之后的讨论概念混乱。在PackageManagerService中对是否是system app的判断: 具有ApplicationInfo.FLAG_SYSTEM标记的,被视为System app。 pr

2017-08-18 13:13:24 2490 1

转载 c++ 函数返回引用

一,c++函数的返回分为以下几种情况 1)主函数main的返回值:这里提及一点,返回0表示程序运行成功。2)返回非引用类型:函数的返回值用于初始化在跳用函数出创建的临时对象。用函数返回值初始化临时对象与用实参初始化形参的方法是一样 的。如果返回类型不是引用,在调用函数的地方会将函数返回值复制给临时对象。且其返回值既可以是局部对象,也可以是求解表达式的结果。3)返回引用:当函数返回引

2017-08-16 17:00:43 640

转载 C++中struct和class的区别

有很多人在学习C++的 时候只是了解了C++的语法,或者更高层次的人是理解了oo(面向对象),但在这样的学习过程中,往往一些最基本的问题反而被忽略了。当然,这些问题或许 在你做工程中,不会有太大的影响,只要按照平时一贯的良好编码习惯,依旧可以写出好的代码;但某些时候,或许就是这些最基本的小问题,会让你的程序BUG 难以发现,而注意到某些问题后,同时还将会提升你程序的性能。所以,还是让我们把这些最基

2017-08-16 16:53:33 448

转载 C++中的static关键字的总结

C++的static有两种用法:面向过程程序设计中的static和面向对象程序设计中的static。前者应用于普通变量和函数,不涉及类;后者主要说明static在类中的作用。1.面向过程设计中的static1.1静态全局变量在全局变量前,加上关键字static,该变量就被定义成为一个静态全局变量。我们先举一个静态全局变量的例子,如下: //Example 1#include

2017-08-16 16:41:10 270

转载 C++中的inline关键字

1. 引入inline关键字的原因在c/c++中,为了解决一些频繁调用的小函数大量消耗栈空间(栈内存)的问题,特别的引入了inline修饰符,表示为内联函数。栈空间就是指放置程序的局部数据(也就是函数内数据)的内存空间。在系统下,栈空间是有限的,假如频繁大量的使用就会造成因栈空间不足而导致程序出错的问题,如,函数的死循环递归调用的最终结果就是导致栈内存空间枯竭。下面我们来看一个

2017-08-16 16:20:26 299

转载 int,int32_t,int64_t

这些事跨平台编程导致的;一、数据类型特别是int相关的类型在不同位数机器的平台下长度不同。C99标准并不规定具体数据类型的长度大小,只规定级别。作下比较:16位平台char      1个字节8位short       2个字节16位int         2个字节16位long       4个字节32位指针       2个字节32位

2017-08-16 15:25:58 3256

转载 Android Native层异步消息处理框架

一、前言  在NuPlayer中,可以发现许多类似于下面的代码: 1 //=======================================// 2 NuPlayerDriver::NuPlayerDriver(pid_t pid) 3 : ...... 4 mLooper(new ALooper) 5 ......{ 6

2017-08-15 17:40:16 606

转载 Android 源码分析之基于NuPlayer的RTSP流媒体协议

RTSP 概述:RTSP 是Real Time Streaming Protocol(实时流媒体协议)的简称。RTSP提供一种可扩展的框架,使得能够提供可控制的,按需传输实时数据,比如音频和视频文件。RTSP对流媒体提供了诸如暂停,快进等控制,而它本身并不传输数据,RTSP作用相当于流媒体服务器的远程控制。传输数据可以通过传输层的TCP,UDP协议,RTSP也提供了基于 RTP传输机制的一些有

2017-08-15 16:47:59 1095

转载 H.264简单码流分析

使用Elecard Stream Eye分析了一个H.264码流文件。得到的结果如下:I帧:宏块类型(红色代表I宏块)宏块划分(4x4,16x16)宏块大小(颜色越浅,越大)P帧:宏块划分宏块类型(黄色是skip宏块,蓝色是P宏块):运动矢量

2017-08-15 13:51:36 489

转载 H264学习笔记(1):视频压缩编码的基本原理

陆陆续续学习H264有一段时间了,曾经以为自己可以在这方面大有作为,但是越是学习越发现,根本不存在能够大幅度提升H264性能的方案,对于我这种水平的人来讲。初次学习,概念的理解仍然很困难。在这里我只是简单浅显的讲一讲我最近的读书学习感想。       首先推荐三本书,《新一代视频压缩编码标准H.264(毕厚杰)》,《h264和mpeg-4视频压缩:新一代多媒体的视频编码技术》,《H264标准中

2017-08-15 13:31:59 984 1

转载 H264编码之GOP含义

GOP说白了就是两个I帧之间的间隔.比较说GOP为120,如果是720p60的话,那就是2s一次I帧.        在视频编码序列中,主要有三种编码帧:I帧、P帧、B帧,如下图所示。            ● I帧即Intra-coded picture(帧内编码图像帧),不参考其他图像帧,只利用本帧的信息进行编码            ● P帧即Predictive-codedPi

2017-08-15 11:06:55 782

转载 H.264中普通I帧和IDR帧究竟有什么区别

参考百度知道:https://zhidao.baidu.com/question/1736344147087105907.htmlI帧中,有一类特殊的I帧,叫做IDR帧。IDR帧的性质是,比如第1000帧是IDR帧,那么这一帧相当于一个分水岭,从1001帧开始,所有的帧都不能再参照1000帧之前的帧。在closed GOP规定下,0~999帧也不允许参照这个IDR帧以及之后的帧。等于说

2017-08-15 11:02:15 6303 1

转载 h264和x264的区别

H.264:H.264是ITU(International Telecommunication Unite 国际通信联盟)和MPEG(Motion Picture Experts Group 运动图像专家组)联合制定的视频编码标准。在ITU的标准里称为H.264,在MPEG的标准里是MPEG-4的一个组成部分——MPEG-4 Part 10,又叫Advanced Video C

2017-08-15 09:18:40 3553

转载 YCbCr与YUV的区别

yuv色彩模型来源于rgb模型,该模型的特点是将亮度和色度分离开,从而适合于图像处理领域。YCbCr模型来源于yuv模型,应用于数字视频,ITU-R BT.601 recommendation通过上面的比较可以确定,我们在h.264,mpeg等编码标准中用的yuv其实是YcbCr,大家不要被名称搞混淆了。为了使用人的视角特性以降低数据量,通常把RGB空间表示的彩色图像变

2017-08-15 09:15:14 1577

转载 Hardening the media stack

此文转载自Androi developers bloghttps://android-developers.googleblog.com/2016/05/hardening-media-stack.htmlHardening the media stack05 May 2016Posted by Dan Austin and Je

2017-08-13 09:53:20 550

转载 安卓libStagefright高危漏洞分析

-序-本周早些时候, 国外安全公司Zimperium爆出多处Android系统漏洞, 瞬间占据各大媒体头条. 号称一条彩信即可控制手机, 影响范围从Android 2.2到5.1通杀, 号称Android上的”心脏滴血”. 本着不放过任何漏洞细节的原则, 扒了一下相关信息. 要做这篇分析报告的时候, 一开始是拒绝的, 后来各种夸张新闻刷屏, 真的有这么恐怖吗?-漏洞信息初探- 

2017-08-13 07:43:58 1737

转载 eclipse里面的alt+/不给提示, 只是补全代码的解决方法

最近又开始做java相关的项目,所以又开始用eclipse这个熟悉的IDE了,遇到了按Alt+/ 不给提示的问题,只是把代码补全了,并且也不是自己想要的。我想要的是按Alt + / 给出代码提示,然后我可以选择到底使用那个方法或者变量,那么想使IDE按Alt + / 给出的提示,可以用以下方法解决:1。打开菜单window→Preferences,2。在窗口的左侧树选择Genera

2017-08-10 15:18:39 1312

转载 FFmpeg 在ubuntu 中编译出so

注:我实在Ubuntu中编译的,配置ndk环境 ,可参考我的另一个文章:http://www.cnblogs.com/x-bing/p/5394496.html 1.到FFmpeg官方网站http://www.ffmpeg.org/上去下载源代码选择”Download”进入下载页面,选择该下方的”Downloadgzip tarball”进行下载 2.将下载的文件通过共

2017-08-10 08:40:32 718

转载 Android内存泄漏分析及调试

http://blog.csdn.net/gemmem/article/details/13017999此文承接我的另一篇文章:Android进程的内存管理分析 首先了解一下dalvik的Garbage Collection:如上图所示,GC会选择一些它了解还存活的对象作为内存遍历的根节点(GC Roots),比方说thread stack中的变量,JNI中的全

2017-08-04 15:08:58 399

转载 Android进程的内存管理分析

尊重原创作者,转载请注明出处:http://blog.csdn.net/gemmem/article/details/8920039最近在网上看了不少Android内存管理方面的博文,但是文章大多都是就单个方面去介绍内存管理,没有能全局把握,缺乏系统性阐述,而且有些观点有误。这样对Android内存管理进行局部性介绍,很难使读者建立系统性概念,无法真正理解内存管理,对提高系统优化和系统

2017-08-04 14:42:30 406

转载 Android性能提升之强引用、软引用、弱引用、虚引用使用

转载请把头部出处链接和尾部二维码一起转载,本文出自逆流的鱼yuiop:http://blog.csdn.net/hejjunlin/article/details/52637333背景:收到公众投稿,《从面试题中看Java的Reference(引用)》,分析的很不错,总感觉少了实际的例子和应用场景。于是结合自己工作中场景,小总结一下。看下Agenda如下:强引用软引用弱引用什么时候使用

2017-08-04 13:56:31 299

原创 如何dump audio数据定位杂音问题

我们在分析杂音等问题的时候, 只抓adb log是不够的, dump audio的数据能直观快速的判断是哪一块出了问题, 这里只针对高通平台。1. dump audioflinger的数据 /frameworks/av/services/audioflinger/Tracks.cpp#getNextBuffer// AudioBufferProvider interfacestatus_t

2017-03-29 20:07:49 7376

原创 Android N Audio播放六:如何读取buffer

在Android N Audio播放四:start真面目 中我们知道了,在GenricSource中当start方法开始以后,音频就开始播放了.

2017-03-01 22:20:38 3317 1

原创 Android N Audio播放五:如何选择Extractor

我们在Android N Audio播放三:prepare大揭秘介绍了在prepare的过程中会创建Extractor, Extractor的主要作用是从容器格式中把音频和视频剥离出来,为之后的解码提供音频流和视频流,要知道。音频和视频的解码是分离的, 所以Extractor这一步非常重要。1. Extractor流程图   如惯例,我们还是先上流程图,对这个过程涉及到的类有个大概的了解。

2017-02-23 23:17:11 3443 2

原创 Android N Audio播放四:start真面目

start是MusicDemo中播放音乐的最后一步,也是最重要的一步。这里我们就得把三步都打开了,后面为了看清楚,可以把前面两步的日志先过滤出去。    private void play(){ try { String path = Environment.getExternalStorageDirectory().getAbsolutePath()

2017-02-20 23:35:28 1941 1

原创 Android N Audio播放三:prepare大揭秘

这一节我们来看看在Android N Audio播放一:如何播放一首音乐中介绍的播放音乐的第二步:   player.prepare();  同样,我们在MusicDemo中将start方法注释掉。这样可以看得更清楚。    private void play(){ try { String path = Environment.getExterna

2017-02-15 23:34:11 3051

原创 Android N Audio播放二:setDataSource窥探

在上一篇Android如何播放一首音乐中介绍了如何使用MediaPlayer来播放音乐文件。可以看到,步骤非常简单。player.setDataSource(path);player.prepare();player.start();  但如果你想更深入的了解Audio, 仅仅会调用这个几个API是远远不够的,没有考虑容器格式,文件的来源,协议,编解码等等。      这篇文章就来介绍一下第

2017-02-13 14:33:42 2882

原创 Android N Audio播放一:如何播放一首音乐

众所周知,Android提供丰富的API供应用开发者开发各种各样的应用。同样对于开发多媒体相关的应用,Android也提供了非常丰富的API, 可以参考Android中文开发者网站的media部分。 https://developer.android.google.cn/reference/android/media/package-summary.html  要实现播放一首音乐,使用MediaP

2017-02-10 17:22:57 1972

翻译 Android Audio 3: Audio的实现

https://source.android.com/devices/audio/implement.html本篇将阐述如何实现Audio HAL和如何配置共享库。1. 实现HALAudio HAL由三部分构成,这三部分必须实现。hardware/libhardware/include/hardware/audio.h 表征了一个audio device的主要方法hardware/libhar

2016-08-05 10:06:39 3268

空空如也

空空如也

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

TA关注的人

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