400 likes | 537 Views
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.
E N D
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
Foreword • OLPC is a very unique device • Its is not just a “laptop” Helix Summit 2007
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
Pykit - Overview • Python Modules • HxPlay • HxRecord • Capture • Editing • Encoding Helix Summit 2007
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
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
HxPlay - Player sample Import hxplay hxplay.init() player = hxplay.open(“foo.mp3”) player.start() Helix Summit 2007
HxPlay – Incomplete Features • Support other than Linux • Support for Multiple Players • Audio Formatting • Audio Visualization Helix Summit 2007
HxRecord - Overview • New Python Bindings Around ProducerSDK • Target: player_kit_python_hxrecord • ProducerSDK modifications • Porting to atlas • Adding features Helix Summit 2007
HxRecord - Design Goals • Match ProducerSDK workflow • Full featured • Simplicity • Merger with hxplay Helix Summit 2007
HxRecord - Code Sample dictionary = { ‘pluginType’ : ’avFileInput’ , ’filename’ : ’foo.avi’ } input = hxrecord.createInput(dictionary) encodingjob.setInput(input) Helix Summit 2007
HxRecord – Roadmap • Bindings Mostly Complete • Debug Ported ProducerSDK • Merge ProducerSDK components with Atlas • Merge HxRecord and HxPlay Helix Summit 2007
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
ProducerSDK – Intermediate Step Atlas Media Playback EncodeSVC Class Factory Class Factory Video Output (sites) Video Output (sites) Container Classes Container Classes Helix Summit 2007
ProducerSDK - Planned Hierarchy Atlas Media Playback EncodeSVC Class Factory Video Output (sites) Container Classes Helix Summit 2007
PyKit - Current Hierarchy HxPlay HxRecord Engine Initialization Engine Initialization Helix Summit 2007
PyKit - Planned Hierarchy PyKit HxPlay HxRecord HxEngine Helix Summit 2007
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
Watch & Listen - Screenshot Helix Summit 2007
Watch & Listen - Features • Standard Playback Buttons • Seeking via slider • Screen size toggles • Metadata display • Playlist Support Helix Summit 2007
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
Journal - Screenshot Helix Summit 2007
W & L - Features We’d Like to Add • Visualizations for audio Playback • Keyboard Shortcuts • Sharing - Collaboration among children Helix Summit 2007
Sharing - Overview • It’s a collaboration tool not just a laptop! • Shared learning experiences Helix Summit 2007
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
OLPC - Mesh Networking • 802.11s • Ad-hoc Wireless network • May easily span miles • Peers may connect indirectly through other Peers Helix Summit 2007
W & L - Synchronized Viewing • 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
Produce - Overview • Capture - video and audio • Encoding • Simple Video Editing • Cropping • Resizing • Cutting & Joining videos • Add Audio Tracks Helix Summit 2007
Produce - Record Mockup Helix Summit 2007
Produce - Record Screenshot Helix Summit 2007
Produce - Editing Mockup Helix Summit 2007
Teleconference - Overview • Audio and video Teleconferencing using Helix • Senior Capstone Project • Year long project required for graduation Helix Summit 2007
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
Teleconference - 1:1 Workflow Child 1 Child 2 Producer (out) Player (in) Player (in) Producer (out) Helix Summit 2007
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
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
Webcaster – Overview • PowerPoint + Recorded Audio • Proposed project • Will probably be done in pieces as class projects Helix Summit 2007
Recap • Python API – A lot of momentum • Helix On the OLPC: • Watch & Listen • Produce • Teleconference • Audio Presentations Via Producer Helix Summit 2007
Questions? • Peter Krenesky • Email: Peter@osuosl.org • Web: http://osuosl.org • Ribosome Targets: • Player_kit_python • Player_kit_python_hxrecord • http://laptop.org Helix Summit 2007