libxvid: Return meaningful error messages

pull/113/head^2
Himangi Saraogi 10 years ago committed by Vittorio Giovara
parent 18f4fa251b
commit a1e2c47cd4
  1. 12
      libavcodec/libxvid.c
  2. 8
      libavcodec/libxvid_rc.c

@ -474,7 +474,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");
return -1; return AVERROR(ENOMEM);
} }
x->twopassbuffer[0] = x->twopassbuffer[0] =
x->old_twopassbuffer[0] = 0; x->old_twopassbuffer[0] = 0;
@ -487,22 +487,22 @@ static av_cold int xvid_encode_init(AVCodecContext *avctx)
rc2pass2.bitrate = avctx->bit_rate; rc2pass2.bitrate = avctx->bit_rate;
fd = ff_tempfile("xvidff.", &x->twopassfile); fd = ff_tempfile("xvidff.", &x->twopassfile);
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");
return -1; return fd;
} }
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");
return -1; return AVERROR_INVALIDDATA;
} }
if (strlen(avctx->stats_in) > if (strlen(avctx->stats_in) >
write(fd, avctx->stats_in, strlen(avctx->stats_in))) { write(fd, avctx->stats_in, strlen(avctx->stats_in))) {
close(fd); close(fd);
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");
return -1; return AVERROR(EIO);
} }
close(fd); close(fd);
@ -770,7 +770,7 @@ static int xvid_encode_frame(AVCodecContext *avctx, AVPacket *pkt,
return 0; return 0;
av_log(avctx, AV_LOG_ERROR, av_log(avctx, AV_LOG_ERROR,
"Xvid: Encoding Error Occurred: %i\n", xerr); "Xvid: Encoding Error Occurred: %i\n", xerr);
return -1; return xerr;
} }
} }

@ -52,7 +52,7 @@ int ff_tempfile(const char *prefix, char **filename)
/* -----common section-----*/ /* -----common section-----*/
if (!(*filename)) { if (!(*filename)) {
av_log(NULL, AV_LOG_ERROR, "ff_tempfile: Cannot allocate file name\n"); av_log(NULL, AV_LOG_ERROR, "ff_tempfile: Cannot allocate file name\n");
return -1; return AVERROR(ENOMEM);
} }
#if !HAVE_MKSTEMP #if !HAVE_MKSTEMP
fd = avpriv_open(*filename, O_RDWR | O_BINARY | O_CREAT, 0444); fd = avpriv_open(*filename, O_RDWR | O_BINARY | O_CREAT, 0444);
@ -67,7 +67,7 @@ int ff_tempfile(const char *prefix, char **filename)
/* -----common section-----*/ /* -----common section-----*/
if (fd < 0) { if (fd < 0) {
av_log(NULL, AV_LOG_ERROR, "ff_tempfile: Cannot open temporary file %s\n", *filename); av_log(NULL, AV_LOG_ERROR, "ff_tempfile: Cannot open temporary file %s\n", *filename);
return -1; return AVERROR(EIO);
} }
return fd; /* success */ return fd; /* success */
} }
@ -80,9 +80,9 @@ av_cold int ff_xvid_rate_control_init(MpegEncContext *s)
xvid_plugin_2pass2_t xvid_2pass2 = { 0 }; xvid_plugin_2pass2_t xvid_2pass2 = { 0 };
fd = ff_tempfile("xvidrc.", &tmp_name); fd = ff_tempfile("xvidrc.", &tmp_name);
if (fd == -1) { if (fd < 0) {
av_log(NULL, AV_LOG_ERROR, "Can't create temporary pass2 file.\n"); av_log(NULL, AV_LOG_ERROR, "Can't create temporary pass2 file.\n");
return -1; return fd;
} }
for (i = 0; i < s->rc_context.num_entries; i++) { for (i = 0; i < s->rc_context.num_entries; i++) {

Loading…
Cancel
Save