Helix On The OLPC Python Extensions of Helix

  • Slides: 40
Download presentation
Helix On The OLPC Python Extensions of Helix Summit 2007

Helix On The OLPC Python Extensions of Helix Summit 2007

Introductions • We support open software, open communities, and an open world • Peter

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

Foreword • OLPC is a very unique device • Its is not just a

Foreword • OLPC is a very unique device • Its is not just a “laptop” Helix Summit 2007 3

Summary • Python API Overview • Helix Player On the OLPC: • Watch &

Summary • Python API Overview • Helix Player On the OLPC: • Watch & Listen • Producer. SDK On the OLPC: • Produce • Teleconference • Future Plans: • Audio Presentations Via Producer Helix Summit 2007 4

Pykit - Overview • Python Modules • Hx. Play • Hx. Record • Capture

Pykit - Overview • Python Modules • Hx. Play • Hx. Record • Capture • Editing • Encoding Helix Summit 2007 5

Pykit - Design Goals • Simplify the interface • Hide engine initialization • Hide

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 6

Hx. Play - Overview • Ported to atlas • Target: player_kit_python • Code cleanup

Hx. Play - Overview • Ported to atlas • Target: player_kit_python • Code cleanup • Added new features • • Quick. Seek Video Site Resizing Playlist support Color Controls Helix Summit 2007 7

Hx. Play - Player sample Import hxplay. init() player = hxplay. open(“foo. mp 3”)

Hx. Play - Player sample Import hxplay. init() player = hxplay. open(“foo. mp 3”) player. start() Helix Summit 2007 8

Hx. Play – Incomplete Features • Support other than Linux • Support for Multiple

Hx. Play – Incomplete Features • Support other than Linux • Support for Multiple Players • Audio Formatting • Audio Visualization Helix Summit 2007 9

Hx. Record - Overview • New Python Bindings Around Producer. SDK • Target: player_kit_python_hxrecord

Hx. Record - Overview • New Python Bindings Around Producer. SDK • Target: player_kit_python_hxrecord • Producer. SDK modifications • Porting to atlas • Adding features Helix Summit 2007 10

Hx. Record - Design Goals • Match Producer. SDK workflow • Full featured •

Hx. Record - Design Goals • Match Producer. SDK workflow • Full featured • Simplicity • Merger with hxplay Helix Summit 2007 11

Hx. Record - Code Sample dictionary = { ‘plugin. Type’ : ’av. File. Input’

Hx. Record - Code Sample dictionary = { ‘plugin. Type’ : ’av. File. Input’ , ’filename’ : ’foo. avi’ } input = hxrecord. create. Input(dictionary) encodingjob. set. Input(input) Helix Summit 2007 12

Hx. Record – Roadmap • Bindings Mostly Complete • Debug Ported Producer. SDK •

Hx. Record – Roadmap • Bindings Mostly Complete • Debug Ported Producer. SDK • Merge Producer. SDK components with Atlas • Merge Hx. Record and Hx. Play Helix Summit 2007 13

Producer. SDK - Current Hierarchy Atlas Producer. SDK Media Playback Encode. SVC Class Factory

Producer. SDK - Current Hierarchy Atlas Producer. SDK Media Playback Encode. SVC Class Factory Video Output (sites) Container Classes Helix Summit 2007 14

Producer. SDK – Intermediate Step Atlas Media Playback Encode. SVC Class Factory Video Output

Producer. SDK – Intermediate Step Atlas Media Playback Encode. SVC Class Factory Video Output (sites) Container Classes Helix Summit 2007 15

Producer. SDK - Planned Hierarchy Atlas Media Playback Encode. SVC Class Factory Video Output

Producer. SDK - Planned Hierarchy Atlas Media Playback Encode. SVC Class Factory Video Output (sites) Container Classes Helix Summit 2007 16

Py. Kit - Current Hierarchy Hx. Play Hx. Record Engine Initialization Helix Summit 2007

Py. Kit - Current Hierarchy Hx. Play Hx. Record Engine Initialization Helix Summit 2007 17

Py. Kit - Planned Hierarchy Py. Kit Hx. Play Hx. Record Hx. Engine Helix

Py. Kit - Planned Hierarchy Py. Kit Hx. Play Hx. Record Hx. Engine Helix Summit 2007 18

Helix Player on the OLPC • Named “Watch and Listen” after the activity that

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 19

Watch & Listen - Screenshot Helix Summit 2007 20

Watch & Listen - Screenshot Helix Summit 2007 20

Watch & Listen - Features • • • Standard Playback Buttons Seeking via slider

Watch & Listen - Features • • • Standard Playback Buttons Seeking via slider Screen size toggles Metadata display Playlist Support Helix Summit 2007 21

The OLPC Journal • Stores a history of what a child has done •

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 22

Journal - Screenshot Helix Summit 2007 23

Journal - Screenshot Helix Summit 2007 23

W & L - Features We’d Like to Add • Visualizations for audio Playback

W & L - Features We’d Like to Add • Visualizations for audio Playback • Keyboard Shortcuts • Sharing - Collaboration among children Helix Summit 2007 24

Sharing - Overview • It’s a collaboration tool not just a laptop! • Shared

Sharing - Overview • It’s a collaboration tool not just a laptop! • Shared learning experiences Helix Summit 2007 25

Watch & Listen - Multicasting • Positives • Scales very well for 1: M

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 26

OLPC - Mesh Networking • • 802. 11 s Ad-hoc Wireless network May easily

OLPC - Mesh Networking • • 802. 11 s Ad-hoc Wireless network May easily span miles Peers may connect indirectly through other Peers Helix Summit 2007 27

W & L - Synchronized Viewing • Positives • Doesn’t require a much larger

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 28

Produce - Overview • Capture - video and audio • Encoding • Simple Video

Produce - Overview • Capture - video and audio • Encoding • Simple Video Editing • • Cropping Resizing Cutting & Joining videos Add Audio Tracks Helix Summit 2007 29

Produce - Record Mockup Helix Summit 2007 30

Produce - Record Mockup Helix Summit 2007 30

Produce - Record Screenshot Helix Summit 2007 31

Produce - Record Screenshot Helix Summit 2007 31

Produce - Editing Mockup Helix Summit 2007 32

Produce - Editing Mockup Helix Summit 2007 32

Teleconference - Overview • Audio and video Teleconferencing using Helix • Senior Capstone Project

Teleconference - Overview • Audio and video Teleconferencing using Helix • Senior Capstone Project • Year long project required for graduation Helix Summit 2007 33

Teleconference - Overview • Will use both Hx. Record & Hx. Play • 1:

Teleconference - Overview • Will use both Hx. Record & Hx. Play • 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 34

Teleconference - 1: 1 Workflow Child 1 Child 2 Producer (out) Player (in) Producer

Teleconference - 1: 1 Workflow Child 1 Child 2 Producer (out) Player (in) Producer (out) Helix Summit 2007 35

Teleconference - M: N Challenges • Every Participant adds 2 streams • Videos must

Teleconference - M: N Challenges • Every Participant adds 2 streams • Videos must be decoded and drawn to screen • Audio must be multiplexed Child 1 Child 2 Producer (out) Combined Stream Producer (in) Audio Child 3 Player (in) Helix Summit 2007 36

Teleconference – Special Requirements • All communication between laptops must use Python dbus •

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 37

Webcaster – Overview • Power. Point + Recorded Audio • Proposed project • Will

Webcaster – Overview • Power. Point + Recorded Audio • Proposed project • Will probably be done in pieces as class projects Helix Summit 2007 38

Recap • Python API – A lot of momentum • Helix On the OLPC:

Recap • Python API – A lot of momentum • Helix On the OLPC: • • Watch & Listen Produce Teleconference Audio Presentations Via Producer Helix Summit 2007 39

Questions? • Peter Krenesky • Email: Peter@osuosl. org • Web: http: //osuosl. org •

Questions? • Peter Krenesky • Email: Peter@osuosl. org • Web: http: //osuosl. org • Ribosome Targets: • Player_kit_python_hxrecord • http: //laptop. org Helix Summit 2007 40