lavc/libxvid: return meaningful error codes
Signed-off-by: Lukasz Marek <lukasz.m.luki2@gmail.com>
This commit is contained in:
@@ -488,6 +488,7 @@ static av_cold int xvid_encode_init(AVCodecContext *avctx)
|
|||||||
if (!x->twopassbuffer || !x->old_twopassbuffer) {
|
if (!x->twopassbuffer || !x->old_twopassbuffer) {
|
||||||
av_log(avctx, AV_LOG_ERROR,
|
av_log(avctx, AV_LOG_ERROR,
|
||||||
"Xvid: Cannot allocate 2-pass log buffers\n");
|
"Xvid: Cannot allocate 2-pass log buffers\n");
|
||||||
|
ret = AVERROR(ENOMEM);
|
||||||
goto fail;
|
goto fail;
|
||||||
}
|
}
|
||||||
x->twopassbuffer[0] =
|
x->twopassbuffer[0] =
|
||||||
@@ -501,8 +502,9 @@ static av_cold int xvid_encode_init(AVCodecContext *avctx)
|
|||||||
rc2pass2.bitrate = avctx->bit_rate;
|
rc2pass2.bitrate = avctx->bit_rate;
|
||||||
|
|
||||||
fd = av_tempfile("xvidff.", &x->twopassfile, 0, avctx);
|
fd = av_tempfile("xvidff.", &x->twopassfile, 0, avctx);
|
||||||
if (fd == -1) {
|
if (fd < 0) {
|
||||||
av_log(avctx, AV_LOG_ERROR, "Xvid: Cannot write 2-pass pipe\n");
|
av_log(avctx, AV_LOG_ERROR, "Xvid: Cannot write 2-pass pipe\n");
|
||||||
|
ret = fd;
|
||||||
goto fail;
|
goto fail;
|
||||||
}
|
}
|
||||||
x->twopassfd = fd;
|
x->twopassfd = fd;
|
||||||
@@ -510,14 +512,19 @@ static av_cold int xvid_encode_init(AVCodecContext *avctx)
|
|||||||
if (!avctx->stats_in) {
|
if (!avctx->stats_in) {
|
||||||
av_log(avctx, AV_LOG_ERROR,
|
av_log(avctx, AV_LOG_ERROR,
|
||||||
"Xvid: No 2-pass information loaded for second pass\n");
|
"Xvid: No 2-pass information loaded for second pass\n");
|
||||||
|
ret = AVERROR(EINVAL);
|
||||||
goto fail;
|
goto fail;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (strlen(avctx->stats_in) >
|
ret = write(fd, avctx->stats_in, strlen(avctx->stats_in));
|
||||||
write(fd, avctx->stats_in, strlen(avctx->stats_in))) {
|
if (ret == -1)
|
||||||
|
ret = AVERROR(errno);
|
||||||
|
else if (strlen(avctx->stats_in) > ret) {
|
||||||
av_log(avctx, AV_LOG_ERROR, "Xvid: Cannot write to 2-pass pipe\n");
|
av_log(avctx, AV_LOG_ERROR, "Xvid: Cannot write to 2-pass pipe\n");
|
||||||
goto fail;
|
ret = AVERROR(EIO);
|
||||||
}
|
}
|
||||||
|
if (ret < 0)
|
||||||
|
goto fail;
|
||||||
|
|
||||||
rc2pass2.filename = x->twopassfile;
|
rc2pass2.filename = x->twopassfile;
|
||||||
plugins[xvid_enc_create.num_plugins].func = xvid_plugin_2pass2;
|
plugins[xvid_enc_create.num_plugins].func = xvid_plugin_2pass2;
|
||||||
|
Reference in New Issue
Block a user