[FFmpeg-devel] [PATCH] avformat/librtmp: fix returning EOF from Read/Write

Timo Rothenpieler timo at rothenpieler.org
Tue Jul 31 13:56:18 EEST 2018


Am 28.07.2018 um 11:48 schrieb Jan Ekström:
> On Thu, Jul 26, 2018 at 1:20 PM, Timo Rothenpieler
> <timo at rothenpieler.org> wrote:
>> ---
>>   libavformat/librtmp.c | 10 ++++++++--
>>   1 file changed, 8 insertions(+), 2 deletions(-)
>>
>> diff --git a/libavformat/librtmp.c b/libavformat/librtmp.c
>> index f3cfa9a8e2..43013e46e0 100644
>> --- a/libavformat/librtmp.c
>> +++ b/libavformat/librtmp.c
>> @@ -261,7 +261,10 @@ static int rtmp_write(URLContext *s, const uint8_t *buf, int size)
>>       LibRTMPContext *ctx = s->priv_data;
>>       RTMP *r = &ctx->rtmp;
>>
>> -    return RTMP_Write(r, buf, size);
>> +    int ret = RTMP_Write(r, buf, size);
>> +    if (!ret)
>> +        return AVERROR_EOF;
>> +    return ret;
>>   }
>>
>>   static int rtmp_read(URLContext *s, uint8_t *buf, int size)
>> @@ -269,7 +272,10 @@ static int rtmp_read(URLContext *s, uint8_t *buf, int size)
>>       LibRTMPContext *ctx = s->priv_data;
>>       RTMP *r = &ctx->rtmp;
>>
>> -    return RTMP_Read(r, buf, size);
>> +    int ret = RTMP_Read(r, buf, size);
>> +    if (!ret)
>> +        return AVERROR_EOF;
>> +    return ret;
>>   }
>>
>>   static int rtmp_read_pause(URLContext *s, int pause)
>> --
>> 2.18.0
>>
> 
> Cheers, these things just keep popping up it seems :) . Generally I've
> done something along the lines of return ret ? ret : AVERROR_EOF; ,
> but that's just a stylistic thing.
> 
> Jan

I'm starting to wonder if adding it to the write function is even 
correct. The only way I see the function returning 0 is when it actually 
did not write anything because the size was < 11.

-------------- next part --------------
A non-text attachment was scrubbed...
Name: smime.p7s
Type: application/pkcs7-signature
Size: 3994 bytes
Desc: S/MIME Cryptographic Signature
URL: <http://ffmpeg.org/pipermail/ffmpeg-devel/attachments/20180731/ed1a20eb/attachment.bin>


More information about the ffmpeg-devel mailing list