<html>
<body>
<div style="font-family: Verdana, Arial, Helvetica, Sans-Serif;">
<table bgcolor="#f9f3c9" width="100%" cellpadding="8" style="border: 1px #c9c399 solid;">
<tr>
<td>
This is an automatically generated e-mail. To reply, visit:
<a href="http://git.reviewboard.kde.org/r/100000/">http://git.reviewboard.kde.org/r/100000/</a>
</td>
</tr>
</table>
<br />
<blockquote style="margin-left: 1em; border-left: 2px solid #d0d0d0; padding-left: 10px;">
<p style="margin-top: 0;">On September 22nd, 2010, 2:22 a.m., <b>Leo Franchi</b> wrote:</p>
<blockquote style="margin-left: 1em; border-left: 2px solid #d0d0d0; padding-left: 10px;">
<table width="100%" border="0" bgcolor="white" style="border: 1px solid #C0C0C0; border-collapse: collapse; margin: 2px padding: 2px;">
<thead>
<tr>
<th colspan="4" bgcolor="#F0F0F0" style="border-bottom: 1px solid #C0C0C0; font-size: 9pt; padding: 4px 8px; text-align: left;">
<a href="/r/100000/diff/1/?file=6#file6line791" style="color: black; font-weight: bold; text-decoration: underline;">src/CMakeLists.txt</a>
<span style="font-weight: normal;">
(Diff revision 1)
</span>
</th>
</tr>
</thead>
<tbody style="background-color: #e4d9cb; padding: 4px 8px; text-align: center;">
<tr>
<td colspan="4"><pre style="font-size: 8pt; line-height: 140%; margin: 0; "></pre></td>
</tr>
</tbody>
<tbody>
<tr>
<th bgcolor="#b1ebb0" style="border-right: 1px solid #C0C0C0;" align="right"><font size="2"></font></th>
<td bgcolor="#c5ffc4" width="50%"><pre style="font-size: 8pt; line-height: 140%; margin: 0; "></pre></td>
<th bgcolor="#b1ebb0" style="border-left: 1px solid #C0C0C0; border-right: 1px solid #C0C0C0;" align="right"><font size="2">791</font></th>
<td bgcolor="#c5ffc4" width="50%"><pre style="font-size: 8pt; line-height: 140%; margin: 0; "> xine</pre></td>
</tr>
</tbody>
</table>
<pre style="white-space: pre-wrap; white-space: -moz-pre-wrap; white-space: -pre-wrap; white-space: -o-pre-wrap; word-wrap: break-word;">I'm not sure about the hard dependency of Xine. We don't depend on any particular audio backend since we use Phonon---what is the feasibility of using Phonon's AudioDataOutput for extracting the audio data, do you know? Some Amarok devs have been looking in to using it for audio fingerprinting, but it wasn't completely bug-free last I checked.</pre>
</blockquote>
<p>On September 22nd, 2010, 9:28 a.m., <b>Sergey Ivanov</b> wrote:</p>
<blockquote style="margin-left: 1em; border-left: 2px solid #d0d0d0; padding-left: 10px;">
<pre style="white-space: pre-wrap; white-space: -moz-pre-wrap; white-space: -pre-wrap; white-space: -o-pre-wrap; word-wrap: break-word;">I didn't know that Phonon has such class, thank you.</pre>
</blockquote>
<p>On September 22nd, 2010, 12:01 p.m., <b>Sergey Ivanov</b> wrote:</p>
<blockquote style="margin-left: 1em; border-left: 2px solid #d0d0d0; padding-left: 10px;">
<pre style="white-space: pre-wrap; white-space: -moz-pre-wrap; white-space: -pre-wrap; white-space: -o-pre-wrap; word-wrap: break-word;">Hmm, i can not find any way to make it just "dump" decoded date, everything this class can supply - dumps currently played portions of a track. And i didn't find a way to control playback to make It faster in case of decoding.
Guess I have to find another way.</pre>
</blockquote>
<p>On September 24th, 2010, 1:11 a.m., <b>Leo Franchi</b> wrote:</p>
<blockquote style="margin-left: 1em; border-left: 2px solid #d0d0d0; padding-left: 10px;">
<pre style="white-space: pre-wrap; white-space: -moz-pre-wrap; white-space: -pre-wrap; white-space: -o-pre-wrap; word-wrap: break-word;">Yeah i'm not so sure how well this will work. I don't mind the Xine dependency as long as (a) it's very clear it depends on Xine (b) There are CMakeLists checks for xine that enable it only if Xine is found, and disable it if Xine is not found. I don't know wh at the rest of the team thinks.</pre>
</blockquote>
<p>On September 24th, 2010, 5:17 a.m., <b>Mark Kretschmann</b> wrote:</p>
<blockquote style="margin-left: 1em; border-left: 2px solid #d0d0d0; padding-left: 10px;">
<pre style="white-space: pre-wrap; white-space: -moz-pre-wrap; white-space: -pre-wrap; white-space: -o-pre-wrap; word-wrap: break-word;">I'm not keen on the xine dependency. First of all xine is hardly maintained (they have like one developer left or so), which poses problems with bit-rot and possibly security issues. Then, it _is_ an extra dependency, with a whole slew of implicit dependencies that xine pulls in. Next issue, is xine cross-platform? Last I checked it did not run on Windows, and that automatically rules it out.
So I realize that Phonon is unfortunately (not yet?) up to the task. We should talk to the Phonon devs about a possible extension here.
As an alternative, how about using FFmpeg? We already depend on it for Teo's Transcoding patch. It's cross-platform. It's well maintained, and widely available on all distros. Sounds like a good match to me!
</pre>
</blockquote>
<p>On September 24th, 2010, 5:54 a.m., <b>Sergey Ivanov</b> wrote:</p>
<blockquote style="margin-left: 1em; border-left: 2px solid #d0d0d0; padding-left: 10px;">
<pre style="white-space: pre-wrap; white-space: -moz-pre-wrap; white-space: -pre-wrap; white-space: -o-pre-wrap; word-wrap: break-word;">Already began to rewrite it to using separate libraries (libmad, flac, libogg etc..), so there is no more hard xine dependence. Btw found out that in last (mb both posted) diffs, checks for libofa availability was missed from CMake script.</pre>
</blockquote>
<p>On September 24th, 2010, 6:11 a.m., <b>Sergey Ivanov</b> wrote:</p>
<blockquote style="margin-left: 1em; border-left: 2px solid #d0d0d0; padding-left: 10px;">
<pre style="white-space: pre-wrap; white-space: -moz-pre-wrap; white-space: -pre-wrap; white-space: -o-pre-wrap; word-wrap: break-word;">TBH I'm newbie at multimedia programming, I thought that FFmpeg only supports mpeg compressing. Thank you, now I don't need to invent a bicycle (thanks God, that I only finished with libmad support =) ).</pre>
</blockquote>
</blockquote>
<pre style="margin-left: 1em; white-space: pre-wrap; white-space: -moz-pre-wrap; white-space: -pre-wrap; white-space: -o-pre-wrap; word-wrap: break-word;">Done. Now It runs on ffmpeg.</pre>
<br />
<p>- Sergey</p>
<br />
<p>On September 24th, 2010, 1 p.m., Sergey Ivanov wrote:</p>
<table bgcolor="#fefadf" width="100%" cellspacing="0" cellpadding="8" style="background-image: url('http://git.reviewboard.kde.orgrb/images/review_request_box_top_bg.png'); background-position: left top; background-repeat: repeat-x; border: 1px black solid;">
<tr>
<td>
<div>Review request for amarok.</div>
<div>By Sergey Ivanov.</div>
<p style="color: grey;"><i>Updated 2010-09-24 13:00:36</i></p>
<h1 style="color: #575012; font-size: 10pt; margin-top: 1.5em;">Description </h1>
<table width="100%" bgcolor="#ffffff" cellspacing="0" cellpadding="10" style="border: 1px solid #b8b5a0">
<tr>
<td>
<pre style="margin: 0; padding: 0; white-space: pre-wrap; white-space: -moz-pre-wrap; white-space: -pre-wrap; white-space: -o-pre-wrap; word-wrap: break-word;">MusicBrainz and MusicDNS services support implementation.
There are three independent parts:
1. MusicBrainzFinder class - used to make requests to MusicBrainz server and process replies. All relies process in separate threads by MusicBrainzXmlParser class. For a search uses guessed from a file name track information. No external dependences required.
2. MusicDNSFinder class - used for the same purpose as MusicBrainzFinder, but i communicate with musicdns server and receives track's PUID as a reply. Replies ether process in separate threads by MusicDNSXmlParser class. Fingerprints generated by libofa (the only external dependence in entire patch). For track decompressing (MusicDNSAudioDecoder class) used xine engine (I'm not sure is It a good choice, but amarok based on phonon media-engine, that uses xine. So we don't deed to pull any other dependences). Received PUIDs sends to MusicBrainzFinder class, for a search routine.
3. View. All classes used for store (MusicBrainzTagsModel, MusicBrainzTrackListModel) and display (MusicBrainzTagsModelDelegate) purposes.</pre>
</td>
</tr>
</table>
<h1 style="color: #575012; font-size: 10pt; margin-top: 1.5em;">Diffs</b> </h1>
<ul style="margin-left: 3em; padding-left: 0;">
<li>CMakeLists.txt <span style="color: grey">(191b02e)</span></li>
<li>cmake/modules/FindFFmpeg.cmake <span style="color: grey">(PRE-CREATION)</span></li>
<li>cmake/modules/FindLibOFA.cmake <span style="color: grey">(PRE-CREATION)</span></li>
<li>config-amarok.h.cmake <span style="color: grey">(981b7b7)</span></li>
<li>src/CMakeLists.txt <span style="color: grey">(42614ff)</span></li>
<li>src/core-impl/capabilities/timecode/TimecodeEditCapability.h <span style="color: grey">(6e15303)</span></li>
<li>src/core-impl/capabilities/timecode/TimecodeEditCapability.cpp <span style="color: grey">(8205d45)</span></li>
<li>src/core-impl/collections/mediadevicecollection/MediaDeviceMeta.h <span style="color: grey">(e35b57f)</span></li>
<li>src/core-impl/collections/mediadevicecollection/MediaDeviceMeta.cpp <span style="color: grey">(9be62d9)</span></li>
<li>src/core-impl/collections/proxycollection/ProxyCollectionMeta.cpp <span style="color: grey">(8bdbf75)</span></li>
<li>src/core-impl/collections/sqlcollection/CapabilityDelegateImpl.cpp <span style="color: grey">(b5cb083)</span></li>
<li>src/core-impl/collections/sqlcollection/SqlMeta.h <span style="color: grey">(ee3ec21)</span></li>
<li>src/core-impl/collections/sqlcollection/SqlMeta.cpp <span style="color: grey">(2da0333)</span></li>
<li>src/core-impl/meta/file/File.h <span style="color: grey">(6d4d395)</span></li>
<li>src/core-impl/meta/file/File.cpp <span style="color: grey">(30cd2ff)</span></li>
<li>src/core-impl/meta/file/TagLibUtils.cpp <span style="color: grey">(15b64a4)</span></li>
<li>src/core-impl/meta/proxy/MetaProxy.h <span style="color: grey">(2ef3805)</span></li>
<li>src/core-impl/meta/proxy/MetaProxy.cpp <span style="color: grey">(341e076)</span></li>
<li>src/core/capabilities/EditCapability.h <span style="color: grey">(79344bd)</span></li>
<li>src/dialogs/MusicBrainzTagger.h <span style="color: grey">(PRE-CREATION)</span></li>
<li>src/dialogs/MusicBrainzTagger.cpp <span style="color: grey">(PRE-CREATION)</span></li>
<li>src/dialogs/MusicBrainzTagger.ui <span style="color: grey">(PRE-CREATION)</span></li>
<li>src/dialogs/TagDialog.h <span style="color: grey">(50cd801)</span></li>
<li>src/dialogs/TagDialog.cpp <span style="color: grey">(26d4eb8)</span></li>
<li>src/dialogs/TagDialogBase.ui <span style="color: grey">(9974d0b)</span></li>
<li>src/musicbrainz/DecodedAudioData.h <span style="color: grey">(PRE-CREATION)</span></li>
<li>src/musicbrainz/DecodedAudioData.cpp <span style="color: grey">(PRE-CREATION)</span></li>
<li>src/musicbrainz/MusicBrainzFinder.h <span style="color: grey">(PRE-CREATION)</span></li>
<li>src/musicbrainz/MusicBrainzFinder.cpp <span style="color: grey">(PRE-CREATION)</span></li>
<li>src/musicbrainz/MusicBrainzMetaClasses.h <span style="color: grey">(PRE-CREATION)</span></li>
<li>src/musicbrainz/MusicBrainzMetaClasses.cpp <span style="color: grey">(PRE-CREATION)</span></li>
<li>src/musicbrainz/MusicBrainzTagsModel.h <span style="color: grey">(PRE-CREATION)</span></li>
<li>src/musicbrainz/MusicBrainzTagsModel.cpp <span style="color: grey">(PRE-CREATION)</span></li>
<li>src/musicbrainz/MusicBrainzTagsModelDelegate.h <span style="color: grey">(PRE-CREATION)</span></li>
<li>src/musicbrainz/MusicBrainzTagsModelDelegate.cpp <span style="color: grey">(PRE-CREATION)</span></li>
<li>src/musicbrainz/MusicBrainzTrackListModel.h <span style="color: grey">(PRE-CREATION)</span></li>
<li>src/musicbrainz/MusicBrainzTrackListModel.cpp <span style="color: grey">(PRE-CREATION)</span></li>
<li>src/musicbrainz/MusicBrainzXmlParser.h <span style="color: grey">(PRE-CREATION)</span></li>
<li>src/musicbrainz/MusicBrainzXmlParser.cpp <span style="color: grey">(PRE-CREATION)</span></li>
<li>src/musicbrainz/MusicDNSAudioDecoder.h <span style="color: grey">(PRE-CREATION)</span></li>
<li>src/musicbrainz/MusicDNSAudioDecoder.cpp <span style="color: grey">(PRE-CREATION)</span></li>
<li>src/musicbrainz/MusicDNSFinder.h <span style="color: grey">(PRE-CREATION)</span></li>
<li>src/musicbrainz/MusicDNSFinder.cpp <span style="color: grey">(PRE-CREATION)</span></li>
<li>src/musicbrainz/MusicDNSXmlParser.h <span style="color: grey">(PRE-CREATION)</span></li>
<li>src/musicbrainz/MusicDNSXmlParser.cpp <span style="color: grey">(PRE-CREATION)</span></li>
<li>tests/core-impl/collections/proxycollection/TestProxyCollectionMeta.cpp <span style="color: grey">(55d1914)</span></li>
</ul>
<p><a href="http://git.reviewboard.kde.org/r/100000/diff/" style="margin-left: 3em;">View Diff</a></p>
</td>
</tr>
</table>
</div>
</body>
</html>