Helix On The OLPC

Download Report

Transcript Helix On The OLPC

Helix On The OLPC
Python Extensions of Helix
Helix Summit 2007
Introductions
•
We support open software, open communities, and an open world
•
Peter Krenesky
• Lead Software Engineer
• Tech Lead for OLPC projects @ OSL
Helix Summit 2007
2
Summary
• Python API Overview
• Helix Player On the OLPC:
• Watch & Listen
• ProducerSDK On the OLPC:
• Produce
• Teleconference
• Future Plans:
• Audio Presentations Via Producer
Helix Summit 2007
3
Pykit - Overview
• Python Modules
• HxPlay
• HxRecord
• Capture
• Editing
• Encoding
Helix Summit 2007
4
Pykit - Design Goals
• Simplify the interface
• Hide engine initialization
• Hide initialization of components
• Resizing
• Seeking
• Reuse as much as possible
• Start from pyplayer
• Feature implementations borrowed from splay
Helix Summit 2007
5
HxPlay - Overview
• Ported to atlas
• Target: player_kit_python
• Code cleanup
• Added new features
•
•
•
•
QuickSeek
Video Site Resizing
Playlist support
Color Controls
Helix Summit 2007
6
HxPlay - Player sample
Import hxplay
hxplay.init()
player = hxplay.open(“foo.mp3”)
player.start()
Helix Summit 2007
7
HxPlay – Incomplete Features
• Support other than Linux
• Support for Multiple Players
• Audio Formatting
• Audio Visualization
Helix Summit 2007
8
HxRecord - Overview
• New Python Bindings Around ProducerSDK
• Target: player_kit_python_hxrecord
• ProducerSDK modifications
• Porting to atlas
• Adding features
Helix Summit 2007
9
HxRecord - Design Goals
• Match ProducerSDK workflow
• Full featured
• Simplicity
• Merger with hxplay
Helix Summit 2007
10
HxRecord - Code Sample
dictionary = {
‘pluginType’ : ’avFileInput’
, ’filename’ : ’foo.avi’
}
input = hxrecord.createInput(dictionary)
encodingjob.setInput(input)
Helix Summit 2007
11
HxRecord – Roadmap
• Bindings Mostly Complete
• Debug Ported ProducerSDK
• Merge ProducerSDK components with Atlas
• Merge HxRecord and HxPlay
Helix Summit 2007
12
ProducerSDK - Current Hierarchy
Atlas
ProducerSDK
Media
Playback
EncodeSVC
Class Factory
Class Factory
Video Output (sites)
Video Output (sites)
Container Classes
Container Classes
Helix Summit 2007
13
ProducerSDK – Intermediate Step
Atlas
Media
Playback
EncodeSVC
Class Factory
Class Factory
Video Output (sites)
Video Output (sites)
Container Classes
Container Classes
Helix Summit 2007
14
ProducerSDK - Planned Hierarchy
Atlas
Media
Playback
EncodeSVC
Class Factory
Video Output (sites)
Container Classes
Helix Summit 2007
15
PyKit - Current Hierarchy
HxPlay
HxRecord
Engine
Initialization
Engine
Initialization
Helix Summit 2007
16
PyKit - Planned Hierarchy
PyKit
HxPlay
HxRecord
HxEngine
Helix Summit 2007
17
Helix Player on the OLPC
• Named “Watch and Listen” after the activity
that children are doing.
• Lots of possible features but need to keep it
simple
Helix Summit 2007
18
Watch & Listen - Screenshot
Helix Summit 2007
19
Watch & Listen - Features
•
•
•
•
•
Standard Playback Buttons
Seeking via slider
Screen size toggles
Metadata display
Playlist Support
Helix Summit 2007
20
The OLPC Journal
• Stores a history of what a child has done
• Activities can be resumed
• Files have a mime-type
• Only place where Watch & Listen can be
launched
Helix Summit 2007
21
Journal - Screenshot
Helix Summit 2007
22
W & L - Features We’d Like to Add
• Visualizations for audio Playback
• Keyboard Shortcuts
• Sharing - Collaboration among children
Helix Summit 2007
23
Sharing - Overview
• It’s a collaboration tool not just a laptop!
• Shared learning experiences
Helix Summit 2007
24
Watch & Listen - Multicasting
• Positives
• Scales very well for 1:M
transmission
• Negatives
• Server is a large image
• Simultaneous multicasts may
degrade mesh
Helix Summit 2007
25
W & L - Synchronized Viewing
• Positives
• Doesn’t require a much
larger image
Server
• Negatives
• Limited Scaling
• Must all have access to
video
• Keeping video
synchronized is difficult
Helix Summit 2007
26
Produce - Overview
• Capture - video and audio
• Encoding
• Simple Video Editing
•
•
•
•
Cropping
Resizing
Cutting & Joining videos
Add Audio Tracks
Helix Summit 2007
27
Produce - Record Mockup
Helix Summit 2007
28
Produce - Editing Mockup
Helix Summit 2007
29
Teleconference - Overview
• Audio and video Teleconferencing using Helix
• Senior Capstone Project
• Year long project required for graduation
Helix Summit 2007
30
Teleconference - Overview
• Will use both HxRecord & HxPlay
• 1:1 Video and or Audio at usable rates
• CPU power bigger issue than bandwidth
• M:N Conferencing may not be possible with CPU
limitations
Helix Summit 2007
31
Teleconference - 1:1 Workflow
Child 1
Child 2
Producer (out)
Player (in)
Player (in)
Producer (out)
Helix Summit 2007
32
Teleconference - M:N Challenges
• Every Participant adds 2 streams
• Videos must be decoded and drawn to screen
• Audio must be multiplexed
Child 1
Child2
Producer (out)
Combined
Stream
Producer (in)
Audio
Child3
Player (in)
Helix Summit 2007
33
Teleconference – Special
Requirements
• All communication between laptops must use
Python dbus
• XO has special libraries for locating and
communicating with peers on the mesh
• Plugins will be required for both Producer and
Player
Helix Summit 2007
34
Webcaster – Overview
• PowerPoint + Recorded Audio
• Proposed project
• Will probably be done in pieces as class projects
Helix Summit 2007
35
Recap
• Python API – A lot of momentum
• Helix On the OLPC:
•
•
•
•
Watch & Listen
Produce
Teleconference
Audio Presentations Via Producer
Helix Summit 2007
36
Questions?
• Peter Krenesky
• Email: [email protected]
• Web: http://osuosl.org
• Ribosome Targets:
• Player_kit_python
• Player_kit_python_hxrecord
• http://laptop.org
Helix Summit 2007
37