- 博客(20)
- 资源 (8)
- 收藏
- 关注
转载 Gstreamer的同步机制
本文编译自gstreamer源代码中的文档,原文的路径是gstreamer/docs/design/part-synchronisation.txt。本文描述了Gstreamer的同步机制,Gstreamer中实现同步的组件如下:GstClock,是全局的,用于pipeline中的所有elements。 GstBuffer的timestamps。 buffers之前的NEW_S
2013-11-27 18:34:40 1771
转载 ffdemux_mpegts中时间戳的处理问题
ffdemux_mpegts是gstreamer的demux plugin,基于ffmpeg,在使用的时候发现处理实时流存在问题。先来描述一下问题,采用gst-launch命令启动转码,命令如下:gst-launch-0.10 udpsrc multicast-group=239.1.80.80 port=49500 ! queue ! ffdemux_mpegts name=de
2013-11-27 18:33:43 1170
转载 gstreamer应用程序调试
大型应用程序需要完善的debug及log,用于出错调试以及运行时的日志。gstreamer提供了灵活的调试和日志工具 - Gstreamer调试和日志子系统GstInfo。Gstreamer的调试和日志子系统是获取应用程序运行状况的途径。只有在Gstreamer程序初始化以后调试子系统才开始运行,比如调用gst_init()进行初始化。Gstreamer调试和日志子系统在应用程序运
2013-11-27 18:30:50 1744
翻译 Gstreamer架构 简介
本文给出了Gstreamer的总体设计。通过阅读本文可以了解Gstreamer的内部工作原理。本文编译自gstreamer源码中的文档,原文在源码中的位置是/gstreamer/docs/design/part-overview.txt。概述Gstreamer是一个libraries和plugins的集合,用于帮助实现各种类型的多媒体应用程序,比如播放器,转码工具,多媒体服务器等。
2013-11-27 18:28:50 1109
转载 C语言宏与单井号(#)和双井号(##)
C(和C++)中的宏(Macro)属于编译器预处理的范畴,属于编译期概念(而非运行期概念)。下面对常遇到的宏的使用问题做了简单总结。关于#和##在C语言的宏中,#的功能是将其后面的宏参数进行字符串化操作(Stringfication),简单说就是在对它所引用的宏变量通过替换后在其左右各加上一个双引号。比如下面代码中的宏:#define WARN_IF(EXP) / do{ if
2013-11-20 19:30:18 761
转载 gstreamer插件工作原理与流程分析 .
gstreamer plugins的工作同所有的基于插件的程序的工作原理类似,本质上都是通过读取动态库实现的,只需要每个动态库都实现某一个特定的接口就可以了,比如XX_init等,gstreamer统一使用plugin_init。里面会有个像注册表一样的数据结构会存储所有的插件的信息。 (1)在应用程序启动时,会调用gst_init--->gst_init_check。gst_init
2013-11-20 19:04:58 1646
转载 gstreamer核心源码走读typefind原理和对象关系浅析(三)
mark>待完善 如需转载,请注明出处:本博客链接http://blog.csdn.net/acs713/article/details/7742976
2013-11-20 19:03:31 1116
转载 gstreamer核心源码走读typefind原理浅析(二) .
在我的上一篇文章里,谈到: 8)Filesrc最终会调用open函数打开文件。接着src组件状态也发生切换,创建一个task,最后把文件信息推送给typefind; 9) typefind会从src读取一部分数据然后送出typefind_callback,在callback里面创建合适的plugin。合适的plugin. 本文将从源码分析的角度,重点将这2步分析清楚。可以说,理解了
2013-11-20 19:01:20 1436
转载 gstreamer 核心源码source创建和识别typefind原理浅析(一) .
一般情况下,用户打开一个多媒体文件,gstreamer首先需要知道文件的类型,然后创建相应的解码器来解析这个文件,最终实现播放这个文件。 一个实现流程实例如下: (1) app程序通知gstreamer会根据uri、文件路径,创建相应类型的src组件,一般为filesrc组件(element)) (2) 接着根据插件名创建type_find组件 (3)
2013-11-20 19:00:26 944
转载 深入浅出gstreamer的调度模式 .
gstreamer的官方文档里,调度的英文是schedule. 什么是schedule? 它的英文解释为" to plan that something will happen at a particular time “.在gstreamer里,调度的意义跟它基本差不多。在gstreamer里,调度的目的主要有以下几个: (1)在适当的时候通知每个元件去完成相应的任务,确保这些职责
2013-11-20 18:54:44 1262
转载 相见恨晚之gstreamer衬垫的激活
1.衬垫的激活 当一个bin(箱柜)的状态发生变化时,它里面的元件的状态是按照sink到source的顺序变化的,即先设置sink元件的新状态,再设置source元件的新状态。当状态变化是从ready变到pause时,元件的衬垫开始激活,为数据在元件之间的流动做准备。有些pad,还会启动一个任务(task),来驱动数据流。 对某个元件来说,它通常先激活它的sourc
2013-11-20 18:54:01 1128
转载 Gstreamer的音视频同步 .
一 概述 Gstreamer的音频视频同步,概括起来是一个比较大的问题,因为在网上可以看到很多音视频同步的办法。这里我们只看最普通的一种。以音频时钟做为参考时钟(要求参考时钟上的时间是线性递增的);生成数据流时依据参考时钟上的时间给每个数据块都打上时间戳(一般包括开始时间和结束时间);在播放时,读取数据上的时间戳,同时参考当前参考时钟上的时间来安排播放(如果数据块上的时间大于参考时钟
2013-11-20 12:31:34 2746
转载 android mediaplayer + stagefright 框架图解
在android原生的媒体播放器中是由mediaplayerservice来控制媒体播放器的,在mediaplayerservice中创建了mediaplayer,在mediaplayer.java的native方法通过jni调用android_media_mediaplayer.cpp中的方法,接着往下调用mediaplayer.cpp中的方法,mediaplayer通过ipc机制调用media
2013-11-18 11:32:00 800
转载 stagefright简介
1、 StageFright介绍 Android froyo版本多媒体引擎做了变动,新添加了stagefright框架,并且默认情况android选择stagefright,并没有完全抛弃 opencore,主要是做了一个OMX层,仅仅是对 opencore的omx-component部分做了引用。stagefright是在MediaPlayerService这一层加入的,和 op
2013-11-18 10:14:02 1083
转载 Android的MediaPlayer架构介绍
本文主要介绍的是Android中很重要也最为复杂的媒体播放器(MediaPlayer)部分的架构。对于Android这样一个完整又相对复杂的系统,一个MediaPlayer功能的实现不在其具体的功能,而是具体功能如何适应Android系统Android MediaPlayer的主要具体实现在OpenCore的Player中,这部分不是本文的关注点。本文关注的是MediaPlayer系统的架构,其他
2013-11-18 01:35:32 978
转载 Android中深入研究Service .
关于Service,不管是Windows还是linux系统,相信大家应该遇到过很多自己解决不了的问题吧,那么本文来讲述一下Android手机系统中的Service .1 Service本质结构我们还是从Service的根本意义分析入手,服务的本质就是响应客户端请求。要提供服务,就必须建立接收请求,处理请求,应答客服端的框架。我想在Android Service设计者也会无时不刻
2013-11-18 01:30:31 697
转载 Android开机启动流程初探 .
第一步:启动linux1.Bootloader2.Kernel第二步android系统启动:入口为init.rc(system\core\rootdir)1./system/bin/service manager: Binder 守护进程;2.Runtime;3.Zygote :app-process/app-main;4.Start VM;5.Start serv
2013-11-18 01:28:26 841
转载 Android重量级开发之--提高android启动速度研究
大家都知道启动速度慢是智能操作系统的一个通病,Android也不例外,启动速度大概在1分钟左右,虽然日本有一个叫quick boot的一秒启动android的产品,但是毕竟是旁门左道。所以从常规来提高android的启动速度成了大家研究的重点,也是难点。下面将初步研究的一下经验跟大家分享一下。首先看一下android系统的启动流程:bootloader
2013-11-18 01:27:20 1074
原创 Android中Media Framework浅析(一)——概述 .
刚刚开始研究Android中Media framwork,有必要做一下笔记和转载一些高人输出的成果。记录下我的足迹,也留给大家分享。由于我所有的开发是基于android 3.0 honeycomb版本,并且里面有一些涉及到Google TV的内容。这部分内容并不开源,我会尽量的将其略过,请大家谅解(转载)!
2013-11-18 01:18:10 1740
转载 Android中Media Framework浅析(二)——MediaServer
MediaServer是整个android中media部分的核心和灵魂。几乎所有与多媒体播放相关的内容都放在这里。包括了音视频的编解码以及显示输出。MediaServer的main函数位于frameworks/base/media/mediaserver/main_mediaserver.cpp中。函数非常简单:int main(int argc, char** argv){//获
2013-11-18 01:13:55 1344
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人