opencore Init的调用流程
来源:百度文库 编辑:神马文学网 时间:2024/04/26 08:26:40
PVWavFFParserNode, PVMediaIONode,因为wav文件中直接读取的就是PCM数据,不用进行解码。因此2个node足够完成整个的功能。
在 第二章:第三节:PVPlayerEngine的实现中,我简要描述了PVPlayerEngine实例在运行过程中要进行的动作。其中简要描述了datasource在整个的PVPlayerEngine的实例中作用的过程。这里将详细datasource所起的作用,如何进行初始化,如何辨认其中的track。
本文包含以下内容:实现一个sourcenode的最少接口,sourcenode在Player这些接口在一个playersession的生命周期中会如何被调用。以及给出一个简单的H264码流的播放的examplenode的代码。本文也将围绕如何实现这样一个简单的sourcenode来展开描述。
实现一个sourcenode必须实现的接口:PVMF_TRACK_SELECTION_INTERFACE_UUID,PVMF_DATA_SOURCE_INIT_INTERFACE_UUID, PvmfDataSourcePlaybackControlUuid。
也就是,你如果要实现自己的sourcenode类的话,必须继承以下类:
PVMFDataSourceInitializationExtensionInterface,
PVMFTrackSelectionExtensionInterface,
PvmfDataSourcePlaybackControlInterface,
否则,opencore会认为你的sourcenode类不是一个合法的sourcenode,无法完成PVPlayerEngine::Init或者PVPlayerEngine::Prepare动作。
在 第二章:第三节:PVPlayerEngine的实现一文中提到,对于PVPlayerEngine::AddDataSoure这个动作过程中有个FormatRecognizer的过程,用来识别文件媒体类型,为了简化描述,我们这里默认后缀名为264的文件就是我们要播放的码流。