Helix On The OLPC

37
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. Summary. Python API Overview Helix Player On the OLPC: Watch & Listen - 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

SummarySummary

• Python API Overview• Helix Player On the OLPC:

• Watch & Listen

• ProducerSDK On the OLPC: • Produce• Teleconference

• Future Plans:• Audio Presentations Via Producer

Page 4: Helix On The OLPC

Helix Summit 2007 4

Pykit - OverviewPykit - Overview

• Python Modules• HxPlay• HxRecord

• Capture• Editing• Encoding

Page 5: Helix On The OLPC

Helix Summit 2007 5

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 6: Helix On The OLPC

Helix Summit 2007 6

HxPlay - OverviewHxPlay - Overview

• Ported to atlas• Target: player_kit_python• Code cleanup

• Added new features• QuickSeek• Video Site Resizing• Playlist support• Color Controls

Page 7: Helix On The OLPC

Helix Summit 2007 7

HxPlay - Player sampleHxPlay - Player sample

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

player.start()

Page 8: Helix On The OLPC

Helix Summit 2007 8

HxPlay – Incomplete HxPlay – Incomplete FeaturesFeatures

• Support other than Linux

• Support for Multiple Players

• Audio Formatting

• Audio Visualization

Page 9: Helix On The OLPC

Helix Summit 2007 9

HxRecord - OverviewHxRecord - Overview

• New Python Bindings Around ProducerSDK

• Target: player_kit_python_hxrecord

• ProducerSDK modifications• Porting to atlas• Adding features

Page 10: Helix On The OLPC

Helix Summit 2007 10

HxRecord - Design GoalsHxRecord - Design Goals

• Match ProducerSDK workflow

• Full featured

• Simplicity

• Merger with hxplay

Page 11: Helix On The OLPC

Helix Summit 2007 11

HxRecord - Code SampleHxRecord - Code Sample

dictionary = { ‘pluginType’ :

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

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

Page 12: Helix On The OLPC

Helix Summit 2007 12

HxRecord – RoadmapHxRecord – Roadmap

• Bindings Mostly Complete

• Debug Ported ProducerSDK

• Merge ProducerSDK components with Atlas

• Merge HxRecord and HxPlay

Page 13: Helix On The OLPC

Helix Summit 2007 13

ProducerSDK - Current ProducerSDK - Current HierarchyHierarchy

EncodeSVCMediaPlayback

Class Factory

Video Output (sites)

Container Classes

Class Factory

Video Output (sites)

Container Classes

Atlas ProducerSDK

Page 14: Helix On The OLPC

Helix Summit 2007 14

ProducerSDK – Intermediate ProducerSDK – Intermediate StepStep

EncodeSVCMediaPlayback

Class Factory

Video Output (sites)

Container Classes

Class Factory

Video Output (sites)

Container Classes

Atlas

Page 15: Helix On The OLPC

Helix Summit 2007 15

ProducerSDK - Planned ProducerSDK - Planned HierarchyHierarchy

EncodeSVCMediaPlayback

Class Factory

Atlas

Video Output (sites)

Container Classes

Page 16: Helix On The OLPC

Helix Summit 2007 16

PyKit - Current HierarchyPyKit - Current Hierarchy

HxRecord

EngineInitialization

HxPlay

EngineInitialization

Page 17: Helix On The OLPC

Helix Summit 2007 17

PyKit - Planned HierarchyPyKit - Planned Hierarchy

HxRecordHxPlay

HxEngine

PyKit

Page 18: Helix On The OLPC

Helix Summit 2007 18

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 19: Helix On The OLPC

Helix Summit 2007 19

Watch & Listen - Watch & Listen - ScreenshotScreenshot

Page 20: Helix On The OLPC

Helix Summit 2007 20

Watch & Listen - FeaturesWatch & Listen - Features

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

Page 21: Helix On The OLPC

Helix Summit 2007 21

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 22: Helix On The OLPC

Helix Summit 2007 22

Journal - ScreenshotJournal - Screenshot

Page 23: Helix On The OLPC

Helix Summit 2007 23

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 24: Helix On The OLPC

Helix Summit 2007 24

Sharing - OverviewSharing - Overview

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

• Shared learning experiences

Page 25: Helix On The OLPC

Helix Summit 2007 25

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 26: Helix On The OLPC

Helix Summit 2007 26

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 27: Helix On The OLPC

Helix Summit 2007 27

Produce - OverviewProduce - Overview

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

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

Page 28: Helix On The OLPC

Helix Summit 2007 28

Produce - Record MockupProduce - Record Mockup

Page 29: Helix On The OLPC

Helix Summit 2007 29

Produce - Editing MockupProduce - Editing Mockup

Page 30: Helix On The OLPC

Helix Summit 2007 30

Teleconference - OverviewTeleconference - Overview

• Audio and video Teleconferencing using Helix

• Senior Capstone Project• Year long project required for graduation

Page 31: Helix On The OLPC

Helix Summit 2007 31

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 32: Helix On The OLPC

Helix Summit 2007 32

Teleconference - 1:1 Teleconference - 1:1 WorkflowWorkflow

Child 1

Producer (out)

Player (in)

Child 2

Player (in)

Producer (out)

Page 33: Helix On The OLPC

Helix Summit 2007 33

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 34: Helix On The OLPC

Helix Summit 2007 34

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 35: Helix On The OLPC

Helix Summit 2007 35

Webcaster – OverviewWebcaster – Overview

• PowerPoint + Recorded Audio

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

Page 36: Helix On The OLPC

Helix Summit 2007 36

RecapRecap

• Python API – A lot of momentum

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

Page 37: Helix On The OLPC

Helix Summit 2007 37

Questions?Questions?

• Peter Krenesky• Email: [email protected]• Web: http://osuosl.org

• Ribosome Targets:• Player_kit_python• Player_kit_python_hxrecord

• http://laptop.org