[FFmpeg-devel] [PATCH 2/3] lavc/libxvid: return meaningful error codes
Michael Niedermayer
michaelni at gmx.at
Mon Nov 24 03:07:17 CET 2014
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
> 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
[...]
--
Michael GnuPG fingerprint: 9FF2128B147EF6730BADF133611EC787040B0FAB
Those who are best at talking, realize last or never when they are wrong.
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 181 bytes
Desc: Digital signature
URL: <https://ffmpeg.org/pipermail/ffmpeg-devel/attachments/20141124/c0091dd6/attachment.asc>
More information about the ffmpeg-devel
mailing list