<div dir="ltr">I hope I'm not too late with this.This is following matej's idea for adding m4b chapter and cue sheet support in amarok. Also, I don't have many bug fixes to show for, I can see my chances of getting in are greatly hindered by it. would any bug fix in the final few days make a change? <div>
<br></div><div style>Any comments/reviews would be really helpful. Thanks in advance.</div><div style><br></div><div style><b id="docs-internal-guid-51c8ee3c-51a8-9f58-6486-31077aee3db7" style="color:rgb(0,0,0);font-family:'Times New Roman';font-weight:normal"><p dir="ltr" style="font-size:medium;line-height:1.4625;margin-top:0pt;margin-bottom:0pt">
<span style="font-size:16px;font-family:Arial;font-weight:bold;vertical-align:baseline;white-space:pre-wrap">Basic Details:</span></p><br><span style="font-size:13px;font-family:Arial;font-weight:bold;vertical-align:baseline;white-space:pre-wrap"></span><p dir="ltr" style="font-size:medium;line-height:1.4625;margin-top:0pt;margin-bottom:0pt">
<span style="font-size:13px;font-family:Arial;vertical-align:baseline;white-space:pre-wrap">Name: Abhinandan Ramaprasath</span></p><p dir="ltr" style="font-size:medium;line-height:1.4625;margin-top:0pt;margin-bottom:0pt">
<span style="font-size:13px;font-family:Arial;vertical-align:baseline;white-space:pre-wrap">Email Address: <a href="mailto:abhiin1947@gmail.com">abhiin1947@gmail.com</a></span></p><p dir="ltr" style="font-size:medium;line-height:1.4625;margin-top:0pt;margin-bottom:0pt">
<span style="font-size:13px;font-family:Arial;vertical-align:baseline;white-space:pre-wrap">Freenode IRC Nick: abhiin1947</span></p><p dir="ltr" style="font-size:medium;line-height:1.4625;margin-top:0pt;margin-bottom:0pt">
<span style="font-size:13px;font-family:Arial;vertical-align:baseline;white-space:pre-wrap">IM Service and Username: Gtalk - abhiin1947</span></p><p dir="ltr" style="font-size:medium;line-height:1.4625;margin-top:0pt;margin-bottom:0pt">
<span style="font-size:13px;font-family:Arial;vertical-align:baseline;white-space:pre-wrap">Location (City, Country and/or Time Zone): Chennai, India, UTC+05:30</span></p><br><span style="font-size:13px;font-family:Arial;vertical-align:baseline;white-space:pre-wrap"></span><p dir="ltr" style="font-size:medium;line-height:1.4625;margin-top:0pt;margin-bottom:0pt">
<span style="font-size:16px;font-family:Arial;font-weight:bold;text-decoration:underline;vertical-align:baseline;white-space:pre-wrap">Proposal Title: </span></p><p dir="ltr" style="font-size:medium;line-height:1.4625;margin-top:0pt;margin-bottom:0pt;text-align:center">
<span style="font-size:16px;font-family:Arial;font-weight:bold;vertical-align:baseline;white-space:pre-wrap">Implementing Unified CUE sheet and chapter support in Amarok</span><span style="font-size:16px;font-family:Arial;vertical-align:baseline;white-space:pre-wrap"></span></p>
<p dir="ltr" style="font-size:medium;line-height:1.4625;margin-top:0pt;margin-bottom:0pt"><span style="font-size:13px;font-family:Arial;vertical-align:baseline;white-space:pre-wrap"> </span></p><p dir="ltr" style="font-size:medium;line-height:1.4625;margin-top:0pt;margin-bottom:0pt">
<span style="font-size:16px;font-family:Arial;font-weight:bold;text-decoration:underline;vertical-align:baseline;white-space:pre-wrap">Implementation Details:</span></p><p dir="ltr" style="font-size:medium;line-height:1.4625;margin-top:0pt;margin-bottom:0pt">
<span style="font-size:13px;font-family:Arial;vertical-align:baseline;white-space:pre-wrap">The project involves making changes in both TagLib and amarok repositories. I would like to divide the project into 3 parts. </span></p>
<br><span style="font-size:13px;font-family:Arial;vertical-align:baseline;white-space:pre-wrap"></span><p dir="ltr" style="font-size:medium;line-height:1.4625;margin-top:0pt;margin-bottom:0pt"><span style="font-size:13px;font-family:Arial;vertical-align:baseline;white-space:pre-wrap">The first one being implementing the QtChapter support in MP4/M4A/M4B files. As per the apple docs(1) the Qt chapter support can be achieved by reading the “trak” atom which contains the “chap” data. This trak atom contains the text track which contains the chapter information. The indicated text track should contain a “stbl” atom ( basically a table ) which would contain offsets to the location in the file that contain chapter title in the file. Reading data at these offsets give information about chapter titles. The time at which each each chapter marker occurs to can be easily calculated using the “bitrate” of the audiofile. These would be the changes that I would make in TagLib to support QtChapters. The changes in amarok include, displaying the chapter markers to the user in the form of bookmarks or Multi-Tracks.I plan on reading the chapter information in amarok the same way I implemented it in the bug fix (2). I would like to also store the chapter information in the database as well. </span></p>
<br><span style="font-size:13px;font-family:Arial;vertical-align:baseline;white-space:pre-wrap"></span><p dir="ltr" style="font-size:medium;line-height:1.4625;margin-top:0pt;margin-bottom:0pt"><span style="font-size:13px;font-family:Arial;vertical-align:baseline;white-space:pre-wrap">The second part of the project would be to implement Unified CUE sheet support. The CUE sheet implementation is quite straightforward. CUE sheet contains information related to the album and the main filename and the time offsets at which each track occurs . The challenging part would be to implement this support in the database. I propose to make this change in the KUrl. Parts of the Url would have data about the BaseFile, Time-Offset and Duration of the track (after a “?” or “#” at the end, if not possible a new protocol?). This must be done without affecting the rest of the working of the app. Then these URL’s would be interpreted in the UmsCollection or SqlCollection classes as separate Track files. This would also enable storing the details of each song in the database, hence there is no need to access the cue file everytime. </span></p>
<br><span style="font-size:13px;font-family:Arial;vertical-align:baseline;white-space:pre-wrap"></span><p dir="ltr" style="font-size:medium;line-height:1.4625;margin-top:0pt;margin-bottom:0pt"><span style="font-size:13px;font-family:Arial;vertical-align:baseline;white-space:pre-wrap">The third and last part of the project would be to implement support for the NeroChapter type in MP4. Since, this is not so popular, I would like to keep this my last part of the project. This involves more changes in TagLib than amarok. The chapter track information is found under the “udta” atom. This part of the project would be to automatically detect the type of chapter present in the given file and decode the chapter data and provide it neatly.</span></p>
<p dir="ltr" style="font-size:medium;line-height:1.4625;margin-top:0pt;margin-bottom:0pt"><span style="font-size:13px;font-family:Arial;vertical-align:baseline;white-space:pre-wrap"> </span></p><p dir="ltr" style="font-size:medium;line-height:1.4625;margin-top:0pt;margin-bottom:0pt">
<span style="font-size:16px;font-family:Arial;font-weight:bold;text-decoration:underline;vertical-align:baseline;white-space:pre-wrap">Tentative Timeline:</span></p><p dir="ltr" style="font-size:medium;line-height:1.4625;margin-top:0pt;margin-bottom:0pt">
<span style="font-size:13px;font-family:Arial;color:rgb(34,34,34);font-weight:bold;vertical-align:baseline;white-space:pre-wrap">June</span></p><p dir="ltr" style="font-size:medium;line-height:1.4625;margin-top:0pt;margin-bottom:0pt">
<span style="font-size:12px;font-family:Arial;color:rgb(34,34,34);font-style:italic;vertical-align:baseline;white-space:pre-wrap">< GSOC begins ></span><span style="font-size:13px;font-family:Arial;color:rgb(34,34,34);vertical-align:baseline;white-space:pre-wrap"></span></p>
<p dir="ltr" style="font-size:medium;line-height:1.4625;margin-top:0pt;margin-bottom:0pt"><span style="font-size:13px;font-family:Arial;color:rgb(34,34,34);font-weight:bold;vertical-align:baseline;white-space:pre-wrap">week 4</span><span style="font-size:13px;font-family:Arial;color:rgb(34,34,34);vertical-align:baseline;white-space:pre-wrap">: Community Bonding Period - Ask for improvement suggestions and get to know the amarok community.</span></p>
<p dir="ltr" style="font-size:medium;line-height:1.4625;margin-top:0pt;margin-bottom:0pt"><span style="font-size:13px;font-family:Arial;color:rgb(34,34,34);font-weight:bold;vertical-align:baseline;white-space:pre-wrap">July-</span></p>
<p dir="ltr" style="font-size:medium;line-height:1.4625;margin-top:0pt;margin-bottom:0pt"><span style="font-size:13px;font-family:Arial;color:rgb(34,34,34);font-weight:bold;vertical-align:baseline;white-space:pre-wrap">week 1</span><span style="font-size:13px;font-family:Arial;color:rgb(34,34,34);vertical-align:baseline;white-space:pre-wrap">: Create Abstract Classes in TagLib for MP4 chapter support. Start implementing QtChapter Support.</span></p>
<p dir="ltr" style="font-size:medium;line-height:1.4625;margin-top:0pt;margin-bottom:0pt"><span style="font-size:13px;font-family:Arial;color:rgb(34,34,34);font-weight:bold;vertical-align:baseline;white-space:pre-wrap">week 2</span><span style="font-size:13px;font-family:Arial;color:rgb(34,34,34);vertical-align:baseline;white-space:pre-wrap">: Finish implementing QtChapter Support in TagLib.</span></p>
<p dir="ltr" style="font-size:medium;line-height:1.4625;margin-top:0pt;margin-bottom:0pt"><span style="font-size:13px;font-family:Arial;color:rgb(34,34,34);font-weight:bold;vertical-align:baseline;white-space:pre-wrap">week 3</span><span style="font-size:13px;font-family:Arial;color:rgb(34,34,34);vertical-align:baseline;white-space:pre-wrap">: Design UI in amarok to display the chapter markers. </span></p>
<p dir="ltr" style="font-size:medium;line-height:1.4625;margin-top:0pt;margin-bottom:0pt"><span style="font-size:13px;font-family:Arial;color:rgb(34,34,34);font-weight:bold;vertical-align:baseline;white-space:pre-wrap">week 4</span><span style="font-size:13px;font-family:Arial;color:rgb(34,34,34);vertical-align:baseline;white-space:pre-wrap">: Modify the database and store the chapter data in it.</span></p>
<p dir="ltr" style="font-size:medium;line-height:1.4625;margin-top:0pt;margin-bottom:0pt"><span style="font-size:12px;font-family:Arial;color:rgb(34,34,34);font-style:italic;vertical-align:baseline;white-space:pre-wrap">< Mid-term  - Complete QtChapter support in amarok></span></p>
<p dir="ltr" style="font-size:medium;line-height:1.4625;margin-top:0pt;margin-bottom:0pt"><span style="font-size:13px;font-family:Arial;color:rgb(34,34,34);font-weight:bold;vertical-align:baseline;white-space:pre-wrap">August-</span></p>
<p dir="ltr" style="font-size:medium;line-height:1.4625;margin-top:0pt;margin-bottom:0pt"><span style="font-size:13px;font-family:Arial;color:rgb(34,34,34);vertical-align:baseline;white-space:pre-wrap">week 1: Create abstract classes for cue file support in amarok. </span></p>
<p dir="ltr" style="font-size:medium;line-height:1.4625;margin-top:0pt;margin-bottom:0pt"><span style="font-size:13px;font-family:Arial;color:rgb(34,34,34);vertical-align:baseline;white-space:pre-wrap">week 2: Detect and decode cue file and store the information in the classes.</span></p>
<p dir="ltr" style="font-size:medium;line-height:1.4625;margin-top:0pt;margin-bottom:0pt"><span style="font-size:13px;font-family:Arial;color:rgb(34,34,34);vertical-align:baseline;white-space:pre-wrap">week 3: Implement changes in Kurl.</span></p>
<p dir="ltr" style="font-size:medium;line-height:1.4625;margin-top:0pt;margin-bottom:0pt"><span style="font-size:13px;font-family:Arial;color:rgb(34,34,34);vertical-align:baseline;white-space:pre-wrap">week 4: Make modifications in SqlCollection and other methods and classes that use url(TrackPtr).</span></p>
<p dir="ltr" style="font-size:medium;line-height:1.4625;margin-top:0pt;margin-bottom:0pt"><span style="font-size:13px;font-family:Arial;color:rgb(34,34,34);font-weight:bold;vertical-align:baseline;white-space:pre-wrap">September-</span></p>
<p dir="ltr" style="font-size:medium;line-height:1.4625;margin-top:0pt;margin-bottom:0pt"><span style="font-size:13px;font-family:Arial;color:rgb(34,34,34);vertical-align:baseline;white-space:pre-wrap">week 1: Make modifications in UmsCollection to support cue sheets as well.</span></p>
<p dir="ltr" style="font-size:medium;line-height:1.4625;margin-top:0pt;margin-bottom:0pt"><span style="font-size:13px;font-family:Arial;color:rgb(34,34,34);vertical-align:baseline;white-space:pre-wrap">week 2: Finish cue sheet support in amarok.</span><span style="font-size:12px;font-family:Arial;color:rgb(34,34,34);font-style:italic;vertical-align:baseline;white-space:pre-wrap"></span></p>
<p dir="ltr" style="font-size:medium;line-height:1.4625;margin-top:0pt;margin-bottom:0pt"><span style="font-size:13px;font-family:Arial;color:rgb(34,34,34);vertical-align:baseline;white-space:pre-wrap">week 3: Implement NeroChapter support in TagLib.</span></p>
<p dir="ltr" style="font-size:medium;line-height:1.4625;margin-top:0pt;margin-bottom:0pt"><span style="font-size:12px;font-family:Arial;color:rgb(34,34,34);font-style:italic;vertical-align:baseline;white-space:pre-wrap">< pens down ></span></p>
<p dir="ltr" style="font-size:medium;line-height:1.4625;margin-top:0pt;margin-bottom:0pt"><span style="font-size:13px;font-family:Arial;color:rgb(34,34,34);vertical-align:baseline;white-space:pre-wrap">week 4: Testing and resolving any bugs. Documentation.</span></p>
<br><span style="font-size:13px;font-family:Arial;vertical-align:baseline;white-space:pre-wrap"></span><p dir="ltr" style="font-size:medium;line-height:1.4625;margin-top:0pt;margin-bottom:0pt"><span style="font-size:13px;font-family:Arial;vertical-align:baseline;white-space:pre-wrap"> </span></p>
<br><span style="font-size:13px;font-family:Arial;vertical-align:baseline;white-space:pre-wrap"></span><p dir="ltr" style="font-size:medium;line-height:1.4625;margin-top:0pt;margin-bottom:0pt"><span style="font-size:16px;font-family:Arial;font-weight:bold;text-decoration:underline;vertical-align:baseline;white-space:pre-wrap">Do you have other obligations from late May to early August (school, work, vacation, etc.)? </span></p>
<br><span style="font-size:19px;font-family:Arial;font-weight:bold;vertical-align:baseline;white-space:pre-wrap"></span><p dir="ltr" style="font-size:medium;line-height:1.4625;margin-top:0pt;margin-bottom:0pt"><span style="font-size:13px;font-family:Arial;vertical-align:baseline;white-space:pre-wrap"> No obligations. I am willing to work 50 hours a week,  7-8 hours everyday, maybe more during the weekends. College starts early august but should not be a problem. I will still be able to put in 50 hours a week by working a little extra in the weekends.</span></p>
<br><span style="font-size:13px;font-family:Arial;vertical-align:baseline;white-space:pre-wrap"></span><br><span style="font-size:13px;font-family:Arial;vertical-align:baseline;white-space:pre-wrap"></span><p dir="ltr" style="font-size:medium;line-height:1.4625;margin-top:0pt;margin-bottom:0pt">
<span style="font-size:13px;font-family:Arial;vertical-align:baseline;white-space:pre-wrap"> </span></p><p dir="ltr" style="font-size:medium;line-height:1.4625;margin-top:0pt;margin-bottom:0pt"><span style="font-size:16px;font-family:Arial;font-weight:bold;text-decoration:underline;vertical-align:baseline;white-space:pre-wrap">About Me:</span></p>
<p dir="ltr" style="font-size:medium;line-height:1.4625;margin-top:0pt;margin-bottom:0pt"><span style="font-size:13px;font-family:Arial;vertical-align:baseline;white-space:pre-wrap">I am a Student of SSN College of Engineering. I prefer coding in C/C++/Python. I was introduced to amarok when my friend suggested it after looking at my android app Lyricize (3). Since then I have fallen in love with it. I would love to make any contribution that makes music more enjoyable. I am also an enthusiastic web and android developer. I am a very big FLOSS fan. I have written scripts that predict and scrape the indian stock market data and avails it to developers as an API as well as contributions to Haiku OS.</span></p>
<br><span style="font-size:13px;font-family:Arial;vertical-align:baseline;white-space:pre-wrap"></span><p dir="ltr" style="font-size:medium;line-height:1.4625;margin-top:0pt;margin-bottom:0pt"><span style="font-size:16px;font-family:Arial;font-weight:bold;text-decoration:underline;vertical-align:baseline;white-space:pre-wrap">Am I comfortable working independently under a mentor or supervisor?</span></p>
<p dir="ltr" style="font-size:medium;line-height:1.4625;margin-top:0pt;margin-bottom:0pt"><span style="font-size:13px;font-family:Arial;vertical-align:baseline;white-space:pre-wrap">Yes. I have been an intern for the ULaw Software Foundation based in canada and timezones isn’t really a problem at all.</span></p>
<br><span style="font-size:13px;font-family:Arial;vertical-align:baseline;white-space:pre-wrap"></span><p dir="ltr" style="font-size:medium;line-height:1.4625;margin-top:0pt;margin-bottom:0pt"><span style="font-size:16px;font-family:Arial;font-weight:bold;text-decoration:underline;vertical-align:baseline;white-space:pre-wrap">After GSoC:</span></p>
<p dir="ltr" style="line-height:1.15;margin-top:0pt;margin-bottom:0pt"><span style="font-family:Arial;background-color:transparent;vertical-align:baseline;white-space:pre-wrap">After GSoC I plan on continuing to fix bugs and code more features for amarok and taglib. I intend to learn about more file formats and improving support in those areas.</span><span style="font-size:15px;font-family:Arial;background-color:transparent;vertical-align:baseline;white-space:pre-wrap"> </span></p>
<p dir="ltr" style="font-size:medium;line-height:1.15;margin-top:4pt;margin-bottom:0pt"><span style="font-size:15px;font-family:Arial;background-color:transparent;vertical-align:baseline;white-space:pre-wrap">(1) - </span><a href="https://developer.apple.com/library/mac/#documentation/QuickTime/qtff/QTFFChap2/qtff2.html" style="text-decoration:none"><span style="font-size:13px;font-family:Arial;text-decoration:underline;vertical-align:baseline;white-space:pre-wrap">https://developer.apple.com/library/mac/#documentation/QuickTime/qtff/QTFFChap2/qtff2.html</span></a></p>
<p dir="ltr" style="font-size:medium;line-height:1.15;margin-top:0pt;margin-bottom:0pt"><span style="font-size:15px;font-family:Arial;background-color:transparent;vertical-align:baseline;white-space:pre-wrap">(2) - </span><a href="https://git.reviewboard.kde.org/r/109256/" style="text-decoration:none"><span style="font-size:15px;font-family:Arial;background-color:transparent;text-decoration:underline;vertical-align:baseline;white-space:pre-wrap">https://git.reviewboard.kde.org/r/109256/</span></a><span style="font-size:15px;font-family:Arial;background-color:transparent;vertical-align:baseline;white-space:pre-wrap"></span></p>
<p dir="ltr" style="font-size:medium;line-height:1.15;margin-top:0pt;margin-bottom:0pt"><span style="font-size:15px;font-family:Arial;background-color:transparent;vertical-align:baseline;white-space:pre-wrap">(3) - </span><span style="text-decoration:underline;font-size:15px;font-family:Arial;background-color:transparent;vertical-align:baseline;white-space:pre-wrap"><a href="https://play.google.com/store/apps/details?id=com.festalize.LyricMatch" style="text-decoration:none">https://play.google.com/store/apps/details?id=com.festalize.LyricMatch</a></span><span style="font-size:15px;font-family:Arial;background-color:transparent;vertical-align:baseline;white-space:pre-wrap"></span></p>
<div style="font-size:medium"><br></div></b></div></div>