<!DOCTYPE html>
<html>
<head>
<title></title>
<style type="text/css">p.MsoNormal,p.MsoNoSpacing{margin:0}</style>
</head>
<body><div><br></div>
<div>On Wed, Jul 4, 2018, at 15:33, Rémi Denis-Courmont wrote:<br></div>
<blockquote type="cite"><div>Well it wouldn't surprise me if it created races or inversions. but it would surprise me if doing it one way would avoid races and the other way not.<br></div>
</blockquote><div><br></div>
<div>I don't see races with this current set.<br></div>
<div><br></div>
<blockquote type="cite"><div><br></div>
<div defang_data-gmailquote="yes"><div>Le 4 juillet 2018 11:37:57 GMT+03:00, Thomas Guillem <thomas@gllm.fr> a écrit :<br></div>
<blockquote defang_data-gmailquote="yes" style="margin-top:0pt;margin-right:0pt;margin-bottom:0pt;margin-left:0.8ex;border-left-color:rgb(204, 204, 204);border-left-style:solid;border-left-width:1px;padding-left:1ex;"><pre><div><br></div>
<div>On Tue, Jul 3, 2018, at 17:58, Rémi Denis-Courmont wrote:<br></div>
<blockquote defang_data-gmailquote="yes" style="margin-top:0pt;margin-right:0pt;margin-bottom:1ex;margin-left:0.8ex;border-left-color:rgb(114, 159, 207);border-left-style:solid;border-left-width:1px;padding-left:1ex;"><div> Le tiistaina 3. heinäkuuta 2018, 14.22.30 EEST Thomas Guillem a écrit :<br></div>
<blockquote defang_data-gmailquote="yes" style="margin-top:0pt;margin-right:0pt;margin-bottom:1ex;margin-left:0.8ex;border-left-color:rgb(173, 127, 168);border-left-style:solid;border-left-width:1px;padding-left:1ex;"><div> On Tue, Jul 3, 2018, at 13:20, Rémi Denis-Courmont wrote:<br></div>
<blockquote defang_data-gmailquote="yes" style="margin-top:0pt;margin-right:0pt;margin-bottom:1ex;margin-left:0.8ex;border-left-color:rgb(138, 226, 52);border-left-style:solid;border-left-width:1px;padding-left:1ex;"><div> There should not be a need to move the current state out of the<br></div>
<div> stack, AFAIU.><br></div>
<div> <br></div>
<div>  I like to keep thread variables on stack because it's then obvious<br></div>
<div>  what the access rule is (read/write for the thread) and if the<br></div>
<div>  variable becomes unused.<br></div>
</blockquote><div> <br></div>
<div> Then, how do you fix what this commit is trying to fix ? With a reset<br></div>
<div> bool that reset pause/rate from the DecoderThread stack ?<br></div>
</blockquote><div> <br></div>
<div> Set the correct values when you get the xout ?<br></div>
</blockquote><div><br></div>
<div>I implemented it (badly), pushed it, and force reverted it.<br></div>
<div>It's more difficult than expected. With the 2 different locks and thread, it's hard (impossible?) to never miss a rate/paused state.<br></div>
<div><br></div>
<div>I explain, cf. aout diff (the same for vout):<br></div>
<div><br></div>
<div>@@ -384,6 +384,17 @@ static int aout_update_format( decoder_t *p_dec )<br></div>
<div>             }<br></div>
<div>         }<br></div>
<div><br></div>
<div>+        vlc_fifo_Lock( p_owner->p_fifo );<br></div>
<div>+        float rate = p_owner->rate;<br></div>
<div>+        vlc_tick_t pause_date = p_owner->pause_date;<br></div>
<div>+        bool paused = p_owner->paused;<br></div>
<div>+        vlc_fifo_Unlock( p_owner->p_fifo );<br></div>
<div>+<br></div>
<div>+        if( paused )<br></div>
<div>+            aout_DecChangePause( p_aout, paused, pause_date );<br></div>
<div>+        if( rate != 1.f )<br></div>
<div>+            aout_DecChangeRate( p_aout, rate );<br></div>
<div>+<br></div>
<div>         vlc_mutex_lock( &p_owner->lock );<br></div>
<div>         p_owner->p_aout = p_aout;<br></div>
<div><br></div>
<div>Here I update the aout state before writing it to p_owner->p_aout so that the DecoderThread won't change these states on its own. But if a new pause/rate is sent from the input between vlc_fifo_Unlock( p_owner->p_fifo ) and vlc_mutex_lock( &p_owner->lock ), and if the DecoderThread already process it in the meantime (and ignore it since since there is no aout), the state will be missed.<br></div>
<div><br></div>
<div><br></div>
<div>Therefore, I prefer doing what this V3 patch set is doing.<br></div>
<div><br></div>
<blockquote defang_data-gmailquote="yes" style="margin-top:0pt;margin-right:0pt;margin-bottom:1ex;margin-left:0.8ex;border-left-color:rgb(114, 159, 207);border-left-style:solid;border-left-width:1px;padding-left:1ex;"><div> <br></div>
<div> -- <br></div>
<div> Реми Дёни-Курмон<br></div>
<div> <a href="http://www.remlab.net/">http://www.remlab.net/</a><br></div>
<div> <br></div>
<div> <br></div>
<div> <br></div>
<div><hr><br></div>
<div> vlc-devel mailing list<br></div>
<div> To unsubscribe or modify your subscription options:<br></div>
<div> <a href="https://mailman.videolan.org/listinfo/vlc-devel">https://mailman.videolan.org/listinfo/vlc-devel</a><br></div>
</blockquote><div><hr><br></div>
<div>vlc-devel mailing list<br></div>
<div>To unsubscribe or modify your subscription options:<br></div>
<div><a href="https://mailman.videolan.org/listinfo/vlc-devel">https://mailman.videolan.org/listinfo/vlc-devel</a><br></div>
</pre></blockquote></div>
<div><br></div>
<div>--<br></div>
<div> Envoyé de mon appareil Android avec Courriel K-9 Mail. Veuillez excuser ma brièveté. <br></div>
<div><u>_______________________________________________</u><br></div>
<div>vlc-devel mailing list<br></div>
<div>To unsubscribe or modify your subscription options:<br></div>
<div><a href="https://mailman.videolan.org/listinfo/vlc-devel">https://mailman.videolan.org/listinfo/vlc-devel</a><br></div>
</blockquote><div><br></div>
</body>
</html>