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

Jan Ekström jeebjp at gmail.com
Sat Jul 28 12:48:05 EEST 2018


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


More information about the ffmpeg-devel mailing list