Okay, so this is the version of the application I will be submitting to the
PSF tomorrow.

Let me know if you think its lacking in anything, or needs anything else.

-Tyler

-- 
Visit my blog at http://oddco.ca/zeroth/zblog
About You
=========

1a) Tyler Laing

1b) Contact information: 
        [email protected]
        [email protected]
        AIM: zerothofthelaw
        MSN and Hotmail: [email protected]
        Meebo: Locus

1c) Time zone: PDT and language preferred is English. 


1d) Time commitment: 
        Over the three month period, I would devote at least 40 hours or more 
to the project. About the only other time commitment I'd have would be my 
birthday, and a few spare-time projects. But otherwise, the GSoC project would 
be my job for the three months.

1e) Programming experience:
        ~6 years programming in Python
        ~2 years programming in C
        ~4 years programming in Java(not willingly, mind you!)
        Spent the better part of a year working on a mud with Nakedmud 
(http://homepages.uc.edu/~hollisgf/nakedmud.html) No successful mud 
unfortunately, due to dissatisfaction with the mud design.
        Contributed information and decompilation data from the firmware of an 
mp3 player I had for rockbox.org
        By the time GSoC starts, I will have 3 group projects under my belt, 
all three involving design documents, specifications processes, and the use of 
svn.
        A couple of terms experience with MIPS assembly language(I'm even a 
teaching assistant for the class!)
        Contributed python development documents to the OpenMoko wiki

1f) Pygame experience:
        Simple and buggy clone of breakout
        Two different map editors
        A particle engine

1g) Other skills and experience:
        Experience with svn and version control systems
        Excellent non-fiction writing skills
        Experienced with technical communication, via mediums like forums, 
mailing lists, and irc.
        Three years running Linux. I do have windows on a guest VM for the 
rare(very rare) times I need windows. So I can produce packages for *nix and 
Windows.
        Pretty good at error-fixing
        Good sense of humor
        I also speak with a slight but definite Canadian accent. Make of that 
what you will, eh?
        I'm a pretty damn good cook, if I say so myself.
        

About Your Project
==================

2a) Please explain in 2 to 3 paragraphs the project you intend to complete.
        My proposed project is to add full movie support to the pygame 
libraries. This would be done by writing a wrapper around the ffmpeg libraries. 
One possible method is using the SDL_ffmpeg wrapper that is already under 
active development. The development process would entail studying the ffmpeg 
library to see what it is capable of, to ensure as many features as possible 
are available to pygame.
        
        Then, the project would begin working on a C wrapper for either 
SDL_ffmpeg or ffmpeg itself, to allow it to be loaded into Python. The initial 
focus would be on enabling the most basic features, leaving the other wrapper 
functions as stubs. AS development progresses, alternating between filling in 
the stubs and fixing bugs, more features would be enabled.

2b) What existing or future need does your proposed project fulfill?
        Currently, pygame's movie support has become unstable, through no fault 
of their own. For developers wishing to make a complete game with cutscenes, 
this is frustrating. This project is meant to fulfill the need of the pygame 
community for a good movie player module, thus improving the potential quality 
of games and apps made with pygame. In addition, with proper design, the movie 
module could be integrated on its own into other python projects, for example 
creating a high-quality media player, or even a media editing program. Such a 
module would definitely help bolster Python's reputation for having a module 
for everything. 

2c) Provide a rough timeline for how you intend to complete your project,
    test it, and document it within the allotted time period.
        Week 1: Examine ffmpeg and SDL_ffmpeg libraries to determine the depth 
of features available. At this point, either SDL_ffmpeg or ffmpeg would be 
picked.
        Week 2: Develop User stories for the movie module. This will allow me 
to develop interactive acceptance tests of the module, ensuring the module 
satisfies the user stories.
                As well, unit tests and performance tests would be developed 
for the most basic functionality, that of loading media, and then playing the 
media.       
        Week 3: Media loading wrappers
        Week 4: Most basic movie playback wrappers
        Week 5: Extend movie playback wrappers
        Week 6: Develop further unit, performance, and acceptance tests. Clean 
up documentation. Alpha Release.
        Week 7: Add further ffmpeg features, like sound channels.
        Week 8: Develop further unit, performance, and acceptance tests for new 
features. Add more documentation.
        Week 9: Evaluate and refactor api with feedback from community and 
mentor
        Week 10: Add further features, fix bugs and errors that show up.
        Week 11: Begin packaging process for *nix and hopefully Windows.
        Week 12: Code freeze, final week of testing. Beta Release.

-As a note, in case ffmpeg breaks badly on another platform, the api would be 
library neutral, so another codec library could be substituted if necessary. 
Ideally the majority of the code would be library neutral, in case ffmpeg or 
sdl_ffmpeg does not fit the needs of Python and Pygame.

2d) Describe how you have brought your project proposal to the Pygame
    community, their reactions to your proposal, and revisions you have
    made based on those reactions. (hint:  this is something you really
    want to do before submitting your application)
        
        I posted on both the pygame and python mailing lists, and received a 
lot of great support. Offers of help with the application, and advice for the 
application progress were given. Once a draft application was submitted to 
volunteers, they offered advice on the schedule, and further questions on 
skills and knowledge I had not thought to put in.

Reply via email to