Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
OpenCORE Multimedia
Framework Capabilities
OHA 2.07, rev 2
December 15, 2009
Abstract:
This document describes the capabilities of PacketVideo’s
OpenCORE multimedia framework on the Android Platform
1 Summary......................................................................................................................................................................5
2 OpenCORE Multimedia Framework Architecture........................................................................................................5
3 Container Formats.......................................................................................................................................................6
4 Network Protocols .......................................................................................................................................................7
4.1 Streaming...............................................................................................................................................................7
4.2 Progressive Download and Progressive Playback.....................................................................................................7
5 Codecs .........................................................................................................................................................................8
5.1 Video Decoders ......................................................................................................................................................9
5.2 Audio Decoders.....................................................................................................................................................11
5.3 Video/Audio Encoders ...........................................................................................................................................12
6 Engines......................................................................................................................................................................14
6.1 Author...................................................................................................................................................................14
6.2 2-Way...................................................................................................................................................................15
6.3 Frame and Metadata Utility (FMU)..........................................................................................................................15
6.4 PV Metadata Engine (PVME).................................................................................................................................15
7 Advanced Capabilities.................................................................................................................................................16
7.1 Trick Mode - local playback....................................................................................................................................16
7.2 Gapless Audio Playback (under Planning)..............................................................................................................16
8 Content Policy Manager.............................................................................................................................................17
...................................................................................................................................................................................18
...................................................................................................................................................................................18
Appendix 1 – Container Format Specifications.............................................................................................................19
Appendix 2 - Support for 3GPP TS 26.234 specifications..............................................................................................20
Appendix 3 - Support for 3GPP TS 26.234 Release 6 Annex A.1 specifications............................................................22
Appendix 4 – Support for 3GPP TS 26.234 Release 6 Annex A.2 specification.............................................................24
Appendix 5 – Decoder Specifications............................................................................................................................26
Appendix 6 – 2-way Specifications................................................................................................................................27
Appendix 7 – Feature level summary of elements supported by 2-way..........................................................................28
Feature Group 1: H.223..............................................................................................................................................28
Feature Group 1: H.245..............................................................................................................................................28
Feature Group 3: H.324/3G-324M...............................................................................................................................30
The above set of OpenCORE documents are available at the following Android Open Source Project location:
http://android.git.kernel.org/?p=platform/external/opencore.git;a=tree;f=doc;hb=HEAD
This document describes the capabilities of PacketVideo’s OpenCORE multimedia framework for the
Android platform.
The OpenCORE multimedia framework covers the following areas:
• Container Formats
• Network Protocols
• Codecs
• Engines
• Advanced Capabilities
• Content Policy Manager
This document is intended as a starting point for potential integrators of OpenCORE multimedia framework
on the Android platform. It covers high-level summary of features available in OpenCORE.
This document is NOT intended to be a developers guide or an integration guide. For further detailed
information regarding OpenCORE development and integration guides, please consult the OpenCORE
documents listed in the Reference section of this document.
Data Formats
Parser Composer Download
MPEG-4 MPEG-4 MPEG-4
Content Policy Manager 3GPP 3GPP 3GPP
3GPP2 AAC MP3
MP3 AMR AAC
Multimedia Engines AAC 2-way Streaming
AMR 3G324-M 3GPP
Player, Author, 2-Way, FMU, PVME H.223 Shoutcast
OpenCORE H.245
Data Formats
Video Codecs Audio Codecs
AVC H.263 Video Codecs Audio Codecs
MPEG-4 AAC
AMR (NB, WB)
Linux Interface HE-AAC
HE-AACV2
MP3
The OpenCORE multimedia framework has support for the following container formats:
Download Progressive
Timed Text
Local Playback
Progressive Playback
Container Format
Parser
Composer
Metadata tags
Reposition
Type
Mime type
audio/mp4
MPEG4 video/mp4 audio + video 1
audio/3gp
3GPP audio + video 2 3
video/3gp
audio/3gpp
3GPP2 2 4 audio + video 3
video/3gpp2
1
MPEG4 progressive download and playback - The moov atom is expected to be present at the
.
beginning of the MP4/3GP files in order to perform progressive download and progressive streaming.
2
. ID3 Tag support – Support for ID3 tags up to version ID3v2.4
3
. 3GPP Progressive playback – Progressive playback for 3GPP clips is supported, except in the case
when the clip has movie fragments. Support for 3GPP clips with movie fragments is under planning.
4
. 3GPP2 Parser - The 3GPP2 parser in addition to supporting the 3GPP video and audio streams, it also
supports audio streams of types EVRC, EVRC-B, EVRC-WB, 13K (QCELP), SMV, and VMR-WB.
5
. AAC Parser - The AAC parser supports AAC, HE-AAC v1, and HE-AAC v2 audio only streams. They
can be in either ADIF or ADTS format.
6
. AAC Reposition support - The repositioning of ADTS format is allowed. The repositioning of ADIF
format is NOT allowed.
7
. AMR Parser - The AMR parser supports the parsing of AMR-NB and AMR-WB audio file formats. It
supports file extensions of .amr for AMR-NB and .awb for AMR-WB.
8
. WAV Parser - The WAV parser supports the formats: PCM, µ -law, and A-law data.
4 Network Protocols
4.1 STREAMING
The OpenCORE multimedia framework provides support for streaming network protocols. The supported
streaming protocols are listed below:
The OpenCORE multimedia framework provides support for progressive download and progressive playback of
various multimedia container formats. The supported container formats are listed in Table 1 “Container Formats
support”.
Progressive download involves download of media file from a generic web server using the HTTP protocol. In
case of progressive download, the playback starts while the file is downloading in the background. The
OpenCORE parser depends on the metadata available in the container format of the media file.
Progressive playback is similar to progressive download with the exception that during progressive playback
the complete file is not saved on the client. During a progressive playback session, only a finite portion of the file
is resident in the device’s cache at any given point.
9
. 3GPP RTSP Streaming - All mandatory features described in RTSP TS 26.234 Release 6 are supported
The 3GPP Release 6 specifications cover optional features.
The supported features from 3GPP TS 26.234 v6.8.0 specifications are listed in Appendix 2.
The support for 3GPP TS 26.234 Release 6 Annex A.1 specifications is listed in Appendix 3.
The support for 3GPP TS 26.234 Release 6 Annex A.2 specifications is listed in Appendix 4.
10
. Shoutcast Streaming support - The OpenCORE multimedia framework provides client-side support for
parsing and playback of Shoutcast streams. The supported content type is MP3. The common use case for
Shoutcast is internet radio. It uses HTTP as the transport protocol, along with special ICY extension
headers. The media data is interleaved with metadata tags, such as song title and station name, within the
stream.
The OpenCORE multimedia framework has adopted OpenMAX Integration Layer (IL) interface to integrate the
codecs. The modular design allows the use of multiple alternate codecs, as long as they are OpenMAX IL 1.1
compatible.
The OpenCORE multimedia framework provides its own set of optimized software codecs, which are
OpenMAX IL 1.1 compatible. Where applicable, third party hardware accelerated codecs may also be used.
In cases when both software and hardware codecs are present on a device, the OpenCORE framework allows
either decoder to be loaded and used at run time. The choice of which underlying decoder to use may depend
on a use case scenario or on the availability of resources.
Additional information on how OpenMAX IL components can be integrated into OpenCORE framework is
available in “omx_core_integration_guide.pdf” and other related documents at the following location: Android
Open Source Project – OpenCORE documentation
The OpenCORE multimedia framework provides the following optimized software decoders:
The OpenCORE multimedia framework includes the H.263, MPEG-4 part 2, and AVC/H.264 software video
decoders. The following figure shows the modular OpenCORE design that takes advantage of the OpenMAX
IL interface.
The table below includes, but not limited to, some typical supported levels (according to 3GPP TS 26.234 Rel.
7). The actual level of support varies depending on the capabilities of the particular hardware platform, such as
the CPU availability of the processor and memory map characteristics. On many newer
platforms, the optimized codecs available in OpenCORE can decode at levels beyond these ranges.
Furthermore, hardware-accelerated codecs, if available on the device, may provide higher levels of
performance.
10 QCIF 15 64
0 20 CIF 15 128
(Baseline) 30 CIF 30 384
45 QCIF 15 128
H.263
10 QCIF 15 64
3 20 CIF 15 128
0 QCIF 15 64
0b QCIF 15 128
MPEG-4
Simple 1 QCIF 15 64
Part 2
2 CIF 15 128
3 CIF 30 384
1 QCIF 15 64
Constrained 1b QCIF 15 128
AVC/H.264
Baseline
1.1 QCIF 30 192
1.2 CIF 15 384
QCIF 64 15 13.9
MPEG-4
CIF 384 30 97.7
QCIF 64 15 42.5
AVC/H.264
CIF 384 30 307.3
The OpenCORE provides support for MP3, AAC, HE-AAC, AMR-NB, and AMR-WB audio decoders. The
following figure shows the modular OpenCORE design that takes advantage of the OpenMAX IL interface.
Where applicable, the audio codec libraries have a configurable design, which allows optimization of the
memory footprint. For instance, the AAC library uses separate layers to accommodate baseline AAC, Spectral
Band Replication (SBR) and Parametric Stereo (PS) tools. Thus when selecting among the AAC and HEAAC
codec options at build time, it is possible to configure the code to exclude the layers which are not needed.
The table below includes, but not limited to, some typical supported levels. The actual level of support varies
depending on the capabilities of the particular hardware platform, such as the CPU availability of the processor
and memory map characteristics. On many newer platforms, the optimized audio codecs available in
OpenCORE can decode at levels beyond these ranges. Furthermore, hardware-accelerated codecs, if available
on the device, may provide higher levels of performance.
MPEG4 AAC
AAC-LC and LTP Up to 256 Max: 48 2/1 .aac, .mp4, .3gp, .m4a, .3ga
level 2
HE-AACv1 (AAC+)
16 to 96 Up to 48 2/1 .aac, .mp4, .3gp, .m4a, .3ga
level 2
HE-AACv2 (AAC++)
Parametric
or Enhanced AAC+ 16 to 64 Up to 48 .aac, .mp4, .3gp, .m4a, .3ga
Stereo
level 2
The OpenCORE provides H.263, MPEG4 and AVC/H.264 software video encoders, and AMR-NB software
audio encoder. The following figure shows the modular OpenCORE design that takes advantage of the
OpenMAX IL interface. An encoder node is associated with one OMX component. In order to encode multiple
tracks, multiple instantiations of OMX Encoder Node is required. For example, a typical audio/video bitstream
requires two encoder nodes, one for video and one for audio.
As in decoder case, the modular design of the encoder node allows for the existence of multiple alternate
codecs to support a particular codec standard. For example, a particular mobile device may have hardware
AVC encoder support, in addition to the optimized software AVC encoder provided as part of the Android
package. The following table shows examples of the software encoder performance measured on OMAP
2420 processor: For other hardware platform, the actual level of support is, but not limited to, a function of the
CPU availability of the processor and memory map characteristics.
QCIF 64 15 146.7
AVC Constrained Baseline Profile
Encoder CIF 384 30 1209.4
6.1 AUTHOR
The OpenCORE multimedia framework has support for Authoring capabilities that allows recording of video and
audio content.
The Author accepts both compressed and uncompressed input media. The input bit streams supported by the
Author are listed below:
Compressed/
Input Bit Streams Input Source
Uncompressed Input Format
supported File Format
Output File
MIME Type INPUT TRACKS Output Container Format
Format
Any combination of
supported input
. "/x-pvmf/ff-mux/3gp” 3GPP .3gp
formats of audio, video,
and timed-text
6.2 2-WAY
The OpenCORE multimedia framework supports a 2-way subsystem that provides capabilities to create,
configure, and control a video telephony session. The 2-way is capable of executing 3G-324M standard video
telephony calls.
A client of 2-way SDK can be an application or an adapter layer that adapts the 2-way interface to a higher-level
interface used by an application. The input media data are typically provided by live source(s) such as camera
and microphone. The output media data is forwarded to presentation sinks such as display and speaker. The
sources and sinks are provided by the client applications.
The OpenCORE multimedia framework supports a Frame and Metadata Utility (FMU) that retrieves metadata
and thumbnail information from batches of multimedia files.
The FMU can retrieve DRM protected metadata where applicable. It uses the Content Policy Manager (CPM)
framework for extracting the DRM protected metadata.
The FMU supports dynamic loading of the parser libraries in order to reduce the runtime memory footprint.
The OpenCORE multimedia framework supports a PV Metadata Engine (PVME) that retrieves metadata
information from multimedia files. The PVME does not support extraction of thumbnails from multimedia files.
The PVME can retrieve DRM protected metadata where applicable. It uses the Content Policy Manager (CPM)
framework for extracting the DRM protected metadata.
The PVME supports dynamic loading of the parser libraries in order to reduce the runtime memory footprint.
7 Advanced Capabilities
In addition to the basic support of opening, playback, pause, resume, stop, and metadata query, the
OpenCORE multimedia framework also supports Trick Mode playback. Trick mode refers to the playback rate
of anything other than 1X.
The gapless audio feature is under planning for the OpenCORE multimedia framework. The gapless audio
playback allows uninterrupted playback of consecutive audio tracks from a continuous media presentation
without intervening silence or clicks at the point of track change. This feature supports gapless local playback of
AAC (in MPEG4 container) and MP3 formats.
. The trick mode playback support for ASF is available as part of a feature pack from PV. Please see the feature
11
The OpenCORE multimedia framework supports a content policy manager (CPM) subsystem that provides a
generic framework for controlling and enforcing content usage rules. The CPM provides a well-defined interface
between consumers and providers/managers of content for mutually establishing the identities of the parties
involved (authenticating), authorizing content usage, and providing access to the content.
A popular use for the CPM involves providing access to files protected with Digital Rights Management (DRM).
The CPM itself does not directly implement DRM algorithms and protocols, but instead provides a framework for
developing and registering plugins that provide these implementations. These plugins are provided to CPM in
form of a registry.
The CPM allows for rules that extend beyond a single piece of content. Since the content management rules
can by layered, it is possible to implement a wide range of rules by combining a set of plugins. For example, a
common use-case for the CPM involves the implementation of parental controls to restrict access to content
based on ratings and user profile.
SERVICE
PLUGIN 0
SERVICE
PLUGIN 1
CONTENT
MULTIMEDIA
POLICY
PLAYER
MANAGER
SERVICE
PLUGIN N
The following table lists the file formats for which CPM support exists:
The support for actual DRM plugins, such as OMA2, Janus, DivX DRM, Windows Media PlayReady, and SDC
is available in feature packs from PV.
Container Specifications
Format
MPEG4 ISO/IEC 14496-12: "Information technology — Coding of audio-visual objects — Part 12: ISO
base media file format"
3GPP 3GPP TS 26.244: "Packet switched streaming service (PSS); 3GPP file format (3GP)"
3GPP2 3GPP2 C.S0050-B “3rd Generation partnership project 2: 3GPP2 file formats for multimedia
services”
MP3 ISO/IEC 11172-3: “Information technology -- Coding of moving pictures and associated audio for
digital storage media at up to about 1,5 Mbit/s -- Part 3: Audio", 1993
ISO/IEC 3818-3 “MPEG-2 audio”
AAC ISO/IEC 14496-3:2004: “Information Technology – Generic coding of moving pictures and associated
audio information – Part 3: Advanced Audio Codec (AAC)”, (3rd edition)
AMR IETF RFC 3267: “RTP payload format and file storage format for the Adaptive Multi-Rate (AMR)
Adaptive Multi-Rate Wideband (AMR-WB) audio codecs ", March 2002
OpenCORE
Section Comments
Support
5.1 Session establishment Yes SDP and plain RTSP URL is supported
No HTTP GET requests with byte range to support 3GP files NOT authored for
PD is NOT supported
SMIL is NOT supported
5.2 Capability exchange No
5.3.2 RTSP Yes DESCRIBE and Range header are supported. (see also minimal on-demand
playback RTSP implementations);
SET_PARAMETER is supported; "Bandwidth" header is NOT supported;
"3GPP-Link-Char" is NOT supported;
"3GPP-Adaptation" is supported.
5.3.2.4 Video buffering headers x-predecbufsize:
x-initpredecbufperiod:
x-initpostdecbufperiod:
3gpp-videopostdecbufsize:
are all NOT supported
5.3.3.1 SDP "b=TIAS:" supported;
"a=maxprate" supported
5.3.3.2 Additional SDP fields NOT supported
5.3.3.3 The “alt” and “alt-default- Yes
id” attributes
5.3.3.4 The session level Yes
grouping attribute, “alt-group”
5.3.3.5 The bit-rate adaptation Yes
support attribute, “3GPP-
Adaptation-Support”
5.3.3.6 The Quality of No
Experience support attribute,
"3GPP-QoE-Metrics"
5.3.3.7 The asset information Yes
attribute, "3GPP-Asset-
Information"
5.4 MIME types AMR, AAC, MP4A-LATM, MP4V-ES, H263-1998,H263-2000, H264 are
supported; 3GPP timed-text NOT supported;OMA DRM NOT supported; RTP
retransimission NOT supported
6. Data transport Support
6.2 RTP over UDP/IP AMR-NB(rfc 3267),
AMR-WB(rfc 3267),
AAC/LATM(rfc 3016),
m4v(rfc 3016),
The support for 3GPP TS 26.234 Release 6 Annex A.1 specifications is listed below:
Requirement
Requirement
according to OpenCORE
Type Description according to Comments
3GPP TS Support
RFC 4566
26.234 Rel 6
Session Description
V Protocol version R R Yes
O Owner/creator and session identifier R R
Yes
S Session Name R R Yes
I Session information O O Yes
U URI of description O O No Ignored
E Email address O O No Ignored
P Phone number O O No Ignored
C Connection Information R R Yes Ignored. Uses "a=control"
session attribute in "Media
Description"
B Bandwidth AS O O Yes
information
RS ND O Yes
RR ND O Yes
TIAS ND O Yes
One or more Time Descriptions (See below)
Z Time zone adjustments O O
No Ignored
K Encryption key O O No Ignored
A Session attributes control O R Yes
range O R Yes
alt-group ND O Yes
3GPP-QoE- ND O
Metrics No
3GPP-Asset- ND O
Information Yes
3GPP-Integrity- ND O
Key No
3GPP-SDP-Auth ND O No
maxprate ND O
One or more Media Descriptions (See below )
Time Description
Media Description
M Media name and transport address R R
Yes
I Media title O O No Ignored
C Connection information R R
Yes
B Bandwidth AS O R Yes
information
RS ND R Yes
RR ND R Yes
TIAS ND R Yes
K Encryption Key O O No Ignored
A Attribute control O R Yes
Lines
range O R Yes
fmtp O R Yes
rtpmap O R Yes
X-predecbufsize ND O No Ignored
X-initpredecbufperiod ND O No Ignored
X-initpostdecbufperiod ND O No Ignored
X-decbyterate ND O No Ignored
12
framesize ND R Yes
Alt ND O Yes
alt-default-id ND O Yes
3GPP-Adaptation- ND O
Support Yes
3GPP-QoE-Metrics ND O No Ignored
3GPP-Asset-Information ND O Yes
3GPP-SRTP-Config ND O No
Rtcp-fb O O No
maxprate ND R Yes
12
NOTE: The “framesize” attribute is only required for H.263 streams
The support for 3GPP TS 26.234 Release 6 Annex A.2 specifications is listed below:
OPTIONS O O Yes
REDIRECT Respond Respond Partial Client handles 3xx error
codes as REDIRECT, but
currently it does not accept
REDIRECT request.
DESCRIBE O Generate Yes
SETUP Generate Generate Yes
PLAY Generate Generate Yes
PAUSE Generate Generate Yes
TEARDOWN Generate Generate Yes
SET_PARAMETER O O Yes Client responds with "200
OK" but does NOT parse the
particular parameter
NOTE 1: O = Support is optional
NOTE 2: 'Generate' means that the client/server is required to
generate the request where applicable.
NOTE 3: 'Respond' means that the client/server is required to properly
respond to the request.
Requirement for a
Requirement for a PSS
minimal on demand PV
Header client according to 3GPP Comments
playback client Support
TS 26.234 Rel 6.
according to RFC 2326.
Bandwidth O O Ignored
Connection include/ understand include/ understand Yes
Content-Encoding understand understand No Ignored
Content-Language understand understand No Ignored
Content-Length understand understand Yes
Content-Type understand understand Yes
Cseq include/ understand include/ understand Yes
Date include include Yes
Location understand understand Yes
Public O O No
Range O include/ understand Yes
Require O O Yes
Decoder Specifications
Codec Specifications
H.263 video ITU-T Recommendation H.263: “Video coding for low bit rate communication”
MPEG-4 video ISO/IEC 14496-2:2001, “Information technology – Coding of audio-visual objects – Part 2:
Visual”
AVC video AVC/H.264: “Advanced video coding for generic audiovisual services” ITU-T recommendation
H.264, 05/2003
MP3 audio MPEG 1/2/2.5 Standars according to ISO/IEC 11172-3 and ISO/IEC 3818-3
AAC audio AAC LC and LTP: “Information Technology – Generic coding of moving pictures and
associated audio information – Part 3: Advanced Audio Codec (AAC)”, ISO/IEC
14496-3:2004 (3rd edition)
HE-AAC v1: 3GPP TS 26.401, v6.10: “General audio codec audio processing functions;
Enhanced aacPlus general audio codec; General description
HE-AAC v2: 3GPP TS 26.401, v6.10: “General audio codec audio processing functions;
Enhanced aacPlus general audio codec; General description
AMR-NB audio 3GPP TS 26.071: “Mandatory Speech Codec speech processing functions; AMR Speech
Codec; General description”
AMR-WB audio 3GPP TS 26.171: “AMR speech codec, wideband; General description”
2-way Specifications
3GPP TS 26.110 v6.0.0: "Codec for Circuit Switched Multimedia Telephony Service; General description".
3GPP TS 26.111 v6.1.0: “Codec for Circuit Switched Multimedia Telephony Service; Modifications to H.324”
ITU-T Recommendation H.324: "Terminal for low bitrate multimedia communication", February 1998
ITU-T Recommendation H.223: "Multiplexing protocol for low bit rate multimedia communication", March 1996
ITU-T Recommendation H.223 - Annex A: "Multiplexing protocol for low bit rate multimedia mobile communication over low
error-prone channels", February 1998
ITU-T Recommendation H.223 - Annex B: "Multiplexing protocol for low bit rate multimedia mobile communication over
moderate error-prone channels", February 1998
ITU-T Recommendation H.245, Version 6: "Control protocol for multimedia communication”, February 2000
3GPP TR 26.911 v6.0.0: "Codec for circuit switched multimedia telephony service; Terminal Implementor’s Guide"
The feature-level summary of the elements supported by 2-way is listed below. These features are classified by
feature groups, which relate to specific areas of the 3G-324M standard. In general, features that are listed as
supported may be used and/or configured through 2-way API’s, i.e. no special build time provisions is
necessary to activate such features. For other features (either absent from the list, or listed as “Not Supported”),
some customization would be needed in order to add or utilize the feature.
H.223 2 Level 1 Yes In/Out Support for Annex A in single or double flag
(H.223 Annex modes.
A)
H.223 3 Level 2 Yes In/Out Support for Annex B with or without optional
(H.223 Annex header.
B)
H.223 4 Level 3a No --
(H.223 Annex
C)
H.223 5 Level 3b No --
(H.223 Annex
D)
H.223 6 Control over Yes In/Out Framed transfer mode, per H.324 recommendation
AL1
H.223 7 Audio over Yes In/Out CRC and Optional SN are both supported
AL2
H.223 8 Video over Yes In/Out CRC and Optional SN are both supported
AL2
H.223 9 Video over Yes In/Out Support for 0, 1 or 2 control field octets.
AL3 Retransmission not supported (this is in line with
the recommendation in 3GPP TS 26.911)
H.245 5 Open Logical Yes In/Out For video case, both unidirectional
Channel and bidirectional are supported
H.245 14 Multiplex No --
Reconfiguratin
(level change)
H.324 10 Encryption No --