Top Banner
Centrum Wiskunde & Informatica Engineering the Ambulant Multimedia Player Jack Jansen < [email protected] > SEN5 group CWI 1 dinsdag 17 mei 2011
24

Engineering the Ambulant Multimedia Player

Jan 21, 2022

Download

Documents

dariahiddleston
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Engineering the Ambulant Multimedia Player

Centrum Wiskunde & Informatica

Engineering the Ambulant Multimedia PlayerJack Jansen <[email protected]>

SEN5 group

CWI

1dinsdag 17 mei 2011

Page 2: Engineering the Ambulant Multimedia Player

Centrum Wiskunde & Informatica

Outline of the Talk

What is Ambulant?

Design

Implementation

Success stories

Lessons learned

2

2dinsdag 17 mei 2011

Page 3: Engineering the Ambulant Multimedia Player

Centrum Wiskunde & Informatica

What is Ambulant?

Multimedia playback engine

SMIL-based

Desktop: Windows, Mac, Linux

Browser plugin: Safari, IE, Firefox (win/linux)

Mobile: iPad, iPhone

Initial implementation sponsored bt NLNet Foundation

3

3dinsdag 17 mei 2011

Page 4: Engineering the Ambulant Multimedia Player

Centrum Wiskunde & Informatica

Target Market

Ourselves

Test SMIL standardisation

Platform for experimentation

Similar groups

Generally: scientists, experimentors and hackers

4

4dinsdag 17 mei 2011

Page 5: Engineering the Ambulant Multimedia Player

Centrum Wiskunde & Informatica

Design Guidelines

Use formalisms only sparingly

Small team

Highly trained staff

Tight cooperation

Nothing is cast in concrete

Agile Development! Yeah!

Probably influenced by “The Zen of Python”

5

5dinsdag 17 mei 2011

Page 6: Engineering the Ambulant Multimedia Player

Centrum Wiskunde & Informatica

Design Requirements

Adaptable, extensible, embeddable

Portable

Platform-native GUI

Enables use of native media toolkits

Expected user experience

Efficient

Handhelds, embedded systems

6

6dinsdag 17 mei 2011

Page 7: Engineering the Ambulant Multimedia Player

Centrum Wiskunde & Informatica

PlayableDatasource Playable Renderer

Parser

Scheduler

Playable Renderer Surface

Layout Manager

GUI window

Datasource

Sing

le in

stan

ces

Mul

tiple

inst

ance

s

Mac

hine

depe

nden

tM

achi

nein

depe

nden

t

Task Scheduler

DOM tree

SMIL State

Plugin Engine

Global Design25 UML-ish diagrams

1500 lines of text

Each component can be replaced

Almost all have been...

7

7dinsdag 17 mei 2011

Page 8: Engineering the Ambulant Multimedia Player

Centrum Wiskunde & Informatica

Embedding and Extending

Clean well-defined API

Fully available in C++, Python

Python bindings are two-way

Generated

Beautiful....

Wanted: COM/OLE, Java?

8

8dinsdag 17 mei 2011

Page 9: Engineering the Ambulant Multimedia Player

Centrum Wiskunde & Informatica

State of the Code

Uses ffmpeg, live, expat, xerces, SDL, gettext, ....

Linux: gtk, qt

MacOS: Cocoa, CoreGraphics

Windows: DirectDraw, Direct2D

iOS: UIKit+CoreGraphics

Dropped: Zaurus, Nokia 770, Windows Mobile

Missing: WM7, Android, Symbian

9

9dinsdag 17 mei 2011

Page 10: Engineering the Ambulant Multimedia Player

Centrum Wiskunde & Informatica

Meaningless Metrics

About 100KLOC

60 Interfaces

450 Methods

450 Classes

{ grep, wc, interpret, refine}

10

10dinsdag 17 mei 2011

Page 11: Engineering the Ambulant Multimedia Player

Centrum Wiskunde & Informatica

Development Environment

Native:

auto*, make

XCode

Visual Studio

hg

Doxygen

11

11dinsdag 17 mei 2011

Page 12: Engineering the Ambulant Multimedia Player

Centrum Wiskunde & Informatica

Development Environment - 2

Poor-mans code review (checkin messages)

Nightly builds

Test suite (finally) under development

12

12dinsdag 17 mei 2011

Page 13: Engineering the Ambulant Multimedia Player

Centrum Wiskunde & Informatica

Use Case - SMIL

Extensively used during development of

SMIL 2.1

SMIL 3.0

13

13dinsdag 17 mei 2011

Page 14: Engineering the Ambulant Multimedia Player

Centrum Wiskunde & Informatica

Use Case - Amis Daisy Reader

Digital Talking Books

Embeds Ambulant

Screen reading

Highlighting

Navigation

14

www.daisy.org/amis

14dinsdag 17 mei 2011

Page 15: Engineering the Ambulant Multimedia Player

Centrum Wiskunde & Informatica

Use Case - Ambulant Annotator

FP6, BRICKS project

Seminal Secondary Screen paper

Sofa-based editing and sharing

Python-based XMLRPC server in Ambulant

Client UI on the handheld

Pablo Cesar, Dick C.A. Bulterman and Jack Jansen. 2008. Usages of the Secondary Screen in an Interactive Television Environment: Control, Enrich, Share, and Transfer Television Content. In LNCS VOL. 5066/2008, pp. 168-177. Springer Berln/Heidelberg, DE. DOI= 10.1007/978-3-540-69478-6_22

15

15dinsdag 17 mei 2011

Page 16: Engineering the Ambulant Multimedia Player

Centrum Wiskunde & Informatica

PlayableDatasource Playable Renderer

Parser

Scheduler

Playable Renderer Surface

Layout Manager

GUI window

Datasource

Sing

le in

stan

ces

Mul

tiple

inst

ance

s

Mac

hine

depe

nden

tM

achi

nein

depe

nden

t

Task Scheduler

DOM tree

SMIL State

Plugin Engine XMLRPC Server

Implementation

Runs on “TV”

Various UIs on various handhelds

16

16dinsdag 17 mei 2011

Page 17: Engineering the Ambulant Multimedia Player

Centrum Wiskunde & Informatica

Use Case - Adaptive Time-based Web Apps

Integrate time into web application

Ambulant in WebKit plugin

Uses WebKit DOM

Glue in Python/WebKit/JavaScript

Jack Jansen and Dick C.A. Bulterman. 2008. Enabling adaptive time-based web applications with SMIL state. In Proceeding of the eighth ACM symposium on Document engineering (DocEng '08). ACM, New York, NY, USA, 18-27. DOI=10.1145/1410140.1410146

17

17dinsdag 17 mei 2011

Page 18: Engineering the Ambulant Multimedia Player

Centrum Wiskunde & Informatica

PlayableDatasource Playable Renderer

Parser

Scheduler

Playable Renderer Surface

Layout Manager

GUI window

Datasource

Sing

le in

stan

ces

Mul

tiple

inst

ance

s

Mac

hine

depe

nden

tM

achi

nein

depe

nden

t

Task Scheduler

DOM tree

SMIL State

Plugin Engine

DOM tree

SMIL State

WebKit Glue

Implementation

Glue is Python and Javascript

18

18dinsdag 17 mei 2011

Page 19: Engineering the Ambulant Multimedia Player

Centrum Wiskunde & Informatica

Use Case - Ta2 VCE

FP7 Project

Composition-based video-conferencing

Adds Live Video, Flash, specialised renderers

Adds Python-based XMLRPC control

Jack Jansen, Pablo Cesar, Dick C.A. Bulterman, Tim S. Stevens, Ian C. Kegel and Jochen Issing. 2011. Enabling Composition-Based Video-Conferencing for the Home. Submitted to IEEE Trans.MM.

19

19dinsdag 17 mei 2011

Page 20: Engineering the Ambulant Multimedia Player

Centrum Wiskunde & Informatica

PlayableDatasource Playable Renderer

Parser

Scheduler

Playable Renderer Surface

Layout Manager

GUI window

Datasource

Sing

le in

stan

ces

Mul

tiple

inst

ance

s

Mac

hine

depe

nden

tM

achi

nein

depe

nden

t

Task Scheduler

DOM tree

SMIL State

Plugin Engine XMLRPC Server

Playable RendererDatasource

Implementation

Driven by other components

Complexity is in SMIL

20

20dinsdag 17 mei 2011

Page 21: Engineering the Ambulant Multimedia Player

Centrum Wiskunde & Informatica

Use Case - Axmedis

Automatic Production of Media for Multichannel Distribution

CWI not involved

FP6 Project, code still available

http://www.axmedis.org/documenti/view_documenti.php?doc_id=3507

www.axmedis.org

21

21dinsdag 17 mei 2011

Page 22: Engineering the Ambulant Multimedia Player

Centrum Wiskunde & Informatica

What we did Right

API

and willingness to adapt and refactor

small team!

Multi-everything to the core

Light-weight (human) processes

22

22dinsdag 17 mei 2011

Page 23: Engineering the Ambulant Multimedia Player

Centrum Wiskunde & Informatica

What we did Wrong

Framework, should have been Toolbox:-(

Hinders re-use by others

No “Application” object

Hinders embedding

Some things left too long

Nightly builds

Automatic testing

23

23dinsdag 17 mei 2011

Page 24: Engineering the Ambulant Multimedia Player

Centrum Wiskunde & Informatica

Closing Remarks

Slides: http://www.cwi.nl/~jack/presentations/ambulant-se.pdf

See www.ambulantplayer.org for more

Questions, discussion, ...

24

24dinsdag 17 mei 2011