Skip to main content

Introduction: GSoC with CCExtractor

CCExtractor has been selected as Organisation in Google Summer of Code program. For those of you don't know Google Summer of Code is a global coding program focused on bringing more student developers into open source software development. Know more!
CCExtractor is a Closed Captions Extractor from various video formats and live streams, a project led by Mr. Carlos Fernandez Sanz. CCExtractor might be a small project as seen from the perspective of codebase in comparison with other big Open Source projects but is indeed a powerful tool and has a great potential to be used as a software and to evolve to something greater. Know More!

This is my first blog post related to my Google Summer of Code project with CCExtractor. I would be working on Cross Platform GUI for CCExtractor using NUKLEAR library. I've been assigned two mentors for my project, Mr. Willem Van Iseghem and Mr. Evgeny Shulgin  who will guide me and review my ideas. CCExtractor currently has cross platform GUI made in Qt and a Windows specific GUI. My task aims to unify everything. Unlike Qt, which incurs many dependencies to make it work as a cross platform application, Nuklear is a single header library that  incurs no dependency to draw widgets but has many options choose from as render back-end for Windowing. The main GUI logic will be independent of any render back-end code.  Since, official coding period begins on 30th May, I'm currently doing self practice with Nuklear on different platforms and interacting with Mentors on how to bring about the changes in the best way possible.

Comments

Popular posts from this blog

Final: GSoC complete!

Pheww! Finally the "Final Evaluation". Everything went as planned. All the things were done according to proposal. Even my mentor was happy with my performance and wrote "The main thing that I should say is that is the student did the job well. Everything that was planned in the proposal is done. I can say that it was a good experience, because my student tried to do his job as best as possible. Mayank Gupta has an excellent communication with our organization and me, worked actively along the summer, and showed good performance.
 The work included creating a multi-platform application, working with threads, and thorough testing - all these components have been implemented good. As the side effect, Mayank even found bugs in the popular GUI library. So, it was absolutely a good summer of coding." It was a great summer of coding. You can find my final gist on project here.

Phase I Evaluation

I passed. At first the tasks seemed too daunting and intimidating to complete. When I framed the proposal, I didn't know how tough (or easy) it'll be to implement because didn't have any experience in Nuklear Library (the GUI library). But when I actually started learning Nuklear Library, I realised, maybe I over-claimed somethings for Phase I evaluation. But got past every Hurdle and I passed.

I implemented fully working Basic mode of the CCExtractor GUI and partially working Advanced Mode of CCExtractor GUI. Partial in the sense that, there are many setting and tweaking options in CCExtractor, all of them aren't available, yet. But basic Input and Output tweak settings are available.

This is how it looks so far:

->Main Screen, as soon as the GUI is launched.



->When "Advanced Mode" is checked. The upper row is populated with Tabs corresponding to specific genre of settings.


-> Input tab has the basic input options. (Advanced options would be in …

Official Coding Period Begins

Official Coding period started on May 30, 2017 at 2130 Hours IST. I have learned a lot about Nuklear Library. I did a lot of self practice. In Nuklear, the layouts are used row by row instead of defining layout for a specific window at once. It took a while to figure me out how the layout actually works without any documentation. Moreover, there are a lot of layouts to select depending upon your GUI design so you have a lot of feasibility.
I'm planning to use combination of different layouts (Static, Dynamic and Layout element Stack) for the main screen of GUI, planning for the rest of the screens is work in progress. I've practiced all the layouts but haven't practiced writing custom layouts ( because most probably already provided layouts would suffice). I practiced making a tabbed view (as proposed in GSoC proposal) using buttons in Nuklear library, since an actual tabbed view isn't already written in the library. I also tried to understand and practiced making a c…