helix on the olpc
DESCRIPTION
Helix On The OLPC. Python Extensions of Helix. Introductions. We support open software, open communities, and an open world Peter Krenesky Lead Software Engineer Tech Lead for OLPC projects @ OSL. Foreword. OLPC is a very unique device Its is not just a “laptop”. Summary. - PowerPoint PPT PresentationTRANSCRIPT
Helix Summit 2007
Helix On The OLPCHelix On The OLPC
Python Extensions of Helix
Helix Summit 2007 2
IntroductionsIntroductions
• We support open software, open communities, and an open world
• Peter Krenesky• Lead Software Engineer• Tech Lead for OLPC projects @ OSL
Helix Summit 2007 3
ForewordForeword
•OLPC is a very unique device
•Its is not just a “laptop”
Helix Summit 2007 4
SummarySummary
• 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 5
Pykit - OverviewPykit - Overview
• Python Modules• HxPlay• HxRecord
• Capture• Editing• Encoding
Helix Summit 2007 6
Pykit - Design GoalsPykit - 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 7
HxPlay - OverviewHxPlay - Overview
• Ported to atlas• Target: player_kit_python• Code cleanup
• Added new features• QuickSeek• Video Site Resizing• Playlist support• Color Controls
Helix Summit 2007 8
HxPlay - Player sampleHxPlay - Player sample
Import hxplayhxplay.init()player = hxplay.open(“foo.mp3”)
player.start()
Helix Summit 2007 9
HxPlay – Incomplete HxPlay – Incomplete FeaturesFeatures
• Support other than Linux
• Support for Multiple Players
• Audio Formatting
• Audio Visualization
Helix Summit 2007 10
HxRecord - OverviewHxRecord - Overview
• New Python Bindings Around ProducerSDK
• Target: player_kit_python_hxrecord
• ProducerSDK modifications• Porting to atlas• Adding features
Helix Summit 2007 11
HxRecord - Design GoalsHxRecord - Design Goals
• Match ProducerSDK workflow
• Full featured
• Simplicity
• Merger with hxplay
Helix Summit 2007 12
HxRecord - Code SampleHxRecord - Code Sample
dictionary = { ‘pluginType’ :
’avFileInput’ , ’filename’ : ’foo.avi’
}input = hxrecord.createInput(dictionary)encodingjob.setInput(input)
Helix Summit 2007 13
HxRecord – RoadmapHxRecord – Roadmap
• Bindings Mostly Complete
• Debug Ported ProducerSDK
• Merge ProducerSDK components with Atlas
• Merge HxRecord and HxPlay
Helix Summit 2007 14
ProducerSDK - Current ProducerSDK - Current HierarchyHierarchy
EncodeSVCMediaPlayback
Class Factory
Video Output (sites)
Container Classes
Class Factory
Video Output (sites)
Container Classes
Atlas ProducerSDK
Helix Summit 2007 15
ProducerSDK – Intermediate ProducerSDK – Intermediate StepStep
EncodeSVCMediaPlayback
Class Factory
Video Output (sites)
Container Classes
Class Factory
Video Output (sites)
Container Classes
Atlas
Helix Summit 2007 16
ProducerSDK - Planned ProducerSDK - Planned HierarchyHierarchy
EncodeSVCMediaPlayback
Class Factory
Atlas
Video Output (sites)
Container Classes
Helix Summit 2007 17
PyKit - Current HierarchyPyKit - Current Hierarchy
HxRecord
EngineInitialization
HxPlay
EngineInitialization
Helix Summit 2007 18
PyKit - Planned HierarchyPyKit - Planned Hierarchy
HxRecordHxPlay
HxEngine
PyKit
Helix Summit 2007 19
Helix Player on the OLPCHelix 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 20
Watch & Listen - Watch & Listen - ScreenshotScreenshot
Helix Summit 2007 21
Watch & Listen - FeaturesWatch & Listen - Features
• Standard Playback Buttons• Seeking via slider• Screen size toggles• Metadata display• Playlist Support
Helix Summit 2007 22
The OLPC JournalThe 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 23
Journal - ScreenshotJournal - Screenshot
Helix Summit 2007 24
W & L - Features We’d Like W & L - Features We’d Like to Addto Add
• Visualizations for audio Playback
• Keyboard Shortcuts
• Sharing - Collaboration among children
Helix Summit 2007 25
Sharing - OverviewSharing - Overview
• It’s a collaboration tool not just a laptop!
• Shared learning experiences
Helix Summit 2007 26
Watch & Listen - Watch & Listen - MulticastingMulticasting
• Positives• Scales very well for 1:M transmission
• Negatives• Server is a large image• Simultaneous multicasts may degrade mesh
Helix Summit 2007 27
OLPC - Mesh NetworkingOLPC - Mesh Networking
• 802.11s• Ad-hoc Wireless network• May easily span miles• Peers may connect indirectly through other Peers
Helix Summit 2007 28
W & L - Synchronized W & L - Synchronized ViewingViewing• Positives
• Doesn’t require a much larger image
• Negatives • Limited Scaling• Must all have access to video
• Keeping video synchronized is difficult
Server
Helix Summit 2007 29
Produce - OverviewProduce - Overview
• Capture - video and audio• Encoding• Simple Video Editing
• Cropping• Resizing• Cutting & Joining videos• Add Audio Tracks
Helix Summit 2007 30
Produce - Record MockupProduce - Record Mockup
Helix Summit 2007 31
Produce - Record Produce - Record ScreenshotScreenshot
Helix Summit 2007 32
Produce - Editing MockupProduce - Editing Mockup
Helix Summit 2007 33
Teleconference - OverviewTeleconference - Overview
• Audio and video Teleconferencing using Helix
• Senior Capstone Project• Year long project required for graduation
Helix Summit 2007 34
Teleconference - OverviewTeleconference - 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 35
Teleconference - 1:1 Teleconference - 1:1 WorkflowWorkflow
Child 1
Producer (out)
Player (in)
Child 2
Player (in)
Producer (out)
Helix Summit 2007 36
Teleconference - M:N Teleconference - M:N ChallengesChallenges• Every Participant adds 2 streams
• Videos must be decoded and drawn to screen
• Audio must be multiplexedChild 1
Producer (out) Child2
Child3
Producer (in)
Player (in)
AudioCombined Stream
Helix Summit 2007 37
Teleconference – Special Teleconference – Special RequirementsRequirements
• 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 38
Webcaster – OverviewWebcaster – Overview
• PowerPoint + Recorded Audio
• Proposed project • Will probably be done in pieces as class projects
Helix Summit 2007 39
RecapRecap
• Python API – A lot of momentum
• Helix On the OLPC: • Watch & Listen• Produce• Teleconference• Audio Presentations Via Producer
Helix Summit 2007 40
Questions?Questions?
• Peter Krenesky• Email: [email protected]• Web: http://osuosl.org
• Ribosome Targets:• Player_kit_python• Player_kit_python_hxrecord
• http://laptop.org