Prepare(2)

函数PVPlayerEngine::DoSourceNodeTrackSelection(PVCommandId /*aCmdId*/, OsclAny* /*aCmdContext*/)

注意与上面的DoSinkNodeTrackSelection的异同

1)调用函数DoTrackSelection(true, false),参数的含义:oPopulatePlayableListOnly,oUsePreferenceList;将iSourcePresInfoList中有关源文件的数据传递到iPlayableList

函数PVPlayerEngine::DoTrackSelection

1)如果参数oPopulatePlayableListOnly为真,则将iSourcePresInfoList(包含当前文件信息)的内容传递到iPlayableList中,

2)循环iDatapathList,将其iTrackInfo清空,

3)如果DecNode已经构建,调用函数DoVerifyTrackInfo(iTrackSelectionList[i], curtrack, checkcodec)确认当前track的参数,如果函数返回成功,将当前track加到iPlayableList的成员量iTrackInfoVec中;

4)函数返回

这个函数有参数的真假有很大关系,整理时还要细看;

函数PVPlayerEngine::DoSinkDecCleanupSourcePrepare(PVCommandId aCmdId, OsclAny* aCmdContext)

           ——PVPlayerEngine::DoSourceNodePrepare(PVCommandId aCmdId, OsclAny* aCmdContext)

                 ——PVMFNodeInterfaceImpl::GetState()

                 ——PVMFNodeInterfaceImpl::Prepare(PVMFSessionId aSessionId,const OsclAny* aContext)

                        ——QueueCommandL(cmd)

完成Doprepare后会对SinkNode和DecNode分别查询可选接口,在对decnode的后期处理中调用函数PVPlayerEngine::HandleDecNodeQueryInterfaceOptional,会进入Datapath的prepare函数中DoDatapathPrepare(*(aNodeContext.iEngineDatapath), aNodeContext.iCmdId, aNodeContext.iCmdContext);

PVPlayerEngine::DoDatapathPrepare(PVPlayerEngineDatapath &aDatapath, PVCommandId aCmdId, OsclAny* aCmdContext)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值