<html><head></head><body><div class="gmail_quote">Le 23 juin 2017 10:53:21 GMT+02:00, "Hugo Beauzée-Luyssen" <hugo@beauzee.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;">
<pre class="k9mail">On Thu, Jun 22, 2017, at 06:10 PM, Rémi Denis-Courmont wrote:<br /><blockquote class="gmail_quote" style="margin: 0pt 0pt 1ex 0.8ex; border-left: 1px solid #729fcf; padding-left: 1ex;"> On jeudi 22 juin 2017 17:37:44 EEST Hugo Beauzée-Luyssen wrote:<br /><blockquote class="gmail_quote" style="margin: 0pt 0pt 1ex 0.8ex; border-left: 1px solid #ad7fa8; padding-left: 1ex;"> This allows a demux_filter to be removed from the chain without<br /> removing the entire chain at once.<br /></blockquote> <br /> TBH, I don't see the point. After the filter is removed, the input thread<br /> knows <br /> nothing of the original demux anymore (just like it knows nothing of the <br /> stream filters and access). So the only sane thing to do is to delete it<br /> and <br /> any intermediate filters.<br /> <br /></blockquote><br />As far as I understand that's not an issue, when we insert a<br />demux_filter we prepend it to the chain, so removing it shouldn't impact<br />the remaining demux/stream_filter/access<br /><br />It's also possible to destroy the chain entirely, and call<br />InputSourceNew again to recreate the entire chain, but it feels<br />needlessly heavy, and seems problematic for non-seekable input for<br />instance.<br /><br /><blockquote class="gmail_quote" style="margin: 0pt 0pt 1ex 0.8ex; border-left: 1px solid #729fcf; padding-left: 1ex;"> Also the capability check is very ugly.<br /> <br /></blockquote><br />True, the other way to do the same I can see would be to check if<br />psz_access/demux/location/file are all set to NULL, but I find this less<br />explicit at best (and is it a valid assumption?). We could add a small<br />helper though.<br /><br /><blockquote class="gmail_quote" style="margin: 0pt 0pt 1ex 0.8ex; border-left: 1px solid #729fcf; padding-left: 1ex;"> -- <br /> Rémi<br /><hr /><br /> vlc-devel mailing list<br /> To unsubscribe or modify your subscription options:<br /> <a href="https://mailman.videolan.org/listinfo/vlc-devel">https://mailman.videolan.org/listinfo/vlc-devel</a><br /></blockquote><br /></pre></blockquote></div><br clear="all">That does not seem right. Unless the demux filter is basically just a useless pass-through filter, the state of the demux on the interface between the input thread and the demux filter won't match the state of the demux on the interface between the real demux and the demux filter.<br>
<br>
So you can't just remove the filter and hope things will keep working. Even less so whence the demux filter gets a sane implementation allowing to filter the ES output in addition to demux controls.<br>
<br>
Generally, you can't susbtitute a stateful object with another one, even if they are of the same class.<br>
-- <br>
Rémi Denis-Courmont<br>
Typed on an inconvenient virtual keyboard</body></html>