Totem Chapters Plugin - Weekly Report 7



Hey guys,

here is my weekly report #7 (see text version below):
http://axsaprykin.blogspot.com/2010/07/gsoc-weekly-code-report-7.html

==============
     text version
==============
This week was very hard to work due to extremely hot in St.
Petersburg. Sometimes head was boiling up, and only cold water had
been saving situation a bit :) Especially it was hard in public
conveyances when there were a lot of people. It was hard to be at
home, too. I really wanna winter back now :) I'm a bit late with my
report, but that's because I wanted to finish some stuff before doing
it. All my free time I worked at GStreamer generic chapters support
and it's implementation in Matroska element. And I have some cool
results to report:

    * first of all, I was reading EBML and Matroska specifications,
and tried to understand how Matroska element in GStreamer works;

* discussed with Sebastian Dröge design of generic chapters -
structures and working principles. It can be changed at any time, but
for now chapters described using two structures - GstTocInfo and
GstTocEntryInfo:

      typedef struct _GstTocInfo {
        GList *subentries;
        GstTagList *tags;
        gboolean updated;
      } GstTocInfo;

      typedef struct _GstTocEntryInfo {
        GstTocEntryType type;
        GstFormat format;
        gint64 start;
        gint64 stop;
        GList *subentries;
        GstTagList *titles;
        GstTagList *tags;
      } GstTocEntryInfo;


      First describes table of contents (TOC), and the last one
describes entry in the TOC. As you can see, they are pretty clear to
understand. Entries can be recursively included. For now entry can be
either edition (or angle, or alternative) or chapter. Tags can be
either entry specific or TOC specific. Also there can be multiple
titles for entry (for example, in different languages). All that you
need if you want to implement chapters support in any of GStreamer
elements is to proper fill these structures and link them together
which isn't hard to do. But we can't send these structures via
GStreamer message bus or in event, so I've written some helper
functions for converting full TOC structure into the GstStructure (and
vice versa for easier usage of chapters in applications) which can be
used for sending as a tag or as event. Thanks to Sebastian Dröge for
reviewing my code and giving me advices :) The work on generic
chapters is continuing;

    * also I had been working on implementing generic chapters support
in Matroska GStreamer element (demuxer only) and it's almost done.
I've tested parsing on some complex test cases and it worked well.
Anyway, it needs more intensive testing. In case of success it would
be possible to add Matroska chapters support right in my Totem
chapters plugin, which sounds cool for me :)

That's I was working on. I've done all plans from my last week except
working on my chapters plugin, but I'm collecting some ideas how I can
improve it in future :) Next week I want to continue working on
generic chapters support, to improve it's implementation in Matroska
demuxer (add per-edition/chapter/toc tags) and to start working on
implementing generic chapters in Matroska muxer. I have a lot of work
to do :)

==============================

Sorry for no git log, but I've not yet created repository with
GStreamer branch I'm working on, but the code is under heavy
development and is very messy in some parts, so I'll try to create
repository next time.


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]