GSoC Weekly Code Report 12

This is my last GSoC 2010 weekly report. I have mixed feelings: on one hand I'm sad that summer is over along with the GSoC, but on another hand I'm happy and proud that I had been working with such a great GNOME community. Before GSoC I was just looking at all that was happening around opensource world, especially the GNOME. I always wanted to make something useful for others, but I didn't know where to start from. And for me GSoC was like a door to the opensource world. It let me to come in, and now I don't want to go back :)

Well, this week I was working on GstToc support in the GStreamer. But there are some more good news: my Totem chapters plugin was pushed into the master branch (git commit) and now you can test it with the fresh Totem git snapshot. I'm really glad to see it there, and you are welcome to test it and to file some bug reports :) Regarding to GstToc work, there were quite a few changes. I added new GstTocSetter interface (with unit tests) similar to GstTagSetter interface, so that applications can set TOC on the pipeline via the proper tocsetter element, added copy functions for GstTocEntry and GstToc structures, removed some values from GstTocEntry, added methods to set/get time positions of the TOC entries, updated tests for GstToc and all docs. Also other fixes and improvements were done. You can track new patches in the bug report 540890.

Now I want to summarize a bit all the work I had been doing during GSoC. You can read more about my project and how the GSoC was on my project's page.

What Is Done
  • All things mentioned in my GSoC proposal except writing files with embedded chapters and overlay titles. The first one will need file transcoding, which is not cool to do inside Totem. Before GSoC I thought that it can be done without transcoding, but I was wrong. Overlay titles need some changes in Totem's GStreamer backend, and they are not so important to spend time on them.
  • Wrote my own tiny CMML parser with embedded thumbnails support using libxml2 to drop dependency for obsolete libcmml, included in the chapters plugin.
  • Started to implement generic TOC support (GstToc) in the GStreamer. Totem (and chapters plugin, too) will have great benefits from that: imagine that you can navigate through FLAC tracks from the embedded cue sheet or chapters from the Matroska file. And support for new formats in GStreamer will require almost no changes in chapters plugin (see link for separate repository on the project's page).
  • Implemented Matroska chapters support based on GstToc (see link for separate repository on the project's page). But it will require some changes because GstToc isn't stable enough.

What I'm Going to Do After GSoC
  • Improve Totem chapters plugin (some UI redesign, integration with GstToc).
  • Finish GstToc support in the GStreamer.
  • Finish Matroska chapters support after GstToc stabilization.
  • Implement GstToc support for the FLAC embedded cue sheets (I have already read FLAC specifications).
  • Look for other GStreamer elements where I can implement GstToc support to make chapters plugin more valuable.

What I Have Learnt During GSoC
  • GLib/GObject
  • GTK+
  • libxml2
  • CMML and Annodex formats
  • OGG/liboggz
  • GStreamer
  • Matroska/EBML format
  • FLAC format
  • How to work with git and bugzilla
  • Autotools a bit
  • and other coding tips & tricks

I want to say a big "thank you" to my mentor Bastien Nocera for his help, advices and guidance during this summer, to Sebastian Dröge from the GStreamer team for his great help with GstToc and Matroska, to all GSoC GNOME administrators for their hard work with us and to all those people who helped me with advices and who simply believed in my success - I tried to do my best. And also I want to thanks Google for such a great opportunity to work during this summer. I'm not saying goodbye, I just want to put a little point at the end of this summer :)

0 коммент.:

Отправить комментарий