This site has been retired. For up to date information, see handbook.gnome.org or gitlab.gnome.org.


[Home] [TitleIndex] [WordIndex

1. Totem Chapters/Markers Plugin

My proposal for GSoC 2010 is to create Totem plugin for handling chapters/markers. Chapters act like "live" bookmarks - you can add them while watching movie. It should work like subtitles: all information is stored in a single file along with the movie. I'm using CMML format (slightly modified to handle clips' thumbnails) to store chapters in.

1.1. More Information

1.2. Getting Code

Chapters plugin is in Totem trunk now, so you can grab fresh Totem version from the git (git://git.gnome.org/totem) and test it, or you can get stuff here:

As part of my GSoC I have been developing generic table of contents for the GStreamer and Matroska chapters support based on it (see more details below). Here are repositories for that work:

Note: you'll need GTK+-3 (2.90.x) and fresh GLib for Totem building.

1.3. Weekly Reports

1.4. How the GSoC Was Going On

Well, the main aim of the proposal was to create plugin for Totem to mark time positions in the movies. To be honest, I thought that I would be working only with Totem and CMML/Annodex inside OGG container, so I read CMML, Annodex and OGG specifications at the begining of the GSoC. Moreover I thought that I would be working with OGG contatiner directly and I had written some code examples based on liboggz: to parse OGG headers, to parse CMML headers. The first part of the GSoC I spent reading docs for GLib/GObject, GTK+, OGG, CMML/Annodex, liboggz and Totem. That was exciting, but the direction of development was wrong. And that was the time of my important lesson: ask first, then do it. I spent a lot of time reading and understanding OGG format, but I haven't used it anywhere. Yeah, that knowledge may be helpful in the future, but when you have limited time you can't waste it for something you don't need. The first part of the summer I spent developing Totem chapters plugin. Thanks to my mentor Bastien Nocera it was very exciting and I knew a lot of new things, especially about GLib and GTK+. The last part of the summer (when the GUADEC has started) I spent working with GStreamer. Well, I was surprised a bit when Bastien talked me to work on Matroska chapters support, but new work means new challenge. So, some time I spent reading GStreamer docs (Application Developer Manual and Plugin Writer's Manual) and Matroska format specifications. Then I started to work on generic table of contents (TOC) support for the GStreamer (based on bug 540890). The idea was to create a generic way to handle chapters, editions, angles and multitrack files. That will help to handle Matroska chapters, too. Thanks to Sebastian Dröge (from the GStreamer team) for the great help, the work has been done smoothly and without big troubles. After I had done initial work on GstToc (generic TOC support for the GStreamer), I started to work on the Matroska chapters support (with per-chapters/editions tags) using GstToc. That work is done, but I need to finish GstToc first and make some changes to Matroska element then. But that would be after GSoC.

1.5. What Is Done

1.6. What I'm Going to Do After GSoC

1.7. What I Have Learnt During GSoC

1.8. How to Contact Me


2024-10-23 11:28