GSoC Weekly Code Report 8

Wow, another week has gone :) Enormous heat is continuing to terrorize Saint Petersburg, it is really hot hear :) Well, the summer is going on. This week I was working on GStreamer's table of contents (TOC) implementation. First of all, I moved all code related to generic TOC manipulation into the separate module (called GstToc for now). Of course, there were discussions with Sebastian Dröge about best way to do it. Main structures were changed a bit, too (e.g. titles are merged with tags list). There are four public functions now - to create/free TOC and it's entries. That's all. So, you can fill structures in free way and send them later.

Next, I was writing GTK-Doc comments to create GstToc section in GStreamer reference manual. Well, now it looks quite nice, I think. I hope it would be helpful. Also I added new GstEvent and GstMessage for sending and parsing TOC events and messages. Usage is rather common who is known with GStreamer: gst_event_new_toc () and gst_event_parse_toc () for the TOC events, gst_message_new_toc () and gst_message_parse_toc () for the TOC messages. After reading manual for Check unit testing framework I wrote test for GstToc serialization into GstStructure and back. I added this test to the Gstreamer's set of test cases. I need to say that unit testing rocks :) It is much easier to test changes (especially large-scale changes) with unit testing, and it helps me to find some regressions during code writing.

Also I was working on Matroska's TOC implementation. Now Matroska demuxer fully supports GstToc features except handling per-chapter/edition/toc tags. I cleaned up my code and made some optimizations to make it a bit faster, thanks to Sebastian's advices. And at the end of the week I spent some time to update and rebuild core libraries I need to work with. After some initial reviews made by Sebastian, I attached the set of patches to appropriate bug reports: #540890 and #481070. Now I'm waiting for the further reviews :) Anyway, you can test them with latest git versions of GStreamer.

As for my planning, the things were changed right on the road. Working on code integration with such a large project as GStreamer takes much more time I thought before. So I spent most of the time for code clean up, moving it to the appropriate place, writing docs and tests. I have to admit that my planning was not quite accurate, but I think that the amount of work done is quite well. Next week I will continue to work on TOC integration into the GStreamer and to fix any related issues. Also I have some ideas how I can improve Totem chapters plugin and I want to work on it a bit. And I'm planning to start working on TOC support in Matroska muxer (hope I will have time for that). Cya ;)

0 коммент.:

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