From patchwork Thu May 7 23:05:15 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Lance Wang X-Patchwork-Id: 19549 Return-Path: X-Original-To: patchwork@ffaux-bg.ffmpeg.org Delivered-To: patchwork@ffaux-bg.ffmpeg.org Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org [79.124.17.100]) by ffaux.localdomain (Postfix) with ESMTP id 6A5E9449C24 for ; Fri, 8 May 2020 02:05:32 +0300 (EEST) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 4473A68AB42; Fri, 8 May 2020 02:05:32 +0300 (EEST) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-pf1-f196.google.com (mail-pf1-f196.google.com [209.85.210.196]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 646C168A713 for ; Fri, 8 May 2020 02:05:25 +0300 (EEST) Received: by mail-pf1-f196.google.com with SMTP id f7so3756545pfa.9 for ; Thu, 07 May 2020 16:05:25 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references; bh=GbBStdVc1gadjEH1eL8VgfGIyfqCdnxNYKRSBCNgtIg=; b=W/bS/pvRbqW57bNTIUgE9jSTi9UxUZybQeroxYASkYExONWeCA/H5K9L+nA8c1EcwQ KLoDkQ36DAtdgyI6Hv7S1G4f3FUyrv1CYs9T7fzcv3Wp41r+aw+CWE5tH5oU7ILmOF58 iN+1kB8709HuQMHHR1lbK2wgBEX6blsJMrliYcwn29a4trV+k6DXBgl7ih1oe7C34ssm KraYyYc1VuIBxWjntOO/rQDMYaPALtdoPSdJjOsLqs5S4KJnUJJ9Sv8Q4ARgbCtZUwrY 5JRPaUkzLY0Wx7gVUGOfzCMR3LfNo8r8gzFo+bmXhasHeHnVx7cNIiaGeoQDAWre8N1M Uxzg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references; bh=GbBStdVc1gadjEH1eL8VgfGIyfqCdnxNYKRSBCNgtIg=; b=GUNZ3zrPaUS+XP/MELhNDFZlLc8+FcDaeMDB3xjOkUrl2q8DtiqaH+0xosZ85hDAm4 F1YiBOH6HyfJ5F0lz/GLXn/wTXLUj4P8dqkN5xkRVcYN6JFPK62kcmx+Xp8bgh/cFOlv 8WmS9GoG9rW7ayyzZyOQVUeXwORdx2aa9u3po7zQGB8FDxC0EuzH9Tas/Fplu8sdprWt KYIC/t52jKzqOqI4yl+zypFaSKjFKBpoBsQlQYhjtzipTBbjFtBwUyb9Qj8QPHc64UlX MOV7rt7yXhSpjNAKK5ygeIEtftXgRITBai622a2dyTB7NjzMK7GorzyNwUb6Ybb7d12q 8Jsg== X-Gm-Message-State: AGi0PuZnlGAwwTs8eCw8GeFREjGGade4EJVUas5iaBiwjI/BYDff3tQ0 WbITbuJhCGwYtWnoNPy/mm4hOh9o X-Google-Smtp-Source: APiQypJXUWkQayuitya38MoIhu1bGb3Y9ta/w8IRDJQ/3U9X3+ntxDdDw5LmDcDmYNiNXf1HjE6Kgg== X-Received: by 2002:a63:eb47:: with SMTP id b7mr13501218pgk.310.1588892723467; Thu, 07 May 2020 16:05:23 -0700 (PDT) Received: from vpn2.localdomain ([161.117.202.209]) by smtp.gmail.com with ESMTPSA id l1sm738480pjr.17.2020.05.07.16.05.21 (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Thu, 07 May 2020 16:05:22 -0700 (PDT) From: lance.lmwang@gmail.com To: ffmpeg-devel@ffmpeg.org Date: Fri, 8 May 2020 07:05:15 +0800 Message-Id: <1588892715-1803-1-git-send-email-lance.lmwang@gmail.com> X-Mailer: git-send-email 1.8.3.1 In-Reply-To: <1588850057-24236-4-git-send-email-lance.lmwang@gmail.com> References: <1588850057-24236-4-git-send-email-lance.lmwang@gmail.com> Subject: [FFmpeg-devel] [PATCH v4 4/5] avcodec/mpegvideo: return more specific error codes for ff_mpv_common_init() X-BeenThere: ffmpeg-devel@ffmpeg.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: FFmpeg development discussions and patches List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Reply-To: FFmpeg development discussions and patches Cc: Limin Wang MIME-Version: 1.0 Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" From: Limin Wang Signed-off-by: Limin Wang --- libavcodec/mpegvideo.c | 30 ++++++++++++++++-------------- 1 file changed, 16 insertions(+), 14 deletions(-) diff --git a/libavcodec/mpegvideo.c b/libavcodec/mpegvideo.c index 22cab28..5101e97 100644 --- a/libavcodec/mpegvideo.c +++ b/libavcodec/mpegvideo.c @@ -907,7 +907,7 @@ av_cold int ff_mpv_common_init(MpegEncContext *s) if (s->avctx->pix_fmt == AV_PIX_FMT_NONE) { av_log(s->avctx, AV_LOG_ERROR, "decoding to AV_PIX_FMT_NONE is not supported.\n"); - return -1; + return AVERROR(EINVAL); } if (nb_slices > MAX_THREADS || (nb_slices > s->mb_height && s->mb_height)) { @@ -923,7 +923,7 @@ av_cold int ff_mpv_common_init(MpegEncContext *s) if ((s->width || s->height) && av_image_check_size(s->width, s->height, 0, s->avctx)) - return -1; + return AVERROR(EINVAL); dct_init(s); @@ -935,27 +935,27 @@ av_cold int ff_mpv_common_init(MpegEncContext *s) return ret; FF_ALLOCZ_OR_GOTO(s->avctx, s->picture, - MAX_PICTURE_COUNT * sizeof(Picture), fail); + MAX_PICTURE_COUNT * sizeof(Picture), fail_nomem); for (i = 0; i < MAX_PICTURE_COUNT; i++) { s->picture[i].f = av_frame_alloc(); if (!s->picture[i].f) - goto fail; + goto fail_nomem; } s->next_picture.f = av_frame_alloc(); if (!s->next_picture.f) - goto fail; + goto fail_nomem; s->last_picture.f = av_frame_alloc(); if (!s->last_picture.f) - goto fail; + goto fail_nomem; s->current_picture.f = av_frame_alloc(); if (!s->current_picture.f) - goto fail; + goto fail_nomem; s->new_picture.f = av_frame_alloc(); if (!s->new_picture.f) - goto fail; + goto fail_nomem; - if (init_context_frame(s)) - goto fail; + if ((ret = init_context_frame(s))) + goto fail_nomem; s->parse_context.state = -1; @@ -969,9 +969,9 @@ av_cold int ff_mpv_common_init(MpegEncContext *s) if (i) { s->thread_context[i] = av_memdup(s, sizeof(MpegEncContext)); if (!s->thread_context[i]) - goto fail; + goto fail_nomem; } - if (init_duplicate_context(s->thread_context[i]) < 0) + if ((ret = init_duplicate_context(s->thread_context[i])) < 0) goto fail; s->thread_context[i]->start_mb_y = (s->mb_height * (i) + nb_slices / 2) / nb_slices; @@ -979,7 +979,7 @@ av_cold int ff_mpv_common_init(MpegEncContext *s) (s->mb_height * (i + 1) + nb_slices / 2) / nb_slices; } } else { - if (init_duplicate_context(s) < 0) + if ((ret = init_duplicate_context(s)) < 0) goto fail; s->start_mb_y = 0; s->end_mb_y = s->mb_height; @@ -988,9 +988,11 @@ av_cold int ff_mpv_common_init(MpegEncContext *s) // } return 0; + fail_nomem: + ret = AVERROR(ENOMEM); fail: ff_mpv_common_end(s); - return -1; + return ret; } /**