<!doctype html><html><head>
<title></title>
<style type="text/css">p.MsoNormal,p.MsoNoSpacing{margin:0}</style>
</head>
<body>Sure. But the problem remains that, to handle "large" absolute delay values, you need to buffer the earlier ES more. And the only place that gives us free rein in buffering is the decoder FIFO (though ES output could do it). After decoder, we are constrained by available picture buffers and such, so we cannot buffer as much as we want.<br>
<br>
And so we need to adjust the PTS before decoding.<br>
<br>
Also, filters need the adjusted PTS otherwise there are intractable problems with dependencies between different ES.<br><br><div class="gmail_quote">Le 29 juin 2018 17:39:25 GMT+02:00, Thomas Guillem <thomas@gllm.fr> a écrit :<blockquote class="gmail_quote" style="margin: 0pt 0pt 0pt 0.8ex; border-left: 1px solid rgb(204, 204, 204); padding-left: 1ex;">
<div><br></div>
<div>On Fri, Jun 29, 2018, at 17:20, Rémi Denis-Courmont wrote:<br></div>
<blockquote type="cite"><div>First, I don't see how that contradicts feeding decoders and filters with delay-adjusted PTS. At most, it means that VT cannot handle a variable adjustment for video PTS.<br></div>
<div> <br></div>
<div> Second, it does not override the mathematical reality that we newd to adjust PTS before decoder FIFO to support non-small negative delays without losing the ES. And I care a lot more about that bug and the valid complaints about it than VT design bugs.<br></div>
</blockquote><div><br></div>
<div>If you start an ES with negative delay, you just have to put a positive delay to all others ESes. That is what the code is already doing.<br></div>
<div><br></div>
<blockquote type="cite"><div><br></div>
<div defang_data-gmailquote="yes"><div>Le 29 juin 2018 15:05:31 GMT+02: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;"><div>VT care:<br></div>
<div>"The behavior is undefined if samples in a <code><span>CMSampleBuffer</span></code> (or even in multiple buffers in the same stream) have the same <code><span>presentationTimeStamp</span></code>. Can be <code><span>NULL</span></code>." <a href="https://developer.apple.com/documentation/coremedia/1489513-cmsamplebuffercreateready?language=objc">https://developer.apple.com/documentation/coremedia/1489513-cmsamplebuffercreateready?language=objc</a><br></div>
<div><br></div>
<div>and I don't want to take any risks with all different implementation of MediaCodec/OMX.<br></div>
<div><br></div>
<div>(Because if you apply the delay before decoding, nothing prevent to feed the same pts to a decoder).<br></div>
<div><br></div>
<div>On Fri, Jun 29, 2018, at 14:21, Rémi Denis-Courmont wrote:<br></div>
<blockquote type="cite"><div>I cannot agree and I don't see why hw decodet should care about original PTS.<br></div>
<div><br></div>
<div><div>Le 29 juin 2018 15:02:50 GMT+03:00, Thomas Guillem <thomas@gllm.fr> a écrit :<br></div>
<blockquote 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;"><div><br></div>
<div>On Fri, Jun 29, 2018, at 12:44, Rémi Denis-Courmont wrote:<br></div>
<blockquote type="cite"><div>It boils down to which ES the original PTS are needed for. For instance, a timecode SPU source will need the original PTS of the video track<br></div>
</blockquote><div><br></div>
<div>No it need the converted time of the video because the video can be delayed too.<br></div>
<div><br></div>
<blockquote type="cite"><div><br></div>
<div><br></div>
<div>not SPU (i.e. video + SPU delay). If you apply cross-ES delay after filters/sources, timecodes won't work.<br></div>
<div><br></div>
<div>As far as I can tell, cross-ES delay musyt be applied before decoder FIFO and befote filters. So it can not be done in output clock - that's too far downstream.<br></div>
</blockquote><div><br></div>
<div>Before Decoder FIFO ? It will fail with some HW decoders...<br></div>
<div><br></div>
<blockquote type="cite"><div><br></div>
<div><div>Le 29 juin 2018 13:29:52 GMT+03:00, Thomas Guillem <thomas@gllm.fr> a écrit :<br></div>
<blockquote 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;"><div><br></div>
<div>On Fri, Jun 29, 2018, at 12:18, Rémi Denis-Courmont wrote:<br></div>
<blockquote type="cite"><div>I expect major problems with SPU and with audio visualization if the original PTS are not shifted, but the output times are.<br></div>
</blockquote><div><br></div>
<div>What kind of major problems ? I tested this set and fount out that SPU delay synchronization was really improved.<br></div>
<div><br></div>
<blockquote type="cite"><div><br></div>
<div><div>Le 29 juin 2018 12:55:20 GMT+03:00, Thomas Guillem <thomas@gllm.fr> a écrit :<br></div>
<blockquote 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>On Wed, Jun 27, 2018, at 21:06, Rémi Denis-Courmont wrote:<br></div>
<div>
<br></div>
<div>
<br></div>
<div>
<br></div>
<div>
<br></div>
<div>
<br></div>
<div>
<br></div>
<div>
<br></div>
<blockquote 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>        Hi,<br></div>
<div>
<br></div>
<div>
<br></div>
<div>
<br></div>
<div>
<br></div>
<div>
<br></div>
<div>
<br></div>
<div>
<br></div>
<div> <br></div>
<div>
<br></div>
<div>
<br></div>
<div>
<br></div>
<div>
<br></div>
<div>
<br></div>
<div>
<br></div>
<div>
<br></div>
<div> Le keskiviikkona 27. kesäkuuta 2018, 15.41.31 EEST Thomas Guillem a écrit :<br></div>
<div>
<br></div>
<div>
<br></div>
<div>
<br></div>
<div>
<br></div>
<div>
<br></div>
<div>
<br></div>
<div>
<br></div>
<blockquote 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> Each ESses will set the delay to their specific clocks.<br></div>
<div>
<br></div>
<div>
<br></div>
<div>
<br></div>
<div>
<br></div>
<div>
<br></div>
<div>
<br></div>
<div>
<br></div>
<div> Setting a delay on the master clock has an effect on all others slaves<br></div>
<div>
<br></div>
<div>
<br></div>
<div>
<br></div>
<div>
<br></div>
<div>
<br></div>
<div>
<br></div>
<div>
<br></div>
<div> clocks. Setting a delay on a slave clock has only an effect for the current<br></div>
<div>
<br></div>
<div>
<br></div>
<div>
<br></div>
<div>
<br></div>
<div>
<br></div>
<div>
<br></div>
<div>
<br></div>
<div> clock.<br></div>
<div>
<br></div>
<div>
<br></div>
<div>
<br></div>
<div>
<br></div>
<div>
<br></div>
<div>
<br></div>
<div>
<br></div>
</blockquote><div> <br></div>
<div>
<br></div>
<div>
<br></div>
<div>
<br></div>
<div>
<br></div>
<div>
<br></div>
<div>
<br></div>
<div>
<br></div>
<div> Why can the delay no longer applied/applicable to original PTS? And then, why <br></div>
<div>
<br></div>
<div>
<br></div>
<div>
<br></div>
<div>
<br></div>
<div>
<br></div>
<div>
<br></div>
<div>
<br></div>
<div> is the delay not applied within the clock?<br></div>
<div>
<br></div>
<div>
<br></div>
<div>
<br></div>
<div>
<br></div>
<div>
<br></div>
<div>
<br></div>
<div>
<br></div>
</blockquote><div><br></div>
<div>
<br></div>
<div>
<br></div>
<div>
<br></div>
<div>
<br></div>
<div>
<br></div>
<div>
<br></div>
<div>
<br></div>
<div>In this patch, the delay is applied within the clock, no ?<br></div>
<div>
<br></div>
<div>
<br></div>
<div>
<br></div>
<div>
<br></div>
<div>
<br></div>
<div>
<br></div>
<div>
<br></div>
<div><br></div>
<div>
<br></div>
<div>
<br></div>
<div>
<br></div>
<div>
<br></div>
<div>
<br></div>
<div>
<br></div>
<div>
<br></div>
<div>When do you want to modify the original PTS ? I tried to do that solution first, like we discussed in the meeting, but it seemed very complicated and not easy to implement. Furthermore, I really prefer to keep the original PTS the longer possible. It make it more reactive when changing the delay of subtitles for example (since the core keep a list of subtitles).<br></div>
<div>
<br></div>
<div>
<br></div>
<div>
<br></div>
<div>
<br></div>
<div>
<br></div>
<div>
<br></div>
<div>
<br></div>
<div><br></div>
<div>
<br></div>
<div>
<br></div>
<div>
<br></div>
<div>
<br></div>
<div>
<br></div>
<div>
<br></div>
<div>
<br></div>
<blockquote 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>
<br></div>
<div>
<br></div>
<div>
<br></div>
<div>
<br></div>
<div>
<br></div>
<div> It seems rather repetitive/wasteful to boilerplate this in every clock user.<br></div>
<div>
<br></div>
<div>
<br></div>
<div>
<br></div>
<div>
<br></div>
<div>
<br></div>
<div>
<br></div>
<div>
<br></div>
<div> <br></div>
<div>
<br></div>
<div>
<br></div>
<div>
<br></div>
<div>
<br></div>
<div>
<br></div>
<div>
<br></div>
<div>
<br></div>
<div> -- <br></div>
<div>
<br></div>
<div>
<br></div>
<div>
<br></div>
<div>
<br></div>
<div>
<br></div>
<div>
<br></div>
<div>
<br></div>
<div> Реми Дёни-Курмон<br></div>
<div>
<br></div>
<div>
<br></div>
<div>
<br></div>
<div>
<br></div>
<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>
<br></div>
<div>
<br></div>
<div>
<br></div>
<div>
<br></div>
<div> <br></div>
<div>
<br></div>
<div>
<br></div>
<div>
<br></div>
<div>
<br></div>
<div>
<br></div>
<div>
<br></div>
<div>
<br></div>
<div> <br></div>
<div>
<br></div>
<div>
<br></div>
<div>
<br></div>
<div>
<br></div>
<div>
<br></div>
<div>
<br></div>
<div>
<br></div>
<div> <br></div>
<div>
<br></div>
<div>
<br></div>
<div>
<br></div>
<div>
<br></div>
<div>
<br></div>
<div>
<br></div>
<div>
<br></div>
<div><hr><br></div>
<div>
<br></div>
<div>
<br></div>
<div>
<br></div>
<div>
<br></div>
<div>
<br></div>
<div>
<br></div>
<div>
<br></div>
<div> vlc-devel mailing list<br></div>
<div>
<br></div>
<div>
<br></div>
<div>
<br></div>
<div>
<br></div>
<div>
<br></div>
<div>
<br></div>
<div>
<br></div>
<div> To unsubscribe or modify your subscription options:<br></div>
<div>
<br></div>
<div>
<br></div>
<div>
<br></div>
<div>
<br></div>
<div>
<br></div>
<div>
<br></div>
<div>
<br></div>
<div> <a href="https://mailman.videolan.org/listinfo/vlc-devel">https://mailman.videolan.org/listinfo/vlc-devel</a><br></div>
<div>
<br></div>
<div>
<br></div>
<div>
<br></div>
<div>
<br></div>
<div>
<br></div>
<div>
<br></div>
<div>
<br></div>
</blockquote><div><hr><br></div>
<div>
<br></div>
<div>
<br></div>
<div>
<br></div>
<div>
<br></div>
<div>
<br></div>
<div>
<br></div>
<div>
<br></div>
<div>vlc-devel mailing list<br></div>
<div>
<br></div>
<div>
<br></div>
<div>
<br></div>
<div>
<br></div>
<div>
<br></div>
<div>
<br></div>
<div>
<br></div>
<div>To unsubscribe or modify your subscription options:<br></div>
<div>
<br></div>
<div>
<br></div>
<div>
<br></div>
<div>
<br></div>
<div>
<br></div>
<div>
<br></div>
<div>
<br></div>
<div><a href="https://mailman.videolan.org/listinfo/vlc-devel">https://mailman.videolan.org/listinfo/vlc-devel</a><br></div>
<div>
<br></div>
<div>
<br></div>
<div>
<br></div>
<div>
<br></div>
<div>
<br></div>
<div>
<br></div>
<div>
<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>
</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>
</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>
</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>


</blockquote></div><br>
-- <br>
Envoyé de mon appareil Android avec Courriel K-9 Mail. Veuillez excuser ma brièveté.</body></html>