共 10 篇文章 |
|
return err;Scans the sample-to-chunk atom to discover which chunk contains the sample in question.Finds the offset within the chunk and the sample’s size by using the sample size atom. Finding a Key Frame.Finds the offset within the chunk and the sample''s size by using the sample size atom.SampleIterator#fin... 阅665 转9 评0 公众公开 11-11-11 18:26 |
然而,我们从avcodec_decode_video()函数中得到的帧只是一个AVFrame,其中并没有包含有用的PTS值(注意:AVFrame并没有包含时间戳信息,但当我们等到帧的时候并不是我们想要的样子)。然而,ffmpeg重新排序包以便于被avcodec_decode_video()函数处理的包的DTS可以总是与其返回的PTS相同。函数avcodec_default_get_buffer和avcodec_default_rele... 阅18 转自ShaneWu 公众公开 11-11-11 18:24 |
android的binder机制。看一下BpInterface的定义就可以发现,BpMediaPlayerService这样定义了以后,事实上间接 继承了IMediaPlayerService,从而可以提供IMediaPlayerService接口所定义的接口函数。transact()函数在IBinder接口类中定义(frameworks\base\include \utils\Binder.h),并在BpBinder类中实现(frameworks\base\include\utils \BpB... 阅220 转0 评0 公众公开 11-11-03 17:40 |
stagefright与opencore对比。1引言Android froyo版本多媒体引擎做了变动,新添加了stagefright框架,并且默认情况android选择stagefright,弃用之前的opencore,仅仅对opencore中的omx-component部分做了引用。上图可知,stagefright是在MediaPlayerService这一层加入的,和opencore是并列的,在选用opencore还是stagefright的代码切换上也非常... 阅40 转1 评0 公众公开 11-11-03 13:34 |
StageFright框架流程解读1、 StageFright介绍 Android froyo版本多媒体引擎做了变动,新添加了stagefright框架,并且默认情况android选择stagefright,并没有完全抛弃opencore,主要是做了一个OMX层,仅仅是对 opencore的omx-component部分做了引用。视频解码器解码后通过mVideoSource->read读取一帧帧的数据,放到mVideoBuffer中,最... 阅531 转3 评0 公众公开 11-11-03 09:26 |
BINDER_WRITE_READ是最重要的ioctl,它使用一个数据结构binder_write_read定义读写的数据。1.3 binder的库的部分 binder相关的文件作为Android的uitls库的一部分,这个库编译后的名称为libutils.so,是Android系统中的一个公共库。在客户端中,从ISeriviceManager中获得一个ABC的接口,客户端调用这个接口,实际上是在调用BpABC,而BpABC又... 阅6 转自xrzs 公众公开 11-11-02 18:07 |
在一个简单的构造函数之后,就是这些接口函数的实现。看其中的红色字体部分,通过create()函数调用会创建一个 IMediaPlayer接口类的子类的对象,这个对象其实是MediaPlayerService::Client类(可以看一下 MediaPlayerService的定义)的对象实例,而MediaPlayerService::Client类是继承自 BnMediaPlayer类的,与BnMediaPlayerService类类似,BnM... 阅18 转自shaobin06... 公众公开 11-11-02 18:07 |
(1) OMX_Init.OMX_CALLBACKTYPE OMXNodeInstance::kCallbacks ={ &OnEvent, <--------------- omx_message::EVENT &OnEmptyBufferDone, <----- omx_message::EMPTY_BUFFER_DONE &OnFillBufferDone <------- omx_message::FILL_BUFFER_DONE}{ MEDIA_MIMETYPE_VIDEO_MPEG4, "OMX.qcom.video.decoder.mpeg4" },... 阅6 转自eahello 公众公开 11-11-02 17:17 |
strcasecmp(mime, MEDIA_MIMETYPE_AUDIO_MPEG)) { return new MP3Extractor(source, meta);strcasecmp(mime, MEDIA_MIMETYPE_CONTAINER_WAV)) { return new WAVExtractor(source);strcasecmp(mime, MEDIA_MIMETYPE_CONTAINER_MPEG2TS)) { return new MPEG2TSExtractor(source);2、由DataSource生成MediaExtractor。3、通过调用setVideoSourc... 阅14 转自开花结果 公众公开 11-11-02 17:16 |