GSoC Weekly Code Report 1

I'm reporting a bit late this week, but that's because of rather huge amount of work I had been had. This week was the first official when the code writing takes a start. Anyway, I've started a bit earlier, so I already have some fresh results :) Also I will have exams in university in June, and it's a time to get prepared now, but I'm trying to dedicate to GSoC as much time as I can. Well, what was happened this week:

  • finally, I made a new amaizing (at least I think so :)) hackergotchi and it was accepted. Thanks to Lucas Rocha for denying my first bad attempts - the last one really rocks :)

  • added ability to add/rename/remove chapters in my plugin. We discussed with Bastien some concepts related to it, so how does it work now: while watching the video you can press "Add chapter" button, video playback becomes paused, you are entering the name of a new chapter, and then playback resumes. Of course, new chapter appears in the list, with pixbuf related to it's time stamp. Here is how you can add a chapter:



    And here is a screenshot with some chapters added to the list during movie watching (yeah, that's a House M.D.:)):



    You can also remove or rename any of the chapters by clicking appropriate button. All chapters are displayed in the list by time growth. We still thinking about editing chapter's start time, maybe it would be better only to seek to chapter's time;

  • now you can also save all changes made with chapters - just click "Save" button. All chapters are stored in separated cmml file (like subtitles in srt file). But there is still a problem with saving chapters' thumbnails. There are a few ways to fix it: to cache them somewhere (but if you will transfer file with chapters onto another computer, plugin will need to regenerate all thumbnails from video file by going through it, which is not cool, however folks at GStreamer channel with Bastien suggested some ways) or to store them directly into the cmml file. For now I'm trying to utilise second approach, but there is a problem with serializing pixbuf data and storing it in cmml file. So, I'll mail to people who wrote cmml draft, maybe they can make things a bit more clear;

  • removed end time and duration attributes from the chapter - we do not need them, because chapter acts like a marker or a live bookmark;

  • started to read git manual, as well as the GTK+ / GNOME Application Developer book;

  • refactored and cleaned up code a bit.


I think it's not a time to test a plugin yet, but you can already touch it and feel how it works. Any feedback and suggestions are welcomed :) Next week I want to try to solve problem with saving thumbnails, to write some words on my wiki page and... to do some more progress on my plugin :)

4 коммент.:

James комментирует...

If you delete a chapter, will Totem skip that section of the video? Or do chapters work more like bookmarks?

asaprykin комментирует...

Yeah, chapters act like bookmarks. You can add them while watching video and then seek to any of them.

bogado комментирует...

Chapters should begin in a scene change moments, this should be easy to detect, maybe the decoder could store the last scene change (defined as a frame that is significantly different from the previous one) and the chapter would start in that position.

Other option that will not affect decoding time would be to search backwards for a frame that fits the definition of a scene change.

asaprykin комментирует...

Well, all these features are hard to implement because plugin can't work with video file via GStreamer directly - it uses Totem's API, where you have access to currently displaying frame only. Yeah, you can seek in any direction, but I think that it is not cool for user to see a slideshow while you are trying to detect scene frames...

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