From patchwork Sat Jun 13 15:00:28 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Lance Wang X-Patchwork-Id: 20334 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 7FC2144ACB5 for ; Sat, 13 Jun 2020 18:08:38 +0300 (EEST) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 6845B68B5C8; Sat, 13 Jun 2020 18:08:38 +0300 (EEST) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-pg1-f194.google.com (mail-pg1-f194.google.com [209.85.215.194]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id EB8976881A0 for ; Sat, 13 Jun 2020 18:08:31 +0300 (EEST) Received: by mail-pg1-f194.google.com with SMTP id j6so1606988pgh.4 for ; Sat, 13 Jun 2020 08:08:31 -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=RgkzJ3ITb5ZI9SV1H6aNAlv3j2W9pimEOqFd11gNNOA=; b=STGS1+/bnu5JnT4YMM+gruqzGyo/B+r5tmAM7lNRUglXu2VNPz8gC52yTlN3meVZ9R lo7mkKWq6pGQvyfZxrUn8gU7r+oQCNkt0vP5bpq7DbE3oydhFMWaDe7hEmzgrzBuj9es CqEw2GesUitcUrwnYYtulHgky60KGZvn9J1BeZbdmHQXEmuAbXdKAh9t7f4PCU1YyZOq nEGQOEjJ6td1CUgi6kLmfTTmKuvhvx6UakSo5S176oshBtePKNrTxM+C7aLUKQX6qmc1 wX1yo4Ah4rk9NwhYTzk2FnQB64WtOFBpPX+1KqBGRNR0jfURCLUsviOxcKkoIrbQVL2R p4vg== 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=RgkzJ3ITb5ZI9SV1H6aNAlv3j2W9pimEOqFd11gNNOA=; b=TZMN4detzRpGZdC+RaAGqHCgObPNR4exR7PhU7mh3Y4cYDkaABwPlWtGyCqkktpO3R M354zQSoZMlWo+UvZWGIqtPYO2MCHRHeDRzzXtPkNvbD/rvh/aUbnxLvl8ibnVzdH9cB /8iifiLoenDzuD7V6fvcFALtw20pHjLeUSEiu3Ualk3QpIXfN/g6JiRnfOn7o8bQqt2o NqBTkk1DhIN0uB4wWSle+/wuynw+MVdTsdKAsWj1ogopFT4456lckmEfY7U4RGV2upJG L1CDZrE1MaTtsqJ9hKv+wMDYKSW5eHWyCS/X1NeIDjjj1NaScSJqKemCuC6lkZ+t4Akt 8RQA== X-Gm-Message-State: AOAM530lL+N2T7qIzlBf4nEPVM5k5gXG+fCgfin39CktH53QHfY129dL Tw+I2QCn5VQJ+NhSHr0I823BaIKD X-Google-Smtp-Source: ABdhPJyrT1WoQkjqQRRq97WLUbNG1ytoJk+xjjHANs2ufYeu72aTPf++XhyYVFiNVmfAmBTxRMnzZQ== X-Received: by 2002:a63:214e:: with SMTP id s14mr14838205pgm.20.1592060442301; Sat, 13 Jun 2020 08:00:42 -0700 (PDT) Received: from vpn2.localdomain ([161.117.202.209]) by smtp.gmail.com with ESMTPSA id r7sm8902550pfl.117.2020.06.13.08.00.40 (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Sat, 13 Jun 2020 08:00:41 -0700 (PDT) From: lance.lmwang@gmail.com To: ffmpeg-devel@ffmpeg.org Date: Sat, 13 Jun 2020 23:00:28 +0800 Message-Id: <1592060430-3383-2-git-send-email-lance.lmwang@gmail.com> X-Mailer: git-send-email 1.8.3.1 In-Reply-To: <1592060430-3383-1-git-send-email-lance.lmwang@gmail.com> References: <1592060430-3383-1-git-send-email-lance.lmwang@gmail.com> Subject: [FFmpeg-devel] [PATCH 2/4] swscale/utils: return better error code from initFilter() 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 --- libswscale/utils.c | 27 ++++++++++++++------------- 1 file changed, 14 insertions(+), 13 deletions(-) diff --git a/libswscale/utils.c b/libswscale/utils.c index 6e218ba..dcd1dba 100644 --- a/libswscale/utils.c +++ b/libswscale/utils.c @@ -612,7 +612,7 @@ static av_cold int initFilter(int16_t **outFilter, int32_t **filterPos, av_assert0(filterSize > 0); filter = av_malloc_array(dstW, filterSize * sizeof(*filter)); if (!filter) - goto fail; + goto nomem; if (filterSize >= MAX_FILTER_SIZE * 16 / ((flags & SWS_ACCURATE_RND) ? APCK_SIZE : 16)) { ret = RETCODE_USE_CASCADE; @@ -1491,7 +1491,7 @@ av_cold int sws_init_context(SwsContext *c, SwsFilter *srcFilter, srcW, srcH, tmpFmt, flags, NULL, NULL, c->param); if (!c->cascaded_context[0]) { - return -1; + return AVERROR(ENOMEM); } c->cascaded_context[1] = sws_getContext(srcW, srcH, tmpFmt, @@ -1499,7 +1499,7 @@ av_cold int sws_init_context(SwsContext *c, SwsFilter *srcFilter, flags, srcFilter, dstFilter, c->param); if (!c->cascaded_context[1]) - return -1; + return AVERROR(ENOMEM); c2 = c->cascaded_context[1]; c2->is_internal_gamma = 1; @@ -1512,10 +1512,10 @@ av_cold int sws_init_context(SwsContext *c, SwsFilter *srcFilter, // to properly create the gamma convert FilterDescriptor // we have to re-initialize it ff_free_filters(c2); - if (ff_init_filters(c2) < 0) { + if ((ret = ff_init_filters(c2)) < 0) { sws_freeContext(c2); c->cascaded_context[1] = NULL; - return -1; + return ret; } c->cascaded_context[2] = NULL; @@ -1529,7 +1529,7 @@ av_cold int sws_init_context(SwsContext *c, SwsFilter *srcFilter, dstW, dstH, dstFormat, flags, NULL, NULL, c->param); if (!c->cascaded_context[2]) - return -1; + return AVERROR(ENOMEM); } return 0; } @@ -1548,13 +1548,13 @@ av_cold int sws_init_context(SwsContext *c, SwsFilter *srcFilter, srcW, srcH, tmpFormat, flags, srcFilter, NULL, c->param); if (!c->cascaded_context[0]) - return -1; + return AVERROR(ENOMEM); c->cascaded_context[1] = sws_getContext(srcW, srcH, tmpFormat, dstW, dstH, dstFormat, flags, NULL, dstFilter, c->param); if (!c->cascaded_context[1]) - return -1; + return AVERROR(ENOMEM); return 0; } } @@ -1591,7 +1591,7 @@ av_cold int sws_init_context(SwsContext *c, SwsFilter *srcFilter, srcW, srcH, tmpFormat, flags, c->param); if (!c->cascaded_context[0]) - return -1; + return AVERROR(EINVAL); c->cascaded_context[0]->alphablend = c->alphablend; ret = sws_init_context(c->cascaded_context[0], NULL , NULL); if (ret < 0) @@ -1601,7 +1601,7 @@ av_cold int sws_init_context(SwsContext *c, SwsFilter *srcFilter, dstW, dstH, dstFormat, flags, c->param); if (!c->cascaded_context[1]) - return -1; + return AVERROR(EINVAL); c->cascaded_context[1]->srcRange = c->srcRange; c->cascaded_context[1]->dstRange = c->dstRange; @@ -1678,6 +1678,7 @@ av_cold int sws_init_context(SwsContext *c, SwsFilter *srcFilter, if ( mprotect(c->lumMmxextFilterCode, c->lumMmxextFilterCodeSize, PROT_EXEC | PROT_READ) == -1 || mprotect(c->chrMmxextFilterCode, c->chrMmxextFilterCodeSize, PROT_EXEC | PROT_READ) == -1) { av_log(c, AV_LOG_ERROR, "mprotect failed, cannot use fast bilinear scaler\n"); + ret = AVERROR(EINVAL); goto fail; } #endif @@ -1870,16 +1871,16 @@ fail: // FIXME replace things by appropriate error codes tmpW, tmpH, tmpFormat, flags, srcFilter, NULL, c->param); if (!c->cascaded_context[0]) - return -1; + return AVERROR(ENOMEM); c->cascaded_context[1] = sws_getContext(tmpW, tmpH, tmpFormat, dstW, dstH, dstFormat, flags, NULL, dstFilter, c->param); if (!c->cascaded_context[1]) - return -1; + return AVERROR(ENOMEM); return 0; } - return -1; + return ret; } SwsContext *sws_alloc_set_opts(int srcW, int srcH, enum AVPixelFormat srcFormat,