<!DOCTYPE html>
<html>
<head>
<title></title>
</head>
<body><div><br></div>
<div><br></div>
<div><br></div>
<div>On Wed, Sep 7, 2016, at 14:27, Sean McGovern wrote:<br></div>
<blockquote type="cite"><p dir="ltr"><br></p><p dir="ltr"><br></p><div>On Sep 7, 2016 12:36, "Thomas Guillem" <<a href="mailto:thomas@gllm.fr">thomas@gllm.fr</a>> wrote:<br></div>
<div>><br></div>
<div>> Don't treat EAGAIN as an error<br></div>
<div>> ---<br></div>
<div>>  modules/codec/avcodec/video.c | 16 ++++++++++++++--<br></div>
<div>>  1 file changed, 14 insertions(+), 2 deletions(-)<br></div>
<div>><br></div>
<div>> diff --git a/modules/codec/avcodec/video.c b/modules/codec/avcodec/video.c<br></div>
<div>> index f236224..dd35dff 100644<br></div>
<div>> --- a/modules/codec/avcodec/video.c<br></div>
<div>> +++ b/modules/codec/avcodec/video.c<br></div>
<div>> @@ -833,11 +833,23 @@ static picture_t *DecodeVideo( decoder_t *p_dec, block_t **pp_block )<br></div>
<div>>              p_block->i_dts = VLC_TS_INVALID;<br></div>
<div>>          }<br></div>
<div>><br></div>
<div>> -        int not_able_to_send_packet = avcodec_send_packet( p_context, &pkt );<br></div>
<div>> +        int ret = avcodec_send_packet( p_context, &pkt );<br></div>
<div>>          i_used = pkt.size;<br></div>
<div>>          av_packet_unref( &pkt );<br></div>
<div>><br></div>
<div>> -        int not_received_frame = avcodec_receive_frame( p_context, frame);<br></div>
<div>> +        if( ret != 0 && ret != AVERROR(EAGAIN) )<br></div>
<div>> +        {<br></div>
<div>> +            p_dec->b_error = true;<br></div>
<div>> +            break;<br></div>
<div>> +        }<br></div>
<div>> +<br></div>
<div>> +        ret = avcodec_receive_frame( p_context, frame);<br></div>
<div>> +        if( ret != 0 && ret != AVERROR(EAGAIN) )<br></div>
<div>> +        {<br></div>
<div>> +            p_dec->b_error = true;<br></div>
<div>> +            break;<br></div>
<div>> +        }<br></div>
<div>> +        int not_received_frame = ret;<br></div>
<div>><br></div>
<div>>          wait_mt( p_sys );<br></div>
<div>><br></div>
<p><br></p><p dir="ltr">Notwithstanding RĂ©mi's concerns, would this be better written as a while() loop, on the off chance EAGAIN is returned more than once?<br></p></blockquote><div><br></div>
<div>We are already in a while loop,  I think this is well handled.<br></div>
<div><br></div>
<blockquote type="cite"><p dir="ltr"><br></p><div>-- Sean McG.<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>