<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/106566/">http://git.reviewboard.kde.org/r/106566/</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 26th, 2012, 7:42 p.m., <b>Bart Cerneels</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="http://git.reviewboard.kde.org/r/106566/diff/1/?file=87102#file87102line52" style="color: black; font-weight: bold; text-decoration: underline;">core/Player.h</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="2"><pre style="font-size: 8pt; line-height: 140%; margin: 0; "></pre></td>
<td colspan="2"><pre style="font-size: 8pt; line-height: 140%; margin: 0; ">private:</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">52</font></th>
<td bgcolor="#c5ffc4" width="50%"><pre style="font-size: 8pt; line-height: 140%; margin: 0; "><span class="cp">#warning remainingTime interface?</span></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;">no. Total can be unknown and it's a one line calculation.</pre>
</blockquote>
<p>On September 29th, 2012, 12:16 p.m., <b>Matěj Laitl</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;">But Phonon may know the length better than we in Amarok. I would personally like to use some kind fo remainingTime signals to implement bounded playback in Amarok.</pre>
</blockquote>
<p>On September 30th, 2012, 7:11 a.m., <b>Bart Cerneels</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;">Phonon would internally do the same calculation (remaining = total - elapsed). If you add the convenience function, shouldn't you also add the notify signal, etc?</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;">iff we grow a remainingTime thing it'd be a property with read accessor and signal... question is whether we want that or not
since the original draft I however came to think that perhaps that may be a very useful thing. all player type applications will have some sort of remainingtime feature so simply having a signal that they can attach a widget or qmlitem to seems like a good idea.</pre>
<br />
<blockquote style="margin-left: 1em; border-left: 2px solid #d0d0d0; padding-left: 10px;">
<p style="margin-top: 0;">On September 26th, 2012, 7:42 p.m., <b>Bart Cerneels</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="http://git.reviewboard.kde.org/r/106566/diff/1/?file=87102#file87102line53" style="color: black; font-weight: bold; text-decoration: underline;">core/Player.h</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="2"><pre style="font-size: 8pt; line-height: 140%; margin: 0; "></pre></td>
<td colspan="2"><pre style="font-size: 8pt; line-height: 140%; margin: 0; ">private:</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">53</font></th>
<td bgcolor="#c5ffc4" width="50%"><pre style="font-size: 8pt; line-height: 140%; margin: 0; "><span class="cp">#warning ticking missing</span></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;">You want to know the required resolution. And no, it's not easy to calculate when it might change!</pre>
</blockquote>
<p>On September 29th, 2012, 12:16 p.m., <b>Matěj Laitl</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'd like to ditch ticking from Amarok code in favor of some kind of remainingTime mechanism.</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;">please elaborate.
sandsmark raised the idea of introducing spatial ticking ... i.e. you tell phonon that your visual element for progress display (e.g. progressbar) is N pixels long and phonon tries to emit ticks such that you would get one signal per pixel to update. is that what you are thinking about?</pre>
<br />
<blockquote style="margin-left: 1em; border-left: 2px solid #d0d0d0; padding-left: 10px;">
<p style="margin-top: 0;">On September 26th, 2012, 7:42 p.m., <b>Bart Cerneels</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="http://git.reviewboard.kde.org/r/106566/diff/1/?file=87104#file87104line26" style="color: black; font-weight: bold; text-decoration: underline;">core/Queue.h</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="2"><pre style="font-size: 8pt; line-height: 140%; margin: 0; "></pre></td>
<td colspan="2"><pre style="font-size: 8pt; line-height: 140%; margin: 0; ">class Queue {</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">26</font></th>
<td bgcolor="#c5ffc4" width="50%"><pre style="font-size: 8pt; line-height: 140%; margin: 0; "> <span class="n">Source</span> <span class="n">dequeue</span><span class="p">(</span><span class="k">const</span> <span class="n">Source</span> <span class="o">&</span><span class="n">source</span> <span class="o">=</span> <span class="n">Source</span><span class="p">());</span></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;">Couldn't I put the same source in multiple times? Which one will you delete?
Again, convenience functions needed.
Or will the Queue be set?</pre>
</blockquote>
<p>On September 29th, 2012, 12:16 p.m., <b>Matěj Laitl</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;">> Or will the Queue be [a] set?
Cannot be, set doesn't preserve order and we really need it for a .. queue.</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;">best talk this over with mr. t.
as I see it if you were to insert the same source twice you'd still need it to be different source objects... that of course is a bit silly if you make a queue of ABABABABABAB. BUT this case IMHO only applies to players. in a scenario where a more simplistic consumer wants to use the queue they may easily be able to ensure that no duplicated sources are queued. so I would not generally dismiss this particular interface here. instead, if the queue were to grow iterator support we could have an iterator based overload to address multi-source dequeuing.
the interface at hand would, due to the name, only dequeue the first entry of source. iff there is a use case for massdequeing a dequeueAll function may be nice.</pre>
<br />
<blockquote style="margin-left: 1em; border-left: 2px solid #d0d0d0; padding-left: 10px;">
<p style="margin-top: 0;">On September 26th, 2012, 7:42 p.m., <b>Bart Cerneels</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="http://git.reviewboard.kde.org/r/106566/diff/1/?file=87106#file87106line19" style="color: black; font-weight: bold; text-decoration: underline;">core/Source.h</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="2"><pre style="font-size: 8pt; line-height: 140%; margin: 0; "></pre></td>
<td colspan="2"><pre style="font-size: 8pt; line-height: 140%; margin: 0; ">public:</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">19</font></th>
<td bgcolor="#c5ffc4" width="50%"><pre style="font-size: 8pt; line-height: 140%; margin: 0; "> <span class="n">Stream</span><span class="p">,</span></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;">s/Stream/AbstractStream
Shouldn't this just be a QIODevice. Sensible interface, let's not define our own.</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;">it could. it would however be somewhat ugly as we only need like 5 functions and thus the QIOD impl would be limited in terms of a QIOD. also what we are already seeing is that not every QIOD fits our needs. like a Qnetworkreply. it is a QIOD but has additional functions to determine the end of the reply (i.e. network transfer may still be in progress, but currently available buffer is completely read already). so even right now you'd not be able to stuff a QNR into the AMS magic and assume it works unless the QNR has completely finished transfer. now if we were to drop the AMS crap in favor of a QIOD you'd have to write a QIOD to wrap around QNR (which is a QIOD) to stream from that....
perhaps you could drop a mail to the list for discussion, but I am really not a fan of this.</pre>
<br />
<blockquote style="margin-left: 1em; border-left: 2px solid #d0d0d0; padding-left: 10px;">
<p style="margin-top: 0;">On September 26th, 2012, 7:42 p.m., <b>Bart Cerneels</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="http://git.reviewboard.kde.org/r/106566/diff/1/?file=87114#file87114line16" style="color: black; font-weight: bold; text-decoration: underline;">core/abstract/AbstractVideoOutput.h</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="2"><pre style="font-size: 8pt; line-height: 140%; margin: 0; "></pre></td>
<td colspan="2"><pre style="font-size: 8pt; line-height: 140%; margin: 0; ">private:</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">16</font></th>
<td bgcolor="#c5ffc4" width="50%"><pre style="font-size: 8pt; line-height: 140%; margin: 0; "> <span class="n">QList</span><span class="o"><</span><span class="n">OutputEffect</span> <span class="o">*></span> <span class="n">m_effects</span><span class="p">;</span></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;">Add same effect (object), what happens? Ordering?
Could make this a QSet</pre>
</blockquote>
<p>On September 29th, 2012, 12:16 p.m., <b>Matěj Laitl</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;">> Could make this a QSet
No, effect order matters and QSet doesn't preserve order.</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;">adding the same effect twice will prolly end up failing an assert ... I am reasonable certain that vlc does not support this so...
and yeah, order matters... speed up before eqalizer for example</pre>
<br />
<p>- Harald</p>
<br />
<p>On September 25th, 2012, 11:06 a.m., Harald Sitter wrote:</p>
<table bgcolor="#fefadf" width="100%" cellspacing="0" cellpadding="8" style="background-image: url('http://git.reviewboard.kde.org/media/rb/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 and Phonon.</div>
<div>By Harald Sitter.</div>
<p style="color: grey;"><i>Updated Sept. 25, 2012, 11:06 a.m.</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;">phonon phive core frontend api</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>core/AudioDataOutput.h <span style="color: grey">(PRE-CREATION)</span></li>
<li>core/AudioDataOutput.cpp <span style="color: grey">(PRE-CREATION)</span></li>
<li>core/AudioOutput.h <span style="color: grey">(PRE-CREATION)</span></li>
<li>core/AudioOutput.cpp <span style="color: grey">(PRE-CREATION)</span></li>
<li>core/BackendCapabilities.h <span style="color: grey">(PRE-CREATION)</span></li>
<li>core/BackendCapabilities.cpp <span style="color: grey">(PRE-CREATION)</span></li>
<li>core/OutputEffect.h <span style="color: grey">(PRE-CREATION)</span></li>
<li>core/OutputEffect.cpp <span style="color: grey">(PRE-CREATION)</span></li>
<li>core/Player.h <span style="color: grey">(PRE-CREATION)</span></li>
<li>core/Player.cpp <span style="color: grey">(PRE-CREATION)</span></li>
<li>core/Queue.h <span style="color: grey">(PRE-CREATION)</span></li>
<li>core/Queue.cpp <span style="color: grey">(PRE-CREATION)</span></li>
<li>core/Source.h <span style="color: grey">(PRE-CREATION)</span></li>
<li>core/Source.cpp <span style="color: grey">(PRE-CREATION)</span></li>
<li>core/VideoDataOutput.h <span style="color: grey">(PRE-CREATION)</span></li>
<li>core/VideoDataOutput.cpp <span style="color: grey">(PRE-CREATION)</span></li>
<li>core/abstract/AbstractAudioOutput.h <span style="color: grey">(PRE-CREATION)</span></li>
<li>core/abstract/AbstractAudioOutput.cpp <span style="color: grey">(PRE-CREATION)</span></li>
<li>core/abstract/AbstractMediaStream.h <span style="color: grey">(PRE-CREATION)</span></li>
<li>core/abstract/AbstractMediaStream.cpp <span style="color: grey">(PRE-CREATION)</span></li>
<li>core/abstract/AbstractVideoOutput.h <span style="color: grey">(PRE-CREATION)</span></li>
<li>core/abstract/AbstractVideoOutput.cpp <span style="color: grey">(PRE-CREATION)</span></li>
<li>core/core.pro <span style="color: grey">(PRE-CREATION)</span></li>
<li>core/effects/SubtitleEffect.h <span style="color: grey">(PRE-CREATION)</span></li>
<li>core/effects/SubtitleEffect.cpp <span style="color: grey">(PRE-CREATION)</span></li>
<li>core/five_global.h <span style="color: grey">(PRE-CREATION)</span></li>
</ul>
<p><a href="http://git.reviewboard.kde.org/r/106566/diff/" style="margin-left: 3em;">View Diff</a></p>
</td>
</tr>
</table>
</div>
</body>
</html>