[FFmpeg-devel] [PATCH 2/3] lavc/libxvid: return meaningful error codes

Lukasz Marek lukasz.m.luki2 at gmail.com
Mon Nov 24 04:14:06 CET 2014


On 24.11.2014 03:07, Michael Niedermayer wrote:
> On Mon, Nov 24, 2014 at 01:17:29AM +0100, Lukasz Marek wrote:
>> Signed-off-by: Lukasz Marek <lukasz.m.luki2 at gmail.com>
>> ---
>>   libavcodec/libxvid.c | 4 ++++
>>   1 file changed, 4 insertions(+)
>>
>> diff --git a/libavcodec/libxvid.c b/libavcodec/libxvid.c
>> index 020af32..70d52b9 100644
>> --- a/libavcodec/libxvid.c
>> +++ b/libavcodec/libxvid.c
>> @@ -488,6 +488,7 @@ static av_cold int xvid_encode_init(AVCodecContext *avctx)
>>           if (!x->twopassbuffer || !x->old_twopassbuffer) {
>>               av_log(avctx, AV_LOG_ERROR,
>>                      "Xvid: Cannot allocate 2-pass log buffers\n");
>> +            ret = AVERROR(ENOMEM);
>>               goto fail;
>>           }
>>           x->twopassbuffer[0]     =
>> @@ -503,6 +504,7 @@ static av_cold int xvid_encode_init(AVCodecContext *avctx)
>>           fd = av_tempfile("xvidff.", &x->twopassfile, 0, avctx);
>>           if (fd == -1) {
>
> unrelated to your patch but this should by fd < 0
>
> and fd would be the error code

changed. There is a bug in av_tempfile doc btw.

>
>
>>               av_log(avctx, AV_LOG_ERROR, "Xvid: Cannot write 2-pass pipe\n");
>> +            ret = AVERROR(EIO);
>>               goto fail;
>>           }
>>           x->twopassfd = fd;
>> @@ -510,12 +512,14 @@ static av_cold int xvid_encode_init(AVCodecContext *avctx)
>>           if (!avctx->stats_in) {
>>               av_log(avctx, AV_LOG_ERROR,
>>                      "Xvid: No 2-pass information loaded for second pass\n");
>> +            ret = AVERROR(EINVAL);
>>               goto fail;
>>           }
>>
>>           if (strlen(avctx->stats_in) >
>>               write(fd, avctx->stats_in, strlen(avctx->stats_in))) {
>>               av_log(avctx, AV_LOG_ERROR, "Xvid: Cannot write to 2-pass pipe\n");
>> +            ret = AVERROR(EIO);
>
> strictly, this should be errno when write returns -1, also av_log()
> might change errno so it has to be read before
> but EIO as it is, is fine too

Changed. Patch attached.

-------------- next part --------------
A non-text attachment was scrubbed...
Name: 0001-lavc-libxvid-return-meaningful-error-codes.patch
Type: text/x-patch
Size: 2209 bytes
Desc: not available
URL: <https://ffmpeg.org/pipermail/ffmpeg-devel/attachments/20141124/063d8457/attachment.bin>


More information about the ffmpeg-devel mailing list