GSoC proposal review

Abhinandan Ramprasath abhiin1947 at gmail.com
Sun Apr 28 17:21:18 UTC 2013


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?

Any comments/reviews would be really helpful. Thanks in advance.

*

Basic Details:

Name: Abhinandan Ramaprasath

Email Address: abhiin1947 at gmail.com

Freenode IRC Nick: abhiin1947

IM Service and Username: Gtalk - abhiin1947

Location (City, Country and/or Time Zone): Chennai, India, UTC+05:30

Proposal Title:

Implementing Unified CUE sheet and chapter support in Amarok

Implementation Details:

The project involves making changes in both TagLib and amarok repositories.
I would like to divide the project into 3 parts.

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.

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.

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.

Tentative Timeline:

June

< GSOC begins >

week 4: Community Bonding Period - Ask for improvement suggestions and get
to know the amarok community.

July-

week 1: Create Abstract Classes in TagLib for MP4 chapter support. Start
implementing QtChapter Support.

week 2: Finish implementing QtChapter Support in TagLib.

week 3: Design UI in amarok to display the chapter markers.

week 4: Modify the database and store the chapter data in it.

< Mid-term  - Complete QtChapter support in amarok>

August-

week 1: Create abstract classes for cue file support in amarok.

week 2: Detect and decode cue file and store the information in the classes.

week 3: Implement changes in Kurl.

week 4: Make modifications in SqlCollection and other methods and classes
that use url(TrackPtr).

September-

week 1: Make modifications in UmsCollection to support cue sheets as well.

week 2: Finish cue sheet support in amarok.

week 3: Implement NeroChapter support in TagLib.

< pens down >

week 4: Testing and resolving any bugs. Documentation.


Do you have other obligations from late May to early August (school, work,
vacation, etc.)?

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.


About Me:

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.

Am I comfortable working independently under a mentor or supervisor?

Yes. I have been an intern for the ULaw Software Foundation based in canada
and timezones isn’t really a problem at all.

After GSoC:

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.

(1) -
https://developer.apple.com/library/mac/#documentation/QuickTime/qtff/QTFFChap2/qtff2.html

(2) - https://git.reviewboard.kde.org/r/109256/

(3) - https://play.google.com/store/apps/details?id=com.festalize.LyricMatch

*
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.kde.org/pipermail/amarok-devel/attachments/20130428/145a7d29/attachment.html>


More information about the Amarok-devel mailing list