PVAuthor开发指南

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

目 录

1 引言.... 4

2 架构概述.... 4

2.1 PVAuthor架构... 4

2.2 整体顺序图... 5

3 PVAuthor状态机.... 6

4 创建和打开会话.... 6

5 数据源.... 6

5.1 创建和增加数据源... 6

5.2 数据源配置... 7

6 文件格式组成.... 7

6.1 composer选择... 7

6.2 composer配置... 8

6.2.1 3GPP 和 MPEG4 composer. 8

6.2.2 AMR 和 AAC composer. 9

7 媒体音轨.... 9

7.1 增加媒体音轨... 9

7.2 编码器配置... 9

8 数据Sinks.. 9

9 通过扩展接口的附加功能.... 9

9.1 最大文件大小、持续时间和进度报告... 10

10 初始化和启动会话.... 11

11 暂停和恢复会话.... 12

12 停止会话.... 12

13 复位和关闭会话.... 12

14 功能查询和配置设置.... 13

14.1 PVAuthor引擎关键字符串... 13

14.2 节点级关键字符串... 13

15 PVAuthor引擎中的错误处理.... 14


1 引言

本文档为开发者使用PVAuthor 引擎 APIs指南。PVAuthor引擎客户端可以是一个应用程序或用于映射PVAuthor引擎接口到不同框架适配层或应用程序使用API层。本文档描述了 怎样使用PVAuthor引擎接口及其创建、配置和控制多媒体authoring 会话。

PVAuthor 引擎作为PV多媒体框架(PVMF)的一部分,为客户端提供了多媒体录制功能。具有捕获音频、视频和文字媒体数据,将媒体数据编码成压缩格式,并将编码媒 体数据多路输出到不同的文件格式中。输入媒体数据可以是实时源,像摄像机和话筒,或其它情况,如未编码的媒体数据文件。然后将输入数据编码成客户端选定的 数据格式,其次从多路媒体数据中输出选定的文件格式。客户端把多路媒体数据写到数据输出上。

2 架构概述

2.1 PVAuthor 架构

为了接收命令结束、状态信息和错误信息,客户端通过PVAutthorEngineInterface和执行PVAuthor引擎观看接口相互影响 来控制PVAuthor引擎。 接口需要客户端为记录会话提供媒体数据源和sinks。数据源、sinks数目和类型的多样性取决于记录会话的特性。这些媒体源、sinks应该执行 PVMFNodeInterface,允许PVAuthor引擎用统一的方法控制它们。通过PVAuthorEngineInterface执行客户端记 录会话的控制。图1显示了PVAuthor引擎、客户端及其它目标之间的关系。图2显示了客户端操作类及其表示的属性列表。注意本文档在后面的顺序图中会 涉及到这些属性列表。

clip_image002

图 1 PVAuthor的类图

clip_image003

图2客户端操作及其属性

2.2 整体顺序图

在本节中,图3显示的是API整体顺序调用设计和控制记录会话。在本文档的以下章节中会详细描述APIs的用法。

clip_image005

图3总体顺序图

clip_image007

图4总体顺序图续

3 PVAuthor 状态机

PVAuthor引擎有六个状态:空闲、打开、初始化、记录、暂停和错误。为了从一个状态到另一个状态的转变,用户需要调用PVAuthorEngineInterface会话控制APIs。图5为状态转变图。

clip_image009

图5  PVAuthor 状态转变图

4 创建和打开会话

为了创建一个记录会话,客户端首先创建一个PVAuthor引擎对象。这步通过PVAuthorEngineFactory类中Create()方 法来完成,将创建一个没有激活的记录会话PVAuthor引擎。为了打开一个会话,客户端需要调用PVAuthor引擎对象的Open()方法。图6显示 了调用创建和打开一个记录会话的方法顺序。

clip_image010

图6创建和打开一个记录会话

5 数据源

5.1 创建和增加数据源

像上面章节提到的,客户端PVAuthor引擎需要创建媒体数据源对象,在编写会话中通过捕获源数据的AddDataSource()方法提供。媒 体数据源对象是PVMF 节点,即围绕基本的驱动程序捕捉音频、视频和文本数据源。通常的办法是用媒体I/O接口和PvmfMediaInputNode集成数据源数据到 PVAuthor引擎。请参考有关媒体I/O开发指南里的媒体I/O接口。图7显示了创建媒体数据源和提供它们给PVAuthor引擎的顺序。

clip_image011

图7创建媒体源并增加到PVAuthor引擎

5.2 数据源配置

除了创建数据源对象并增加它们到PVAuthor引擎外,客户端的任务还有配置数据源去捕捉需要的格式或属性源数据。选择有效配置取决于数据源节点执行和基本捕获设备的能力。请参考文档里数据源节点和有效的捕获设备部分。

6 文件格式组成

下一步设置记录会话为会话选择一个文件格式composer。PVMF框架通过PVAuthor引擎有效的提供多路编码媒体数据和格式化多路数据到期望的文件格式。客户端的任务是选择composer类型,并通过PVAuthor引擎提供的配置对象配置composer。

6.1 composer 选择

PVAuthor引擎对象调用SelectComposer()方法完成composer选择。客户端将使用指定Mime类型composer,且 指针指向PVAuthor引擎提供的配置对象。另外,如果此类信息提供给客户端,客户端可以指定UUID组成代替Mime类型。当方法异步完成,一个为选 定composer不明确标志会返回给客户端的响应数据。客户端必须存储这个不明确的标志,必要时用它去标识PVAuthor引擎API调用选定的 composer。图8显示了选择一个composer调用方法的顺序。

clip_image013

图8 composer选择

6.2 composer 配置

composer配置通过author引擎从SelectComposer方法调用composer配置对象返回完成。配置接口实现的不同对象取决 于composer的选择。客户端能检查配置对象调用配置对象的queryInterface方法对接口的支持。除非指定其它配置接口,客户端在 SelectComposer完成之后调用配置方法。

6.2.1 3GPP  和 MPEG4 composer

如果客户端选择了3GPP或者MPEG4文件格式composer,返回配置对象实现PVMp4FFCNClipConfigInterface接 口。客户端需要调用SetOutputFileName方法为authoring会话设置输出文件名。此外,如果客户端需要一个I-Motion格式文 件,也要调用SetAuthoringMode方法。请参考在不同authoring模式下的author接口文档。下图显示了上面提到的调用顺序配置环 境。

clip_image015

图 9 文件名和authoring模式配置

PVMp4FFCNClipConfigInterface也允许客户端增加额外的元数据信息到输出文件。以下图来说明增加元数据时调用顺序。请注意增加元数据是可选的,且数据增加与否不影响输出文件的有效性。

clip_image016

图10增加元数据字符串

目前,通过PVMp4FFCNClipConfigInterface支持下面的元数据。

a. 标题

b. 作者

c. 版权

d. 类型

e. 等级

f. 创建日期

g. 艺术家

h. 流派

i. 分类

j. 关键字

k. 地理信息.

6.2.2 AMR  和 AAC composer

当客户端选择一个AMR 或 AAC文件格式composer时,配置对象应该实现PvmfFileOutputNodeConfigInterface接口。客户端需要调用 SetOutputFileName方法设置authoring会话输出文件名。请参阅图9的序列图。

7 媒体音轨

媒体文件,无论其格式,应至少有一个多媒体音轨。因此,为了构成一个有效的输出文件,客户端至少增加一个媒体音轨到文件格式composer。媒体 音轨支持的最大数目和不同类型取决于选定的文件格式composer。为了创建一个多路媒体音轨文件,例如带H263视频和字幕的AMR音频音轨,客户端 需要为每路音轨调用AddMediaTrack。

7.1 增加媒体音轨

通过调用AddMediaTrack方法完成增加媒体音轨。客户端需要提供指定的输入PVMF节点,此节点为媒体音轨提供源数据,MIME类型编码 器用于编码源数据,增加文件格式composer里的媒体音轨。不明确的数据在SelectComposer需要CommandCompleted回调返 回时确定文件格式composer。另外,如果此类信息提供给客户端,客户端可以指定Uuid编码器代替Mime类型。客户端也必须指定 PVInterface指针指向保存选定编码器配置对象实例的指针。图11显示了增加一个媒体音轨调用顺序。

clip_image017

图11增加媒体音轨

7.2 编码器配置

编码器配置通过PVAuthor引擎中AddMediaTrack调用配置接口对象返回值实现 。不同对象的配置接口实现取决于选定的编码器。如果选定的编码器没有配置接口,将此指针设为NULL。如果输入节点提供编码源数据,PVAuthor引擎 的媒体音轨没有编码器选择,则配置对象也置为NULL。客户端能检查配置对象时配置对象调用queryInterface方法所支持的接口。除非有另外的 配置接口,客户端在AddMediaTrack调用完成后可以调用配置方法。

当客户端选择一个H263, MPEG4或AVC视频编码器时,配置对象应实现PVMp4H263EncExtensionInterface接口。请参考PVAuthor引擎接口文档有效选择接口部分。

8 数据Sinks

目前,PVAuthor仅支持3GPP/MPEG4, AMR 和 AAC文件格式composer节点.这些节点已经集成到文件IO,不需要客户端为PVAuthor引擎为它的输出数据而增加数据sink。客户端需要通过配置选定composer的接口设置输出文件名。

将来,文件格式支持无集成文件IO的节点,客户端需要调用AddDataSink方法指定特定数据输出节点,特定的文件格式composer必须写到输出上。

9 通过扩展接口的附加功能

除了功能和配置能有效的从PVAuthor引擎接口和Author引擎提供的配置对象获得外,附加功能也能有效的通过QueryUUID 和 QueryInterface方法得到。当这些方法有效时,允许PVAuthor引擎扩展和展现新功能给客户端。客户端能调用QueryUUID查询 Mime类型指定的Uuid特定功能。使用Uuid,客户端能调用QueryInterface得到一个接口对象使用该功能。图12显示扩展接口调用查询 的顺序。

clip_image019

图12扩展接口查询

9.1 最大文件大小、持续时间和进度报告

PVAuthor引擎有个功能是设置输出文件的最大值或输出文件最大的时间持续值。如果文件大小和持续时间的最大值设定, 当authoring 输出文件时,PVAuthor引擎将检查这些设置,并当值达到了指定的最大大小或者持续值 时,自动停止authoring会话。PVAuthor引擎配置周期性提供进度报告给客户端。以文件大小形式写入这些进度报告或当前输出文件持续时间。这 些功能通过PvmfComposerSizeAndDurationInterface扩展接口实现。为了使用这些功能,客户端需要首先查询扩展接口实 例,然后通过提供的接口配置PVAuthor引擎。图13显示了这些功能的顺序图。

clip_image020

图13最大文件大小、持续时间和进度报告配置

在authoring会话开始后,如果进度报告使能,PVAuthorEngine将发送信息事件给特定频率 PVInformationalEventObserver会话的客户端。如果最大文件大小或持续功能使能,当文件大小或持续值到达指定的最大值时,停止 会话并完成输出文件的写入,PVAuthorEngine将发送一个信息给客户端。图14显示如果最大文件值 、持续时间和进度报告功能使能,信息将发送到客户端。

clip_image022

图14进度报告、最大文件和持续时间信息化

10 初始化和启动会话

选择文件格式composer、增加所有的媒体音轨和配置所有的组件及编码器,设置会话之后,客户端初始化并开始authoring会话。一旦初始 化,其它的会话设置authoring会话的环境和配置,除非PVAuthor引擎初始化或启动后特别指定的设置要修改。另外,为了修改设置和配置,客户 端需要复位authoring会话和重启会话配置进度。PVAuthor引擎为会话分配资源,当初始化时,连接到数据源采集设备。PVAuthor引擎启 动后,输入数据从不同的采集设备编码为要求的数据格式,格式化成要求的文件格式并写到文件里。图15显示初始化和开始authoring会话调用顺序。

clip_image023

图15初始化和启动authoring 会话

11 暂停和恢复会话

Authoring会话启动后,如果应用程序用户选择暂停或新的调用任务产生,客户端会暂停会话。当PVAuthor引擎处于暂停状态时,它将不会 从采集设备处理任何新的输入数据。然而,在PVAuthor引擎暂停以前捕获到缓冲输入数据,PVAuthor引擎会继续处理数据并写入文件,直到缓冲输 入为空。客户端能在会话成功暂停后任何时候恢复Authoring会话。恢复完成后,PVAuthor引擎将从采集设备恢复处理输入数据。图16显示了 Authoring会话调用暂停和恢复顺序图。

clip_image024

图16暂停和恢复authoring 会话

12 停止会话

当会话启动或处于暂停状态时,调用停止方法,客户端会停止authoring会话。如果采集和PVAuthor引擎数据通道缓冲里的源数据未编码, 默认行为是编码并增加它们到输出文件,因此所有采集到的媒体在会话停止以前会写入到输出文件。客户端收到停止调用前,这个行为会产生一个延时,取决于缓冲 数量和设备电源。图17显示了authoring会话调用停止顺序。

clip_image025

图17停止authoring会话

13 复位和关闭会话

当PVAuthor引擎处于初始化、启动或暂停状态时,复位命令使PVAuthor引擎处于打开状态。如果调用SelectComposer或 AddMediaTrack 且PVAuthor引擎返回composer或媒体音轨的配置对象,客户端需要在复位调用前在配置对象上调用 removeRef 。如果PVAuthor引擎处于启动或暂停状态,它将首先停止authoring 会话。然后会话复位,并取消选定的会话composer和媒体音轨。然而,对于PVAuthor引擎,增加的数据源和sink节点仍有效。复位完成 后,PVAuthor引擎返回到打开状态,客户端再一次调用SelectComposer 和AddMediaTrack设置会话。

为了关闭会话,客户端应该调用RemoveDataSource删除所有以前增加到PVAuthor引擎的数据源,然后调用关闭函数关闭会话。图18显示了复位和关闭会话的调用顺序。

clip_image026

图18复位和关闭authoring会话

14 功能查询和配置设置

PVAuthor 引擎采用PVMF 功能和配置设置接口 允许应用程序访问和修改引擎且节点设置不显示在author 接口上。请求UUID与接口关联的扩展接口(PvmiCapabilityAndConfig)通过播放API、QueryInterface()显示。 利用返回的接口指针,应用程序能查询、核实和配置设置引擎和节点等级。在节点上,节点所使用的引擎必须支持功能和配置接口,以及节点设置可以访问应用程 序。

功能和配置接口使用关键字符串PacketVideo扩展的MIME 字符串(PvXms)格式来指定感兴趣的设置。PvXms扩展了标准MIME字符串格式,允许附加级别的带斜杠分离的子类字符串。利用关键字符串增加了分 析的复杂性,而允许灵活和可扩展的设置,在增加、删除或修改设置时,不用大大修改代码。除了指定的感兴趣的设置,关键字符串提供了有价值的键值对信息。

在关键字符串里的“type”参数告诉KVP使用者如果“type=value”,是否有一个有效值。在关键字符串里的“type”参数告诉KVP使用者什么类型的值是合适的联合成员可以在KVP中访问。

14.1PVAuthor 引擎关键字符串

在PVAuthor引擎中所有的关键字符串以“x-pvmf/author”开头。

14.2节点级关键字符串

节点级关键字符串在PVAuthor引擎使用时有效取决于当时PVAuthor引擎使用PVMF节点和特殊节点关键字符串的支持。对于节点级关键字 符串PVAuthor引擎扮演一个路由通往任何一个有适当请求的节点。当前,PVAuthor引擎完成一个核心的作用,从关键字串到特定节点的映射,而在 将来,pvPlayer引擎和节点将决定在运行时使用注册机制完成映射。

当前,在PVAuthor引擎中使用关键字符串映射到节点,如下所示。

关键子字符串

节点类型

x-pvmf/video/render

视频编码节点

x-pvmf/audio/render

音频编码节点

fileio/

Composer节点

x-pvmf/file/output

文件输出节点

x-pvmf/media-io

媒体输入节点

x-pvmf/avc/encoder

AVC 编码

PVMF视频和音频编码节点关键字符串列表如下。当PVMF视频编码用于编码yuv bitstreams到mp4或3gp时,关键字符串允许设置与M4v, H.263 和 H.264视频编码成查询和修改一致。Amr编码器用关键字符串编码成pcm数据到mp4/3gp 文件。

Key Strings With Value Type

Description

x-pvmf/video/render/output_width;valtype=uint32

设置输出文件帧宽度

x-pvmf/video/render/output_height;valtype=uint32

设置输出文件帧高度

x-pvmf/audio/render/sampling_rate;valtype=uint32

设置音频流采样率

x-pvmf/audio/render/channels;valtype=uint32

设置视频流通道数

x-pvmf/avc/encoder/encoding_mode;valtype=uint32

设置编码模式

MP4 Composer节点关键字符串列表如下所示。

Key Strings With Value Type

Description

fileio/pv-cache-size

设置文件IO高速缓存大小. 此设置依赖于osclconfig_io.h 文件中PV文件缓存设置

fileio/presentation-timescale

为整个mpeg4显示设置时间量程。默认值为1000

15 PVAuthor 引擎中的错误处理

PVAuthor 引擎对映射命令来自应用程序的请求或高等级多步骤和在PVAuthor引擎的控制下的一套节点/组件命令是很重要的。当处理一个特别应用请求出错或外部异 步请求(例如:在已经启动后录音过程中发生错误)发生时可能产生错误。通过下面方法节点/组件附在PVAuthor引擎报告中:

1. HandleNodeErrorEvent 错误异步发生。

2. 处理一个特定的请求时NodeUtilCommandCompleted 错误发生。在PVAuthor 引擎处理一个应用程序请求时任何错误发生,PVAuthor将等待基本的节点/组件任何待定的命令,然后返回错误信息作为CommandComplete 状态的一部分。如果错误发生在外部任何请求或应用程序命令时,调用HandleErrorEvent方法。收集的想法是在处理一个请求中,发生异步错误并 在CommandComplete中送回,避免报告多次同样的错误。当它报告这些错误和应用程序调用复位时,PVAuthor 引擎传送错误状态,如13节所述。图 19和20 描述的是错误处理API顺序和流程图。

clip_image027

图19扩展错误信息

clip_image028

图20 PVAuthor错误处理流程图


http://blog.youkuaiyun.com/mtv0312/archive/2011/05/10/6408936.aspx

Android的MediaRecorder架构介绍 这两个类需要通过上层的接口设置,其中设置的Surface在下层的处理中也会被设置到ICamera的接口中,ICamera则作为这种meidarecorder视频输入的设备,在meidarecorder底层的实现中,通过这个Icamera获取视频流。MediaRecorder部分的头文件在frameworks/base/include/media/目录中,这个目录是和libmedia.so库源文件的目录frameworks/base/media/libmedia/相对应的。 阅读详情

相关推荐

单细胞双胞过滤-scrublet安装

pip install scrublet ----use-pep517有如下报错,分析可知安装annoy时不会自动更新gcc的版本,centos默认是4.8.5。pip install scrublet ----use-pep517 仍然报错,但似乎不影响使用,提示Successfully installed。打开终端,进入Python环境,输入以下代码,查看Python安装位置。暂时还没尝试是否存在问题,如果存在问题,降级scrublet版本。包的开发依赖的是比较低版本的numpy,会用到。

hzau_t的博客 792

android之多媒体协议,全方位解读Android多媒体框架源码

Android中对于图形界面以及多媒体的相关操作比较容易实现。而且对于大多数手机用户来说,他们主要也就是根据这些方面的功能来对系统那个进行修改。我们可以通过本文介绍的Android多媒体框架的源码解读,来具体分析一下这方面的基本知识。Android多媒体框架的代码在以下目录中:external/opencore/。这个目录是Android多媒体框架的根目录,其中包含的子目录如下所示:* andro...

weixin_33068055的博客 390

ESP32系列之LVGL(四):输入设备(外部按键)对接

本文详细介绍了如何在ESP32上使用LVGL库对接外部按键作为输入设备,包括硬件连接、驱动层实现和LVGL输入设备移植。通过具体代码示例和实战案例,帮助开发者快速实现按键控制UI界面,解决常见问题如按键无反应和控件跳转不正常。

weixin_30907935的博客 241

android多媒体框架综述

<br />Android多媒体框架的代码在以下目录中:external/opencore/。这个目录是Android多媒体框架的根目录,其中包含的子目录如下所示:<br />* android:这里面是一个上层的库,它基于PVPlayer和PVAuthor的SDK实现了一个为Android使用的Player和Author。<br />* baselibs:包含数据结构和线程安全等内容的底层库<br />* codecs_v2:这是一个内容较多的库,主要包含编解码的实现,以及一个OpenMAX的实现<br

移动开发 623

利用MobaXterm解密Session密码的实战指南

本文提供了利用MobaXterm解密Session密码的详细实战指南,帮助运维工程师和开发者在忘记密码时找回加密存储的远程连接信息。通过Python脚本和注册表操作,逐步解析MobaXterm的AES加密机制,实现密码解密,并分享安全建议和常见问题解决方案。

weixin_26759093的博客 232

世界坐标系/相机坐标系/图像坐标系 转换

目录一、各坐标系简要介绍二、坐标系转换2.1 世界坐标系转为相机坐标系2.2 相机坐标系转为物理图像坐标系2.3 物理图像坐标系转为图像坐标系2.4 总结2.5 为什么要使用齐次坐标参考文献 一、各坐标系简要介绍 首先介绍数字图像处理领域中的图像坐标系,如上图左图所示,坐标系O_0为图像坐标系,其原点是在图像的左上角,每一个像素通过其所在位置的列数和行数索引 (u,v) 来表示。 另外需要建立图像坐标与物理单位的关系,而后才能将目标的真实世界坐标转换为图像坐标。即建立以物理单位表示的物理图像坐标系(有些文

流觞时光 1万+

使用sparksql开发pv,uv,二跳率

uv:user views,count(distinct guid) pv:page views,count(url) 二跳率:count(distinct case when pv>=2 then sessionid else null end) / count(distinct sessionid) import org.apache.spark.SparkConf import org

3010

Autojs实战教程---番茄免费小说Apk文件和源码

邀请码:782383363 字节跳到的App,推荐给大家,还是值得用一用的。不废话直接代码。 代码是带UI的复制后可以直接使用。 "ui"; //#region UI var rootUrl = "http://114.115.220.1:91";//各位大神小弟自己的服务器别黑谢谢 var storaySign = "FanqieXiaoShuo0412326@163.com"; var woolStorage = storages.create(storaySign);//创建本地存储 var

zy0412326的专栏 2万+

OpenCore框架概述(一)

OpenCore是一个多媒体的框架,从宏观上来看,它主要包含了两大方面的内容:PVPlayer:提供媒体播放器的功能,完成各种音频(Audio)、视频(Video)流的回放(Playback)功能。PVAuthor:提供媒体流记录的功能,完成各种音频(Audio)、视频(Video)流的捕获(Recording)功能PVPlayer和PVAuthor以SDK的形式提供给开发者,可以在这个SDK之上

Android进阶三部曲 - 刘望舒 4220

YOLOv11【第一章:零基础入门篇·第1节】YOLOv11核心架构深度解析与环境配置,一文搞定!

🏆 本文收录于专栏 《YOLOv11实战:从入门到深度优化》。 本专栏围绕 YOLOv11 的改进、训练、部署与工程优化 展开,系统梳理并复现当前主流的 YOLOv11 实战案例与优化方案,内容目前已覆盖 分类、检测、分割、追踪、关键点、OBB 检测 等多个方向。

**My Coding Family** 5508

在 ABAP 中把变量一次写对:深入理解 FINAL 内联声明与不可变变量

摘要:ABAP中的FINAL声明操作符用于定义不可变变量,强调"当前上下文中的唯一写位置",能有效防止变量被意外修改,提升代码健壮性和可读性。官方建议优先在单次赋值的场景使用FINAL替代DATA。其核心规则包括:1)写位置唯一但可多次执行(如循环内);2)不创建块级作用域;3)对引用变量仅约束引用本身而非对象内容。典型适用场景包括:结果值只读、输入快照保存和中间结果保护。例外情况如游标变量不适用,因需多次写操作。正确使用FINAL可显著降低代码维护风险。

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 1044

学习使用多媒体

多媒体开发  Open Core是Android多媒体开发框架的核心。所有Android平台的音频、视频的采集以及播放都是通过它来实现的。它也被称为PV(Packet Video).  Open Core是一个多媒体框架,从宏观上看主要包含两大方面的内容:   PVPlayer :提供媒体播放器的功能,完成各种音频(Audio)、视频(Video)流的回放(Playback)功能。   P

jxmumu89的专栏 978

SpringBoot 系列教程(十二):给大家推荐20个SpringBoot开源项目,私活必备

基于 SpringBoot2.x + Shiro 实现了用户管理、个人微信、支付宝支付,内置扫码支付、后台回调、订单查询、限流等一系列功能

Thinkingcao的专栏 2839

Android最全Android的MediaRecorder架构介绍(1),2024年最新面试阿里国际站运营一般会问什么

代码真的是重质不重量,质量高的代码,是当前代码界提倡的,当然写出高质量的代码肯定需要一个相当高的专业素养,这需要在日常的代码书写中逐渐去吸收掌握,谁不是每天都在学习呀,目的还不是为了一个,为实现某个功能写出高质量的代码。所以,长征路还长,大家还是好好地做个务实的程序员吧。最后,小编这里有一系列Android提升学习资料,有兴趣的小伙伴们可以来看下哦~网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。需要这份系统化学习资料的朋友,可以戳这里获取。

2401_84558314的博客 940

RU DOS版、EFI版32bit/64bit BIOS常用工具

DOS版、EFI版的RU工具,可用来查看IO、MEM、PCI、SMBIOS等资源。亲测在EFI SHELL下可用。

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

OpenCores学习(0) --概述

1、整个Android的多媒体框架OpenCore  2、Player和Author的详细介绍  2、OpenCore和Android其他部分的集成  第一部分 OpenCore概述:  OpenCore的另外一个常用的称呼是PacketVideo,它是Android的多媒体核心。事实上,PacketVideo是一家公司的名称,而OpenCore是这套多

menuconfig的专栏 4227

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

Android多媒体框架packetVideo介绍

<br />第一部分 OpenCore概述<br />(hanchao3c Android开发者论坛原创,转载请注明)<br />     OpenCore的另外一个常用的称呼是PacketVideo,它是Android的多媒体核心。事实上,PacketVideo是一家公司的名称,而OpenCore是这套多媒体框架的软件层的名称。在Android的开发者中间,二者的含义基本相同。对比Android的其它程序库,OpenCore的代码非常庞大,它是一个基于C++的实现,定义了全功能的操作系统移植层,各种基本的

tyl_1120的专栏 681

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

音乐播放器、视频播放器、录音、照相、闹钟、铃声设计中的各种方法以及例子总结

多媒体开发  Open Core是Android多媒体开发框架的核心。所有Android平台的音频、视频的采集以及播放都是通过它来实现的。它也被称为PV(Packet Video).  Open Core是一个多媒体框架,从宏观上看主要包含两大方面的内容:   PVPlayer :提供媒体播放器的功能,完成各种音频(Audio)、视频(Video)流的回放(Playback)功能。   P

2142

Android多媒体学习日记(一)

知识归纳:              多媒体框架是由第三方PacketVideo提供的OpenCore实现的,它支持播放和录音许多的音频和视频格式,以及静态图像文件,包括MPEG4、MP3、H.264、AMR、AAC、AMR、JPG、PNG。              多媒体核心OpenCore,它的另外的一个称呼是PacketVideo,是按Android的多媒体核心,基于C++实现的,定义

chonbj的专栏 986

Android的多媒体框架OpenCore介绍

【内容导航】 ·                                 第1页:第一部分 OpenCore概述 ·                                 第2页:第二部分 OpenCore的代码结构 ·                                 第3页:第三部分 OpenCore OSCL简介 ·

qyjandroid的专栏 789

Android的多媒体框架OpenCore(PacketVideo)介绍

第一部分 OpenCore概述:  OpenCore的另外一个常用的称呼是PacketVideo,它是Android的多媒体核心。事实上,PacketVideo是一家公司的名称,而OpenCore是这套多媒体框架的软件层的名称。在Android的开发者中间,二者的含义基本相同。对比Android的其它程序库,OpenCore的代码非常庞大,它是一个基于C++的实现,定义了全功能的操作系

移动开发 1055

Android的多媒体框架OpenCore(PacketVideo)

分为几个阶段:      1、整个Android的多媒体框架OpenCore      2、Player和Author的详细介绍      2、OpenCore和Android其他部分的集成 第一部分 OpenCore概述      OpenCore的另外一个常用的称呼是PacketVideo,它是Android的多媒体核心。在防站的过程中,PacketVideo是一家公司的名称

chanzhu的博客 1111
上一篇: Android 本地代码中的LIKELY和UNLIKELY宏
下一篇: gnome-keyring的烦恼
eustoma
博客等级 码龄18年 79粉丝 54原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值