stagefright 播放流程
来源:互联网 发布:static的作用php 编辑:程序博客网 时间:2024/06/12 23:09
打开
setDataSource_l(uri)
{
mUri = uri;
}
准备
prepare_l()
{
onPrepareAsyncEvent();
}
onPrepareAsyncEvent()
{
DataSource dataSource = DataSource::CreateFromURI(mUri.string(), &mUriHeaders);
{
source = new FileSource(uri + 7);
}
extractor = MediaExtractor::Create(
dataSource, sniffedMIME.empty() ? NULL : sniffedMIME.c_str());
{
ret = new MPEG4Extractor(source);
}
source->sniff(&tmp, &confidence, &meta);
{
*mimeType = MEDIA_MIMETYPE_CONTAINER_MPEG4;
*confidence = 0.4f;
}
status_t err = setDataSource_l(extractor);
{
setVideoSource(extractor->getTrack(i));
{
mVideoTrack = source; MPEG4Source
}
getTrack();
{
return new MPEG4Source(
track->meta, mDataSource, track->timescale, track->sampleTable);
mDataSoruce=FileSource;
}
}
initVideoDecoder();
initAudioDecoder();
finishAsyncPrepare_l();
}
initVideoDecoder()
{
mVideoSource = OMXCodec::Create(
mClient.interface(), mVideoTrack->getFormat(),
false, // createEncoder
mVideoTrack,
NULL, flags, USE_SURFACE_ALLOC ? mNativeWindow : NULL);
{
sp<OMXCodec> codec = new OMXCodec(
omx, node, quirks, flags,
createEncoder, mime, componentName,
source, nativeWindow);
{
mOMX(omx);
mSource(source); mVideoTrack;
}
}
mVideoSource = codec;
mVideoSource ->start();è OMXCodec::start
}
OMXCodec::start()
{
mSource->start(params.get());=>MPEG4Source::start
{
mGroup = new MediaBufferGroup;
mGroup->add_buffer(new MediaBuffer(max_size));
mSrcBuffer = new uint8_t[max_size];
}
Init()
{
mOMX->sendCommand(mNode, OMX_CommandStateSet, OMX_StateIdle);
err = allocateBuffers();
}
}
播放
Playe_l
{
postVideoEvent_l();
onVideoEvent();
mVideoSource->read(&mVideoBuffer, &options);
}
OMXCodec::read()
{
Vector<BufferInfo> *buffers = &mPortBuffers[kPortIndexInput];
drainInputBuffer();
err = mSource->read(&srcBuffer, &options);
{
num_bytes_read = mDataSource->readAt(offset, mSrcBuffer, size);
}
}
- stagefright 播放流程
- [整理]Stagefright框架中视频播放流程
- Stagefright框架中视频播放流程
- Stagefright框架中视频播放流程
- Stagefright框架中视频播放流程
- Stagefright AwesomePlayer 播放流程的函数调用
- [StageFright] StageFright框架流程解读
- StageFright框架流程解读
- StageFright框架流程解读
- StageFright框架流程解读
- StageFright框架流程解读
- StageFright框架流程解读
- StageFright框架流程解读
- StageFright框架流程解读
- StageFright框架流程解读 .
- StageFright框架流程解读
- StageFright框架流程解读
- Stagefright的编码流程
- U-Boot移植FL2440--1--构建FL2440框架
- 解决Java程序的托盘图标在Windows任务栏重建后丢失的问题(使用SystemTray类创建托盘图标)
- 学习制作游戏概念图
- ramdisk
- 解析Linux中多线程编程并传递多个参数
- stagefright 播放流程
- GUI接口的制作-打开AVI文件
- Windows 7安装Eclipse 3.7搭建C/C++开发环境
- js事件汇总
- 如何将导入的java项目转换为dynamic web project
- 如何获得手机总内存和可用内存
- iOS设备使用重力感应
- 移植μcgui
- GBK数据库转换UTF8