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

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

Transcript of Helix Summit 2007 Helix On The OLPC Python Extensions of Helix.

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

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 4

Pykit - OverviewPykit - Overview

• Python Modules• HxPlay• HxRecord

• Capture• Editing• Encoding

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

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

Helix Summit 2007 7

HxPlay - Player sampleHxPlay - Player sample

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

player.start()

Helix Summit 2007 8

HxPlay – Incomplete HxPlay – Incomplete FeaturesFeatures

• Support other than Linux

• Support for Multiple Players

• Audio Formatting

• Audio Visualization

Helix Summit 2007 9

HxRecord - OverviewHxRecord - Overview

• New Python Bindings Around ProducerSDK

• Target: player_kit_python_hxrecord

• ProducerSDK modifications• Porting to atlas• Adding features

Helix Summit 2007 10

HxRecord - Design GoalsHxRecord - Design Goals

• Match ProducerSDK workflow

• Full featured

• Simplicity

• Merger with hxplay

Helix Summit 2007 11

HxRecord - Code SampleHxRecord - Code Sample

dictionary = { ‘pluginType’ :

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

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

Helix Summit 2007 12

HxRecord – RoadmapHxRecord – Roadmap

• Bindings Mostly Complete

• Debug Ported ProducerSDK

• Merge ProducerSDK components with Atlas

• Merge HxRecord and HxPlay

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

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

Helix Summit 2007 15

ProducerSDK - Planned ProducerSDK - Planned HierarchyHierarchy

EncodeSVCMediaPlayback

Class Factory

Atlas

Video Output (sites)

Container Classes

Helix Summit 2007 16

PyKit - Current HierarchyPyKit - Current Hierarchy

HxRecord

EngineInitialization

HxPlay

EngineInitialization

Helix Summit 2007 17

PyKit - Planned HierarchyPyKit - Planned Hierarchy

HxRecordHxPlay

HxEngine

PyKit

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

Helix Summit 2007 19

Watch & Listen - Watch & Listen - ScreenshotScreenshot

Helix Summit 2007 20

Watch & Listen - FeaturesWatch & Listen - Features

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

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

Helix Summit 2007 22

Journal - ScreenshotJournal - Screenshot

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

Helix Summit 2007 24

Sharing - OverviewSharing - Overview

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

• Shared learning experiences

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

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

Helix Summit 2007 27

Produce - OverviewProduce - Overview

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

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

Helix Summit 2007 28

Produce - Record MockupProduce - Record Mockup

Helix Summit 2007 29

Produce - Editing MockupProduce - Editing Mockup

Helix Summit 2007 30

Teleconference - OverviewTeleconference - Overview

• Audio and video Teleconferencing using Helix

• Senior Capstone Project• Year long project required for graduation

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

Helix Summit 2007 32

Teleconference - 1:1 Teleconference - 1:1 WorkflowWorkflow

Child 1

Producer (out)

Player (in)

Child 2

Player (in)

Producer (out)

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

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

Helix Summit 2007 35

Webcaster – OverviewWebcaster – Overview

• PowerPoint + Recorded Audio

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

Helix Summit 2007 36

RecapRecap

• Python API – A lot of momentum

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

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