Helix On The OLPC

40
Helix Summit 2007 Helix On The OLPC Helix On The OLPC Python Extensions of Helix

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 Presentation

Transcript of Helix On The OLPC

Page 1: Helix On The OLPC

Helix Summit 2007

Helix On The OLPCHelix On The OLPC

Python Extensions of Helix

Page 2: Helix On The OLPC

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

Page 3: Helix On The OLPC

Helix Summit 2007 3

ForewordForeword

•OLPC is a very unique device

•Its is not just a “laptop”

Page 4: Helix On The OLPC

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

Page 5: Helix On The OLPC

Helix Summit 2007 5

Pykit - OverviewPykit - Overview

• Python Modules• HxPlay• HxRecord

• Capture• Editing• Encoding

Page 6: Helix On The OLPC

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

Page 7: Helix On The OLPC

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

Page 8: Helix On The OLPC

Helix Summit 2007 8

HxPlay - Player sampleHxPlay - Player sample

Import hxplayhxplay.init()player = hxplay.open(“foo.mp3”)

player.start()

Page 9: Helix On The OLPC

Helix Summit 2007 9

HxPlay – Incomplete HxPlay – Incomplete FeaturesFeatures

• Support other than Linux

• Support for Multiple Players

• Audio Formatting

• Audio Visualization

Page 10: Helix On The OLPC

Helix Summit 2007 10

HxRecord - OverviewHxRecord - Overview

• New Python Bindings Around ProducerSDK

• Target: player_kit_python_hxrecord

• ProducerSDK modifications• Porting to atlas• Adding features

Page 11: Helix On The OLPC

Helix Summit 2007 11

HxRecord - Design GoalsHxRecord - Design Goals

• Match ProducerSDK workflow

• Full featured

• Simplicity

• Merger with hxplay

Page 12: Helix On The OLPC

Helix Summit 2007 12

HxRecord - Code SampleHxRecord - Code Sample

dictionary = { ‘pluginType’ :

’avFileInput’ , ’filename’ : ’foo.avi’

}input = hxrecord.createInput(dictionary)encodingjob.setInput(input)

Page 13: Helix On The OLPC

Helix Summit 2007 13

HxRecord – RoadmapHxRecord – Roadmap

• Bindings Mostly Complete

• Debug Ported ProducerSDK

• Merge ProducerSDK components with Atlas

• Merge HxRecord and HxPlay

Page 14: Helix On The OLPC

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

Page 15: Helix On The OLPC

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

Page 16: Helix On The OLPC

Helix Summit 2007 16

ProducerSDK - Planned ProducerSDK - Planned HierarchyHierarchy

EncodeSVCMediaPlayback

Class Factory

Atlas

Video Output (sites)

Container Classes

Page 17: Helix On The OLPC

Helix Summit 2007 17

PyKit - Current HierarchyPyKit - Current Hierarchy

HxRecord

EngineInitialization

HxPlay

EngineInitialization

Page 18: Helix On The OLPC

Helix Summit 2007 18

PyKit - Planned HierarchyPyKit - Planned Hierarchy

HxRecordHxPlay

HxEngine

PyKit

Page 19: Helix On The OLPC

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

Page 20: Helix On The OLPC

Helix Summit 2007 20

Watch & Listen - Watch & Listen - ScreenshotScreenshot

Page 21: Helix On The OLPC

Helix Summit 2007 21

Watch & Listen - FeaturesWatch & Listen - Features

• Standard Playback Buttons• Seeking via slider• Screen size toggles• Metadata display• Playlist Support

Page 22: Helix On The OLPC

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

Page 23: Helix On The OLPC

Helix Summit 2007 23

Journal - ScreenshotJournal - Screenshot

Page 24: Helix On The OLPC

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

Page 25: Helix On The OLPC

Helix Summit 2007 25

Sharing - OverviewSharing - Overview

• It’s a collaboration tool not just a laptop!

• Shared learning experiences

Page 26: Helix On The OLPC

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

Page 27: Helix On The OLPC

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

Page 28: Helix On The OLPC

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

Page 29: Helix On The OLPC

Helix Summit 2007 29

Produce - OverviewProduce - Overview

• Capture - video and audio• Encoding• Simple Video Editing

• Cropping• Resizing• Cutting & Joining videos• Add Audio Tracks

Page 30: Helix On The OLPC

Helix Summit 2007 30

Produce - Record MockupProduce - Record Mockup

Page 31: Helix On The OLPC

Helix Summit 2007 31

Produce - Record Produce - Record ScreenshotScreenshot

Page 32: Helix On The OLPC

Helix Summit 2007 32

Produce - Editing MockupProduce - Editing Mockup

Page 33: Helix On The OLPC

Helix Summit 2007 33

Teleconference - OverviewTeleconference - Overview

• Audio and video Teleconferencing using Helix

• Senior Capstone Project• Year long project required for graduation

Page 34: Helix On The OLPC

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

Page 35: Helix On The OLPC

Helix Summit 2007 35

Teleconference - 1:1 Teleconference - 1:1 WorkflowWorkflow

Child 1

Producer (out)

Player (in)

Child 2

Player (in)

Producer (out)

Page 36: Helix On The OLPC

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

Page 37: Helix On The OLPC

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

Page 38: Helix On The OLPC

Helix Summit 2007 38

Webcaster – OverviewWebcaster – Overview

• PowerPoint + Recorded Audio

• Proposed project • Will probably be done in pieces as class projects

Page 39: Helix On The OLPC

Helix Summit 2007 39

RecapRecap

• Python API – A lot of momentum

• Helix On the OLPC: • Watch & Listen• Produce• Teleconference• Audio Presentations Via Producer

Page 40: Helix On The OLPC

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