3 THE OMA-DRM 2.0
IMPLEMENTATION USING
OGG-VORBIS
This chapter describes the work done thus far and
outlines the future work using the Symbian
Environment and an open source Symbian audio
player with no initial internal DRM support
whatsoever. The goal is then to add OMA DRM 2.0
support to the player and, by extension, the phone in
which the player is installed in. This task can be
decomposed in: adding support for interpreting
DCFs (2.1), ROs (2.2) and implementing ROAP
(2.3).
The audio player chosen as a work base is an
Open Source project for Symbian Series 60 focusing
primarily on the Ogg Vorbis format.
The chosen Symbian User Interface (UI)
deployment platform and testbed was Series 60
developed by Nokia which is to date, the most
popular UI– higher number of phone models. PC
based testing used S60 2
nd
Edition FP3 Emulator for
Symbian v8.1.
3.1 Ogg Vorbis Audio
Vorbis and Ogg are, respectively, an audio codec
(Vorbis I specification) and generic encapsulation
format (bitstream container) (Pfeiffer, 2003)
together making up Ogg Vorbis Audio.
In greater detail, Vorbis is a perceptual audio
codec (lossy) similarly to MPEG-4 ACC, AC-3 or
RealAudio. A Vorbis bitstream is composed by three
initial header packets: identification, comment and
setup headers in that order which are necessary in
order to initialize the bitstream (Vorbis I
specification). After these headers all remaining
packets are audio packets with type 0, mode and
block size fields.
The Ogg multimedia bitstream format is agnostic
towards the actual media (logical bitstreams) it
stores – it is media independent. Encapsulation is
achieved by taking a packet-by-packet logical
bitstream and dividing each (packet) into 255 byte
chunks or Ogg segments (last segment may be
smaller), following this groups of contiguous
segments are wrapped into variable length
(approximately 64Kbytes or 65307 bytes maximum)
Ogg pages. Metadata is part of the second header
packet in a Vorbis bitstream – comment header
(Vorbis I specification).
A major advantage of adopting Ogg Vorbis is its
patent, license free and open nature (Ogg Vorbis
Website), another, is its high fidelity and
transparency. Ogg Vorbis is estimated to reach
transparency at 160 kbit/s whereas MP3 does it at
about 192 kbit/s, thus, Ogg Vorbis produces a
smaller file size to achieve the same quality.
3.2 DCF Decision
It is clear that that it is advisable that audio/video
data should encapsulated into a PDCF. However,
Ogg Vorbis is not a ISOBMFF. Vorbis is usually
encapsulated onto the Ogg container format but it
may also be encapsulated into other formats. With
using the ISOBMFF a considerable effort would be
required in coding all the data and metadata from the
Vorbis bitstream into the new format. It is also a
countersense to do this conversion since PDCF was
designed so that files look and function like a media
file to the outside (DRM Rights Expression
Language, 2005). With this in mind, it is unclear
what file extension such a file should have.
The solution found was using the DCF in spite of
its shortcomings regarding packetized media. This
way the Ogg Vorbis can be preserved and
encapsulated into the DCF effortlessly. However, it
is required to encrypt packets separately before
adding the bitstream to the DCF.
Figure 2 marks the (audio) data regions of a Ogg
Vorbis file subjected to encryption. Ogg page
headers and non-audio Vorbis packets (headers)
should be left in plaintext form so that the vorbis
format can be kept readable. This also permits using
the file’s original metadata instead of using the User
Data Box (figure 1). To detect that the DCF was
encrypted in this manner it is sufficient to check the
content type of the original content present on the
“OggS” 0x00 0x00
0x0000000000000000
bitstream_serial_number
sequence_number
CRC_checksum
page_segments
segment_table
comment header
“OggS” 0x00 0x02
0x0000000000000000
bitstream_serial_number
sequence_number
CRC_checksum
0x01 0x1E
identification header
Ogg Page 1
(BOS – 58 bytes)
Ogg Page 2
“OggS” 0x00 0x01
0x0000000000000000
bitstream_serial_number
sequence_number
CRC_checksum
page_segments
segment_table
setup header
“OggS” 0x00 0x00
0x0000000000000000
bitstream_serial_number
sequence_number
CRC_checksum
page_segments
segment_table
audio packet data
Ogg Page n
Ogg Page n+1
“OggS” 0x00 0x04
0x0000000000000000
bitstream_serial_number
sequence_number
CRC_checksum
page_segments
segment_table
audio packet data
Ogg Page N
(EOS)
Figure 2: Typical structure of an (encrypted) Ogg Vorbis file.
USING OMA DRM 2.0 PROTECTED CONTENT - Ogg Vorbis Protected Audio under Symbian OS
313