<!DOCTYPE html>
<html>
<head>
<title></title>
</head>
<body><div><br></div>
<div>On Sat, Sep 24, 2016, at 01:26, <a href="mailto:remi@remlab.net">remi@remlab.net</a> wrote:<br></div>
<blockquote type="cite"><p dir="ltr">Hello,<br></p><p dir="ltr"><br></p><div>Le 23 sept. 2016 11:16, Thomas Guillem <thomas@gllm.fr> a écrit :<br></div>
<div>><br></div>
<div>> Don't try to request a vout if it previously failed. A new vout will be<br></div>
<div>> requested if the fmt_out changes. This save a *lot* of CPU cycles when playing<br></div>
<div>> a sample with an invalid fmt_out.<br></div>
<p><br></p><p dir="ltr">It does if the decoder changes the format at every buffer allocation. But I understood you would fix that?<br></p></blockquote><div><br></div>
<div>I never saw that case. If this case happen, is it not the fault of the module ?<br></div>
<div><br></div>
<blockquote type="cite"><div dir="ltr">Then there is not much to save anymore - and it breaks the corner case where vout creation fails before it "somehow" succeeds.<br></div>
</blockquote><div>Can this really happen ? A vout that succeed after a fail when the dec->fmt_out doesn't change at all ?<br></div>
<div><br></div>
<blockquote type="cite"><p dir="ltr">I would rather decouple format change and picture allocation first. Then re-evaluate whether this patch still makes sense.<br></p></blockquote><div><br></div>
<div>Then, do you agree with my patch set "[PATCH 0/3] decoder: don't update format when creating a buffer" ?<br></div>
<div>I can do it for audio and video.<br></div>
<div><br></div>
<blockquote type="cite"><p dir="ltr"><br></p><div>> ---<br></div>
<div>> src/input/decoder.c | 5 +++--<br></div>
<div>> 1 file changed, 3 insertions(+), 2 deletions(-)<br></div>
<div>><br></div>
<div>> diff --git a/src/input/decoder.c b/src/input/decoder.c<br></div>
<div>> index a736143..d44789e 100644<br></div>
<div>> --- a/src/input/decoder.c<br></div>
<div>> +++ b/src/input/decoder.c<br></div>
<div>> @@ -369,8 +369,7 @@ static int vout_update_format( decoder_t *p_dec )<br></div>
<div>> {<br></div>
<div>>      decoder_owner_sys_t *p_owner = p_dec->p_owner;<br></div>
<div>><br></div>
<div>> -    if( p_owner->p_vout == NULL<br></div>
<div>> -     || p_dec->fmt_out.video.i_width != p_owner->fmt.video.i_width<br></div>
<div>> +    if( p_dec->fmt_out.video.i_width != p_owner->fmt.video.i_width<br></div>
<div>>       || p_dec->fmt_out.video.i_height != p_owner->fmt.video.i_height<br></div>
<div>>       || p_dec->fmt_out.video.i_visible_width != p_owner->fmt.video.i_visible_width<br></div>
<div>>       || p_dec->fmt_out.video.i_visible_height != p_owner->fmt.video.i_visible_height<br></div>
<div>> @@ -492,6 +491,8 @@ static int vout_update_format( decoder_t *p_dec )<br></div>
<div>>              return -1;<br></div>
<div>>          }<br></div>
<div>>      }<br></div>
<div>> +    else if( p_owner->p_vout == NULL )<br></div>
<div>> +        return -1;<br></div>
<div>>      return 0;<br></div>
<div>> }<br></div>
<div>><br></div>
<div>> -- <br></div>
<div>> 2.9.3<br></div>
<div>><br></div>
<div>> _______________________________________________<br></div>
<div>> vlc-devel mailing list<br></div>
<div>> To unsubscribe or modify your subscription options:<br></div>
<div>> https://mailman.videolan.org/listinfo/vlc-devel<br></div>
<p><br></p><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>