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

Upload: jabari-holmer

Post on 16-Dec-2015

259 views

Category:

Documents


0 download

TRANSCRIPT

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