SoC 2008/OS X Integration

From VideoLAN Wiki
Jump to navigation Jump to search
This project is part of Google Summer of Code 2008.
Student: Eric Dudiak
Mentor: Felix Paul Kühne

Mac OS X (Leopard) Integration

Abstract

Unlike Windows and Linux, Mac OS X does not offer much in terms of alternatives to its built-in QuickTime media player. VLC media player represents the only Mac media player with significant support for various media formats and a tight integration with the OS, including a "Mac-like" user interface. As it is the only full, viable alternative to QuickTime on the Mac OS X platform, it is important that it stay current with various Mac technologies to offer users a comprehensive option for media playback.

Aspects of tighter Mac OS X integration:

  • Quick Look Generator for Leopard (to generate thumbnails and full media previews from the Finder)
  • Making most common preferences accessible in a Mac-style preference window organized with icon tabs across the top such as in Safari and Mail.
  • Moving the Readme document and other help resources into a HelpViewer HTML document to allow better help searching in Leopard.
  • Improvements in steaming server wizard to be more in-line with other Mac wizards and easier to use for personal streaming between Macs.
  • Add better support for package files that contain media VLC can play, such as iMovie Projects and EyeTV recordings.
  • Update the VLC file icons to the 512 by 512 size for Leopard.

Detailed Description

This project will use the libraries provided by Apple for creating a Quick Look Generator. Due to various restrictions placed on these by Apple, the method for generating the live preview may use the mozilla plugin if no better alternative can be found. Creating these enhancements will require a combination of C and Objective-C. The Quick Look function should generate a thumbnail when simply browsing the Finder or viewing with CoverFlow and should provide full playback when the spacebar is pressed (which actually opens the Quick View). For those not familiar with the details of Mac OS X, Apple provides very specific models for Human-Computer Interaction (HCI) defined in documents on their developer site. In addition to providing the Quick Look functionality, I will be attempting to bring VLC more in line with these usability guidelines. This will include updating the preferences window to have a more Mac OS X feel and organization to it for at least the most fundamental set of preferences (with the rest to be accessible in the traditional way). I will also be moving some of the documentation into HelpViewer format to allow easy searching of it directly from the menu bar in Leopard. Also, I will be designing a new Streaming/Transcoding Wizard that better matches the Mac OS X wizard look and feel, such as the in the Bluetooth Setup Assistant or Network Setup Assistant. The new icons should look more like other modern Mac OS X file icons since the current ones more closely resemble icons found in the Mac OS X Public Beta. These new icons should be included for several of the formats that are newer to VLC (and were not supported when the old icons were made) and should differentiate between types (audio vs. video) in the icon style.

Development Plan

  • Research both Apple and community documentation on Quick Look Generators.
  • Attempt to create a simple, dynamic Quick Look Generator to test the ability to create such generators.
  • Failing that, create a simple Quick Look Generator that uses a custom WebKit plugin.
  • Move to developing a Quick Look Generator for VLC that uses whichever method was more successful.
  • Create Quick Look Generator that plays at least one VLC media format (no controls yet, just basic playback).
  • Add support for additional formats.
  • Add thumbnail generation for supported formats.
  • Add basic playback controls (play/pause, possibly mute and scrubber)
  • If ahead of schedule, add support for displaying relevant metadata, such as ID3 tags for MP3 files.
  • Create new Mac OS X icon files.
  • Evaluate icons/Quick View with community and sample end users.
  • Create prototype for preference window.
  • Perform think aloud evaluation on prototype.
  • Refine prototype.
  • Build fully functional version in VLC.
  • Create HelpViewer readme file and possibly other documentation.
  • Create prototype for streaming wizard.
  • Perform think aloud evaluation on prototype.
  • Refine prototype.
  • Build fully functional version in VLC.
  • Find package files that contain VLC-compatible media.
  • Develop parsing in VLC for these formats.

Weekly Schedule

This schedule only includes coding plans for about a month going forward because I will have to asses what has been completed of my plan for each week before planning additional weeks. It does, however, include all known conflicts for the entire period.
Week 1 (May 26 – May 30)

  • Review Apple documentation for Quick Look development
  • Review potential of VLCkit
  • Review potential of VLC WebKit plugin
  • Start building Quick Look Generator

Completed:

  • Review Apple documentation
  • Decided to start development with the VLC WebKit/Mozilla plugin
  • Started coding on the generator

Week 2 (June 2 – June 6)

  • Finish alpha Quick Look Generator for previews

Completed:

  • Alpha not yet ready. Will continue work into week 3.

Week 3 (June 9 – June 13)

  • Add thumbnail support
  • Finish preview work from week 2.

Week 4 (June 16 – June 20)

  • Refine controls/appearance for Quick Look.
  • Create new icons
  • Evaluate Quick Look and icons

Week 5 (June 23 – June 27)
Week 6 (June 30 – July 4)

  • Away late in week (still online, just unlikely able to work)

Week 7 (July 7 – July 11)

  • Away early in week (still online, just unlikely able to work)
  • Midterm evalutation

Week 8 (July 14 – July 18)
Week 9 (July 21 – July 25)
Week 10 (July 28 – August 1)
Week 11 (August 4 – August 8)
Week 12 (August 11 – August 15)

  • Wrap up coding

After August 15

  • August 16: Leave for California (Apple Cocoa Camp)
  • August 24: Leave for Sweden (Study Abroad Semester)
  • Final evaluation

Note: I will still be within contact after leaving for Sweden. Also, since this is past the end of coding date (August 11 week), I should not have any problems not having a work visa. I will still be able to complete the final evaluation before September 1.