android multimedia框架总结,Android Multimedia框架总结(二十二)MediaCodec中C++中创建到start过程及状态变换.doc...

AndroidMultimedia框架总结(二十二)MediaCodec中C中创建到start过程及状态变换

Android Multimedia框架总结(二十二)MediaCodec中C++中创建到start过程及状态变换

从今天开始,将深入源码中看看其c++过程,看下Agenda如下:

mediacodec.h

CreateByType

initMediaCodec中BufferInfo内部类:

configure过程

start

BufferInfo在MediaCodec.h中对应是一个结构体

//create by 逆流的鱼yuiop on 2016/12/11

//blog地址:/hejjunlin

struct BufferInfo {

uint32_t mBufferID;

sp mData;

sp mEncryptedData;

sp mSharedEncryptedBuffer;

sp mNotify;

sp mFormat;

bool mOwnedByClient;

};

mediacodec.h的方法的声明,位于\frameworks\av\include\media\stagefright下

//create by 逆流的鱼yuiop on 2016/12/11

//blog地址:/hejjunlin

namespace android {

struct ABuffer;

struct AMessage;

struct AReplyToken;

struct AString;

struct CodecBase;

struct IBatteryStats;

struct ICrypto;

class IMemory;

struct MemoryDealer;

class IResourceManagerClient;

class IResourceManagerService;

struct PersistentSurface;

struct SoftwareRenderer;

struct Surface;

struct MediaCodec : public AHandler {

enum ConfigureFlags {

CONFIGURE_FLAG_ENCODE = 1,

};

enum BufferFlags {

BUFFER_FLAG_SYNCFRAME = 1,

BUFFER_FLAG_CODECCONFIG = 2,

BUFFER_FLAG_EOS = 4,

};

enum {

CB_INPUT_AVAILABLE = 1,

CB_OUTPUT_AVAILABLE = 2,

CB_ERROR = 3,

CB_OUTPUT_FORMAT_CHANGED = 4,

CB_RESOURCE_RECLAIMED = 5,

};

static const pid_t kNoPid = -1;

static sp CreateByType(

const sp &looper, const char *mime, bool encoder, status_t *err = NULL,

pid_t pid = kNoPid);

static sp CreateByComponentName(

const sp &looper, const char *name, status_t *err = NULL,

pid_t pid = kNoPid);

static sp CreatePersistentInputSurface();

status_t configure(

const sp &format,

const sp &nativeWindow,

const sp &crypto,

uint32_t flags);

status_t setCallback(const sp

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值