Difference between revisions of "SoC 2008/PanoramaViewing"

From VideoLAN Wiki
Jump to navigation Jump to search
(added to category)
 
(20 intermediate revisions by the same user not shown)
Line 1: Line 1:
 +
{{SoCProject|year=2008|student=[[User:Plouj|Michael Plounikov]]|mentor=[[User:Dionoea|Antoine Cellerier]]}}
 +
 
= Google Summer of Code 2008 =
 
= Google Summer of Code 2008 =
== QuickTime VR (panorama) Viewing ==
+
== Panorama Viewing ==
Also on this wiki: [[SoC_2008#QuickTimeVR_Playing]]
+
=== Abstract ===
=== My Commitment ===
+
The goal of this project is to make VLC a one-stop solution for viewing panoramas of various formats. Currently, FreePV is the best/only cross-platform, non-proprietary solution for viewing QuickTimeVR and plain image panoramas. However it suffers from a few drawbacks, which include difficult installation, browser plug-in conflicts and low popularity. The intent is to integrate the FreePV rendering code with VLC. This should not only automatically alleviate installation difficulty and plug-in conflicts, but also bring panorama viewing to a much larger audience.
I'm committed to work at least 40 hours per week for 3 months on this project except for the first week in April when I will be busy with final exams.
+
This project will initially focus on basic support for QTVR files and equirectangular images.
 +
 
 +
=== Detailed Description ===
 +
The way I see it, based on rudimentary knowledge of the VLC internals, is that technically this project is about writing a codec to handle QTVR and an output module for viewing frames projected onto the inside of a rotatable OpenGL sphere.
 +
 
 +
==== My Commitment ====
 +
I'm committed to work at least 40 hours per week for the duration of the GSoC on this project except for one week (to be determined) when I will be gone on vacation.
 +
 
 +
==== Collaboration with the FreePV dev team ====
 +
Since this project was born out of an explicit idea[http://thread.gmane.org/gmane.comp.video.videolan.vlc.devel/35336] from the FreePV developers and because they promised it in a private e-mail I am certain that they are willing to help me in this project as best they can.
  
=== Plan ===
+
==== Plan ====
Based on the [http://code.google.com/opensource/gsoc/2008/faqs.html#0.1_timeline GSoC 2008 timeline]
+
This plan is based on the dates in the [http://code.google.com/opensource/gsoc/2008/faqs.html#0.1_timeline GSoC 2008 timeline]
* '''March 31'''
+
* '''March 31''' - week 1
* figure out what needs to be done
+
* write e-mails to the hugin and vlc-devel mailing lists asking for suggestions/ideas
** how to modify VLC to detect QTVRs
+
* '''April 7''' - week 2
** what needs to change in VLC to display QTVRs
+
* study for exams and finish school assignments
** figure out how to write codecs for VLC
+
* write a patch for VLC
*** [[User:dionoea]] mentioned that image handling modifications are required
+
* '''April 14''' - week 3
 +
* '''April 21''' - week 4
 +
* figure out the interaction requirements for panorama viewing and how this will affect VLC as a whole
 +
* decide (along with other developers) how FreePV can be turned into a stand-alone, (separately developed or as part of the VLC projects) library that can be used by VLC to display panoramas
 +
* think about how panorama viewing fits in with VLC. Maybe it should act as a codec for QTVR files, but it should also be able to use any 2d images/frames for panoramas (act as an output module?).
 +
* make a list of QTVR functionality present in FreePV - aim to replicate this list in VLC
 +
* identify which parts of FreePV can be used as a VLC module
 +
* '''April 28''' - week 5
 +
* learn to write a codec/demuxer module
 +
* write a plant of what will need to be changed/added in/to VLC
 +
* by now I should have a good idea of how things fit together
 +
* '''May 5''' - week 6
 
* get an understanding of the QTVR format (possible start: http://developer.apple.com/documentation/QuickTime/InsideQT_QTVR/6Chap/chapter_6_section_1.html and the [http://freepv.sourceforge.net/ FreePV] code)
 
* get an understanding of the QTVR format (possible start: http://developer.apple.com/documentation/QuickTime/InsideQT_QTVR/6Chap/chapter_6_section_1.html and the [http://freepv.sourceforge.net/ FreePV] code)
* see how much of the FreePV code can be used
+
* '''May 12''' - week 7
* make a list of QTVR functionality in the order of importance to organize the implementation steps
+
* '''May 19''' - week 8
* think about turning FreePV into a library that can be used in VLC
+
* '''May 26''' - week 9 - Students begin coding for their GSoC projects;
* by now I should have a good idea of how things fit together
+
* '''June 2''' - week 10
* write a bare-minimum OpenGL QTVR viewer for VLC
+
* '''June 9''' - week 11
* '''July 14'''
+
* '''June 16''' - week 12
* do some testing
+
* '''June 23''' - week 13
* get feedback
+
* libfreepv should exist and be usable in VLC
* keep extending the basic functionality until time runs out
+
* '''June 30''' - week 14
 +
* simple QTVRs should be viewable by now
 +
* '''July 7''' - week 15
 +
* '''July 14''' - week 16 - Mid-term evaluations deadline;
 +
* '''July 21''' - week 17
 +
* should be able to view image (.PNG, .JPG,...) panoramas
 +
* '''July 28''' - week 18
 +
* should support a number of different projections and do everything that FreePV can with QTVR
 +
* '''August 4''' - week 19
 +
* '''August 11''' - week 20
 
* '''August 18'''
 
* '''August 18'''
  
=== What to do about plain image (JPG, PNG) panoramas? ===
+
==== Module Options ====
* can't really detect that an image is a panorama without any hints
+
* type of panorama: equirectangular,cylindrical,littleplanet,cubic...
** command line: let the user specify what type of panorama the supplied image(s) is(are) using a --panorama={equirectangular,cylindrical,littleplanet,...} switch
+
* default FOV aka zoom
** GUI a special open dialog for loading panoramas - the user specifies what type of panorama is expected using a drop down box
 

Latest revision as of 19:09, 22 April 2008

This project is part of Google Summer of Code 2008.
Student: Michael Plounikov
Mentor: Antoine Cellerier

Google Summer of Code 2008

Panorama Viewing

Abstract

The goal of this project is to make VLC a one-stop solution for viewing panoramas of various formats. Currently, FreePV is the best/only cross-platform, non-proprietary solution for viewing QuickTimeVR and plain image panoramas. However it suffers from a few drawbacks, which include difficult installation, browser plug-in conflicts and low popularity. The intent is to integrate the FreePV rendering code with VLC. This should not only automatically alleviate installation difficulty and plug-in conflicts, but also bring panorama viewing to a much larger audience. This project will initially focus on basic support for QTVR files and equirectangular images.

Detailed Description

The way I see it, based on rudimentary knowledge of the VLC internals, is that technically this project is about writing a codec to handle QTVR and an output module for viewing frames projected onto the inside of a rotatable OpenGL sphere.

My Commitment

I'm committed to work at least 40 hours per week for the duration of the GSoC on this project except for one week (to be determined) when I will be gone on vacation.

Collaboration with the FreePV dev team

Since this project was born out of an explicit idea[1] from the FreePV developers and because they promised it in a private e-mail I am certain that they are willing to help me in this project as best they can.

Plan

This plan is based on the dates in the GSoC 2008 timeline

  • March 31 - week 1
  • write e-mails to the hugin and vlc-devel mailing lists asking for suggestions/ideas
  • April 7 - week 2
  • study for exams and finish school assignments
  • write a patch for VLC
  • April 14 - week 3
  • April 21 - week 4
  • figure out the interaction requirements for panorama viewing and how this will affect VLC as a whole
  • decide (along with other developers) how FreePV can be turned into a stand-alone, (separately developed or as part of the VLC projects) library that can be used by VLC to display panoramas
  • think about how panorama viewing fits in with VLC. Maybe it should act as a codec for QTVR files, but it should also be able to use any 2d images/frames for panoramas (act as an output module?).
  • make a list of QTVR functionality present in FreePV - aim to replicate this list in VLC
  • identify which parts of FreePV can be used as a VLC module
  • April 28 - week 5
  • learn to write a codec/demuxer module
  • write a plant of what will need to be changed/added in/to VLC
  • by now I should have a good idea of how things fit together
  • May 5 - week 6
  • get an understanding of the QTVR format (possible start: http://developer.apple.com/documentation/QuickTime/InsideQT_QTVR/6Chap/chapter_6_section_1.html and the FreePV code)
  • May 12 - week 7
  • May 19 - week 8
  • May 26 - week 9 - Students begin coding for their GSoC projects;
  • June 2 - week 10
  • June 9 - week 11
  • June 16 - week 12
  • June 23 - week 13
  • libfreepv should exist and be usable in VLC
  • June 30 - week 14
  • simple QTVRs should be viewable by now
  • July 7 - week 15
  • July 14 - week 16 - Mid-term evaluations deadline;
  • July 21 - week 17
  • should be able to view image (.PNG, .JPG,...) panoramas
  • July 28 - week 18
  • should support a number of different projections and do everything that FreePV can with QTVR
  • August 4 - week 19
  • August 11 - week 20
  • August 18

Module Options

  • type of panorama: equirectangular,cylindrical,littleplanet,cubic...
  • default FOV aka zoom