OpenCore框架

PacketVideo :android的多媒体核心。一家公司的名称,而 OpenCore 是这套多媒体框架的软件层名称。

OpenCore :基于C++的实现。

包括两大方面:

PVPlayer:提供媒体播放器的功能,完成各种音频(Audio)、视频(Video)流的回放(Playback)功能

PVAuthor:提供媒体流记录的功能,完成各种音频(Audio)、视频(Video)流的以及静态图像捕获功能

OpenCore 在软件层分成几个层次:

OSCL:Operating System Compatibility Library (操作系统兼容库),包含了一些操作系统底层的操作,为了更好地在不同操作系统移植。包含了基

本数据类型、配置、字符串工具、IO、错误处理、线程等内容,类似一个基础的C++库。

PVMF:PacketVideo Multimedia Framework(PV多媒体框架),在框架内实现一个文件解析(parser)和组成(composer)、编解码的NODE,也可以继

承其通用的接口,在用户层实现一些NODE。

PVPlayer Engine:PVPlayer引擎。

PVAuthor Engine:PVAuthor引擎。

事实上,OpenCore中包含的内容非常多:

从播放的角度,

1,PVPlayer的输入的(Source)是文件或者网络媒体流,

2,输出(Sink)是音频视频的输出设备,

基本功能:

3,媒体流控制、

4,文件解析、

5,音频视频流的解码(Decode)等方面的内容。

除了从文件中播放媒体文件之外

6,与网络相关的RTSP流(Real Time Stream Protocol,实时流协议)。

在媒体流记录的方面,

7,PVAuthor的输入的(Source)是照相机、麦克风等设备,

8,输出(Sink)是各种文件,

包含了

9,流的同步、

10,音频视频流的编码(Encode)以及文件的写入等功能。

根目录下的Android.mk

include $(PV_TOP)/pvcommon/Android.mk

include $(PV_TOP)/pvplayer/Android.mk

include $(PV_TOP)/pvauthor/Android.mk

libopencoreauthor.so:OpenCore的Author库

libopencorecommon.so:OpenCore底层的公共库

libopencoredownloadreg.so :OpenCore下载注册库

libopencoredownload.so:OpenCore下载功能实现库

libopencoremp4reg.so:MP4注册库

libopencoremp4.so:MP4功能实现库

libopencorenet_support.so:OpenCore网络支持库

libopencoreplayer.so:OpenCore的Player库

libopencorertspreg.so:RTSP注册库

libopencorertsp.so:RTSP功能实现库

libopencorecommon.so是所有的库的依赖库,提供了公共的功能;

libopencoreplayer.so和libopencoreauthor.so是两个并立的库,分别用于回放和记录,而且这两个库是OpenCore对外的接口库;

libopencorenet_support.so提供网络支持的功能;

一些功能以插件(Plug-In)的方式放入Player中使用,每个功能使用两个库,一个实现具体功能,一个用于注册。

libopencorecommon.so是整个OpenCore的核心库,它的编译控制的文件的路径为pvcommon/Android.mk

include $(BUILD_SHARED_LIBRARY)

include $(PV_TOP)//oscl/oscl/osclbase/Android.mk

include $(PV_TOP)//oscl/oscl/osclerror/Android.mk

include $(PV_TOP)//oscl/oscl/osclmemory/Android.mk

include $(PV_TOP)//oscl/oscl/osclutil/Android.mk

include $(PV_TOP)//oscl/pvlogger/Android.mk

include $(PV_TOP)//oscl/oscl/osclproc/Android.mk

include $(PV_TOP)//oscl/oscl/osclio/Android.mk

include $(PV_TOP)//oscl/oscl/osclregcli/Android.mk

include $(PV_TOP)//oscl/oscl/osclregserv/Android.mk

include $(PV_TOP)//oscl/unit_test/Android.mk

include $(PV_TOP)//oscl/oscl/oscllib/Android.mk

include $(PV_TOP)//pvmi/pvmf/Android.mk

include $(PV_TOP)//baselibs/pv_mime_utils/Android.mk

include $(PV_TOP)//nodes/pvfileoutputnode/Android.mk

include $(PV_TOP)//baselibs/media_data_structures/Android.mk

include $(PV_TOP)//baselibs/threadsafe_callback_ao/Android.mk

include $(PV_TOP)//codecs_v2/utilities/colorconvert/Android.mk

include $(PV_TOP)//codecs_v2/audio/gsm_amr/amr_nb/common/Android.mk

include $(PV_TOP)//codecs_v2/video/avc_h264/common/Android.mk

libopencoreplayer.so是用于播放的功能库,它的编译控制的文件的路径为pvplayer/Android.mk

include $(BUILD_SHARED_LIBRARY)

include $(PV_TOP)//engines/player/Android.mk

include $(PV_TOP)//codecs_v2/audio/aac/dec/util/getactualaacconfig/Android.mk

include $(PV_TOP)//codecs_v2/video/avc_h264/dec/Android.mk

include $(PV_TOP)//codecs_v2/audio/aac/dec/Android.mk

include $(PV_TOP)//codecs_v2/audio/gsm_amr/amr_nb/dec/Android.mk

include $(PV_TOP)//codecs_v2/audio/gsm_amr/amr_wb/dec/Android.mk

include $(PV_TOP)//codecs_v2/audio/gsm_amr/common/dec/Android.mk

include $(PV_TOP)//codecs_v2/audio/mp3/dec/Android.mk

include $(PV_TOP)//codecs_v2/utilities/m4v_config_parser/Android.mk

include $(PV_TOP)//codecs_v2/utilities/pv_video_config_parser/Android.mk

include $(PV_TOP)//codecs_v2/omx/omx_common/Android.mk

include $(PV_TOP)//codecs_v2/omx/omx_queue/Android.mk

include $(PV_TOP)//codecs_v2/omx/omx_h264/Android.mk

include $(PV_TOP)//codecs_v2/omx/omx_aac/Android.mk

include $(PV_TOP)//codecs_v2/omx/omx_amr/Android.mk

include $(PV_TOP)//codecs_v2/omx/omx_mp3/Android.mk

include $(PV_TOP)//codecs_v2/omx/factories/omx_m4v_factory/Android.mk

include $(PV_TOP)//codecs_v2/omx/omx_proxy/Android.mk

include $(PV_TOP)//nodes/common/Android.mk

include $(PV_TOP)//pvmi/content_policy_manager/Android.mk

include $(PV_TOP)//pvmi/content_policy_manager/plugins/oma1/passthru/Android.mk

include $(PV_TOP)//pvmi/content_policy_manager/plugins/common/Android.mk

include $(PV_TOP)//pvmi/media_io/pvmiofileoutput/Android.mk

include $(PV_TOP)//fileformats/common/parser/Android.mk

include $(PV_TOP)//fileformats/id3parcom/Android.mk

include $(PV_TOP)//fileformats/rawgsmamr/parser/Android.mk

include $(PV_TOP)//fileformats/mp3/parser/Android.mk

include $(PV_TOP)//fileformats/mp4/parser/Android.mk

include $(PV_TOP)//fileformats/rawaac/parser/Android.mk

include $(PV_TOP)//fileformats/wav/parser/Android.mk

include $(PV_TOP)//nodes/pvaacffparsernode/Android.mk

include $(PV_TOP)//nodes/pvmp3ffparsernode/Android.mk

include $(PV_TOP)//nodes/pvamrffparsernode/Android.mk

include $(PV_TOP)//nodes/pvmediaoutputnode/Android.mk

include $(PV_TOP)//nodes/pvomxvideodecnode/Android.mk

include $(PV_TOP)//nodes/pvomxaudiodecnode/Android.mk

include $(PV_TOP)//nodes/pvwavffparsernode/Android.mk

include $(PV_TOP)//pvmi/recognizer/Android.mk

include $(PV_TOP)//pvmi/recognizer/plugins/pvamrffrecognizer/Android.mk

include $(PV_TOP)//pvmi/recognizer/plugins/pvmp3ffrecognizer/Android.mk

include $(PV_TOP)//pvmi/recognizer/plugins/pvwavffrecognizer/Android.mk

include $(PV_TOP)//engines/common/Android.mk

include $(PV_TOP)//engines/adapters/player/framemetadatautility/Android.mk

include $(PV_TOP)//protocols/rtp_payload_parser/util/Android.mk

include $(PV_TOP)//android/Android.mk

include $(PV_TOP)//android/drm/oma1/Android.mk

include $(PV_TOP)//tools_v2/build/modules/linux_rtsp/core/Android.mk

include $(PV_TOP)//tools_v2/build/modules/linux_rtsp/node_registry/Android.mk

include $(PV_TOP)//tools_v2/build/modules/linux_net_support/core/Android.mk

include $(PV_TOP)//tools_v2/build/modules/linux_download/core/Android.mk

include $(PV_TOP)//tools_v2/build/modules/linux_download/node_registry/Android.mk

include $(PV_TOP)//tools_v2/build/modules/linux_mp4/core/Android.mk

include $(PV_TOP)//tools_v2/build/modules/linux_mp4/node_registry/Android.mk

内容:

一些解码工具

文件的解析器(mp4)

解码工具对应的Node

player的引擎部分(engines/player/Android.mk)

为Android的player适配器(android/Android.mk)

识别工具(pvmi/recognizer)

编解码工具中的OpenMax部分(codecs_v2/omx)

对应几个插件Node的注册

libopencoreauthor.so是用于媒体流记录的功能库,它的编译控制的文件的路径为pvauthor/Android.mk

include $(BUILD_SHARED_LIBRARY)

include $(PV_TOP)//engines/author/Android.mk

include $(PV_TOP)//codecs_v2/video/m4v_h263/enc/Android.mk

include $(PV_TOP)//codecs_v2/audio/gsm_amr/amr_nb/enc/Android.mk

include $(PV_TOP)//codecs_v2/video/avc_h264/enc/Android.mk

include $(PV_TOP)//fileformats/mp4/composer/Android.mk

include $(PV_TOP)//nodes/pvamrencnode/Android.mk

include $(PV_TOP)//nodes/pvmp4ffcomposernode/Android.mk

include $(PV_TOP)//nodes/pvvideoencnode/Android.mk

include $(PV_TOP)//nodes/pvavcencnode/Android.mk

include $(PV_TOP)//nodes/pvmediainputnode/Android.mk

include $(PV_TOP)//android/author/Android.mk

一些编码工具(视频流H263、H264,音频流Amr)

文件的组成器(mp4)

编码工具对应的Node

表示媒体输入的Node(nodes/pvmediainputnode/Android.m)

author的引擎部分(engines/author/Android.mk)

为Android的author适配器(android/author/Android.mk)

OSCL,全称为Operating System Compatibility Library (操作系统兼容库),它包含了一些在不同操作系统中移植层的功能。

OpenMAX 是一个多媒体应用程序的框架标准,由NVIDIA公司和Khronos在2006年推出

时间: 2024-11-05 13:35:58

OpenCore框架的相关文章

Android相框 与 源代码结构

一. Android 相框 Android框架层级 : Android 自下 而 上 分为 4层; -- Linux内核层; -- 各种库 和 Android执行环境层; -- 应用框架层; -- 应用层; 1. Linux内核层 Android 的 Linux 内核层 组成 : Linux 内核 和 驱动程序; Linux内核 : Android 2.x 是基于 Linux 2.6 内核; 驱动程序 : -- Display Driver (显卡驱动) : Linux 的帧缓冲 驱动; --

openmax component类的继承关系

向OpenCORE里继承一个新的codec时,需要用到OpenMAX接口规范对该codec进行封装,即要定义一个用于封装的类(wrapper),实现OpenMAX规定的集中核心方法(omx core methods).若该codec是一个音频解码器,则该类继承OmxComponentAudio类:若是视频解码器,则继承OmxComponentVideo类.而OmxComponentAudio和OmxComponentVideo类都是继承了OmxComponentBase类:OmxComponen

android多媒体框架学习 详解 最新版本

一:多媒体框架概述   jellybean 的多媒体跟以前的版本,通过对比没啥变化,最大的变化是google终于舍得给multimedia建个独立的git了(framework/av),等你好久了!也体现了media 在整个android系统中的重要性!framework/av下都是些C/C++代码(libmedia,libmediaplayerservice,libstagefright),jni和 java api 还是保留在原来的位置,改革还不够彻底,但还是迈出了这一步,以后维护能更好的进

Android多媒体框架图

Android多媒体整体架构图 MediaPlayer框架图 Camera框架图 SoundRecorder框架图 VideoCamera框架图 OpenCore与Skia ALSA Audio框架图 Video Overlay框架图 Camera HAL演化图

opencore

OpenCore是Android的多媒体核心,它是一个基于C++的实现,定义了全功能的操作系统移植层,各种基本的功能均被封装成类的形式,各层次之间的接口多使用继承等方式. OpenCore是一个多媒体的框架,从宏观上来看,它主要包含了两大方面的内容: PVPlayer:提供媒体播放器的功能,完成各种音频(Audio).视频(Video)流的回放(Playback)功能 PVAuthor:提供媒体流记录的功能,完成各种音频(Audio).视频(Video)流的以及静态图像捕获功能 临时设施(ove

Android学习之系统框架

android的系统构架基于Linux内核 安卓系统的组成包括应用程序层.应用程序框架层.函数库与运行时.Linux内核. -应用程序层 应用程序层包括一系列系统核心程序,如Phone(电话).Browser(浏览器)应用.联系人.短信. -应用程序框架层 提供大量API,开发人员可以使用这些API框架来开发自己的应用程序,这样可以简化程序开发的架构设计. Activity Manager活动管理器,用来管理程序生命周期,并提供常用的导航退回功能 Window Manager窗口管理器,管理所有

Android Multimedia框架总结(四)MediaPlayer中从Java层到C++层类关系及prepare及之后其他过程

转载请把头部出处链接和尾部二维码一起转载,本文出自:http://blog.csdn.net/hejjunlin/article/details/52420803 前言:在上篇中,分析了MediaPlayer的从创建到setDataSource过程,尽管看了代码,但是没有从MediaPlayer生态上认识各类库之间依赖调用关系,在本篇中将作一个补充整体上的认识.看下今天的Agenda: MediaPlayer各个so库之间关系结构图 MediaPlayer各个具体类之间依赖关系图 prepare

andriod 框架

虽然园子里关于Android系统架构的文章已经很多了,但是作为自己学习Android的心路历程,记录下来是必要的,老鸟就速度飞过吧~ 如果说一个成功男人的背后会有一个默默支持的女人的话,那么一个优越稳定的平台背后必有一个成熟的系统架构所支撑着.那么,Android的系统架构是怎么样的呢?从下图我们可以从整体上有个大致的了解(图片来源互联网): 从上图中可以看出,Android系统架构为四层结构,从上层到下层分别是应用程序层.应用程序框架层.系统运行库层以及Linux内核层,分别介绍如下: 1)应

StageFright框架流程解读

1.    StageFright介绍     Android froyo版本号多媒体引擎做了变动,新加入了stagefright框架,而且默认情况android选择stagefright,并没有全然抛弃opencore,主要是做了一个OMX层,不过对 opencore的omx-component部分做了引用.stagefright是在MediaPlayerService这一层加入的,和opencore是并列的.Stagefright在 Android中是以shared library的形式存在