Difference between revisions of "User:Pdherbemont"

From VideoLAN Wiki
Jump to navigation Jump to search
(Formatting.)
(Move GSoC Part to a separate page.)
 
(5 intermediate revisions by 2 users not shown)
Line 1: Line 1:
 
(Pdherbemont is Pierre d'Herbemont)
 
(Pdherbemont is Pierre d'Herbemont)
  
= Google Summer of Code 2007: Mac OS X VLC Framework =
+
I am currently working on a [[SoC_2007_Project_Mac_OS_X_Framework|Mac OS X VLC Framework]] for Google Summer of Code 2007.
I will use this wiki page to detail the work I'll do for the GSoC 2007.
 
* [http://pdherbemont.free.fr/gsoc/vlc_framework.html My original Proposal]
 
  
=== Status Summary ===
 
{| class="wikitable"
 
! Task Description !! Due Date !! Accomplished
 
|-
 
| My proposition has been accepted || N/A || {{yes}} 12/04/2007
 
|-
 
| Work on setting up a git server to publish my work.
 
See [[Git]] (thanks to [[User:Dionoea|Dionoea]]). More could be done to set up something better but that's enough for me for now ;)
 
|| 15/04/2007 || {{yes}} 13/04/2007
 
|-
 
| Implement the stub framework and the sample code that link to it.
 
See the commit on [http://git.videolan.org/cgi-bin/gitweb.cgi?p=vlc-soc.git;a=commit;h=164ffd0787906e6b6ef1be731a450d0296fde9e9 commit 1], [http://git.videolan.org/cgi-bin/gitweb.cgi?p=vlc-soc.git;a=commit;h=72e8aa87d1f2b5249e00d596ae015b049da6108d commit 2].
 
|| 15/04/2007 || {{yes}} 13/04/2007
 
|-
 
| First draft of the headers, plus partial implementation. Events, playlist, vout basic usage demo in the sample code. || 29/04/2007 || {{no}}
 
|-
 
| Auto evalutation, keeping in mind [http://pdherbemont.free.fr/gsoc/vlc_framework.html my original Proposal] . || 29/04/2007 || -
 
|}
 
 
=== Code repository ===
 
All the code I did for the GSoC is publicly stored on VideoLan's [http://git.videolan.org/cgi-bin/gitweb.cgi?p=vlc-soc.git;a=shortlog;h=pdherbemont_branch Git Repository for GSoC] on the '''pdherbemont_branch''' branch
 
=== Interrogation ===
 
==== What is the best place to put the framework sources? ====
 
I am thinking of extra/MacOSX. Any better idea? -- [[User:Pdherbemont|pdherbemont]].
 
 
= Random Thoughts =
 
= Random Thoughts =
 
== VLC.app proposition ==
 
== VLC.app proposition ==

Latest revision as of 21:14, 16 April 2007

(Pdherbemont is Pierre d'Herbemont)

I am currently working on a Mac OS X VLC Framework for Google Summer of Code 2007.

Random Thoughts

VLC.app proposition

The problem

The problem with current implementation of VLC.app and gui/macosx is that it relays on the src/vlc.c common file that set up the interface. This permit to use vlc command line and do cool vlc thing with it. However there are many troubles with gui/macosx:

  • It can't be detached, nor can be attached on the fly. Thus we can't really say that gui/macosx is a vlc interface module.
  • There is a technical conflict with Cocoa:
 Run()
 {
     [NSApp run]; /* May not exit however vlc will cleanly ends only if gui/macosx Run() ends, so this won't work */
 }

We do:

 Run()
 {
     if(setjmp(jmpbuff) == 0)
         [NSApp run]; /* May not exit */
     /* Will exit when longjmp(jmpbuff, 1) is called, then vlc will cleanly ends */
 }

Which is kind of ugly.

Proposed solution

gui/macosx shouldn't be a module interface but instead we should create a new Cocoa application (named here VLCOSX) that links to libvlc. However src/vlc.c would be still be build (named here vlc), and we'll have in the VLC.app bundle the two binary VLCOSX and vlc. VLCOSX would start the Cocoa application whereas vlc would be the real vlc that we can use with command line. VLCOSX could still be hacked to forward vlc option to libvlc, but this is really not is goal.

libvlc advanced configuration processing proposition

The problem

Currently the configuration variable are accessible from the libvlc outside by p_main_module->p_config[item_element]. But p_config (a (config_t *) ) is a tree in list, that makes it hard to process, especially to build the advanced preferences panel.

Proposed solution

  • Make config_t a tree node.
  • Add the needed function to process the p_main_module->p_config list

Mac OS X Simple pref proposition

  • Fullscreen
    • Display video on screen:
      • Window screen
      • Screen 1
      • Screen 2
      • ...
    • Crop video to screen size
    • Make other screen black in fullscreen
  • Sharing
    • Enable sharing (enable SAP and Bonjour sharing)
    • Look for shared playlist (enable SAP and Bonjour service discovery)
  • Subtitle
    • Color
    • Size
    • Effect