From patchwork Wed Dec 7 19:02:48 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Andreas Rheinhardt X-Patchwork-Id: 39650 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a05:6a21:999a:b0:a4:2148:650a with SMTP id ve26csp873979pzb; Wed, 7 Dec 2022 11:03:03 -0800 (PST) X-Google-Smtp-Source: AA0mqf7ppu3JllMJe43a1qzVlPpGhWLLj9DKgu4LWFLexovVDB4jr081sivsVuPzQ88zEe6ogZzX X-Received: by 2002:a17:906:1b4b:b0:7c0:94d2:ea85 with SMTP id p11-20020a1709061b4b00b007c094d2ea85mr31712962ejg.27.1670439783231; Wed, 07 Dec 2022 11:03:03 -0800 (PST) Return-Path: Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org. [79.124.17.100]) by mx.google.com with ESMTP id l12-20020a056402254c00b00459c1e64776si5700729edb.412.2022.12.07.11.03.02; Wed, 07 Dec 2022 11:03:03 -0800 (PST) Received-SPF: pass (google.com: domain of ffmpeg-devel-bounces@ffmpeg.org designates 79.124.17.100 as permitted sender) client-ip=79.124.17.100; Authentication-Results: mx.google.com; dkim=neutral (body hash did not verify) header.i=@outlook.com header.s=selector1 header.b=sEqutILn; arc=fail (body hash mismatch); spf=pass (google.com: domain of ffmpeg-devel-bounces@ffmpeg.org designates 79.124.17.100 as permitted sender) smtp.mailfrom=ffmpeg-devel-bounces@ffmpeg.org; dmarc=fail (p=NONE sp=QUARANTINE dis=NONE) header.from=outlook.com Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 213D068A318; Wed, 7 Dec 2022 21:03:00 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from EUR03-AM7-obe.outbound.protection.outlook.com (mail-am7eur03olkn2025.outbound.protection.outlook.com [40.92.59.25]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 8457D68AEE0 for ; Wed, 7 Dec 2022 21:02:53 +0200 (EET) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=hZNSbJaUCFOeyDZyBl00onuXdoAnCv+qUIFibF0k08O89ezVERNSLf7e5cMmJneRgkHE51y+KcHxGERjAW0VN9Kt/AZ6N8aWiWqS9uTf0GJKH0hkqmPK+4EVRz/+b/oPao+D9Y1RK30CJDnIXXJytsCyAi/wOfgJ/PnuwHeTEGkO6UuXqUwUfU/1x7RvHHqLJcA3WRsioHHUm6MADRf9WXgPMeek9y5RXy0kVh6X1fISGBRnaxUX+sdif6ez+eTvs1gsIzh0YwboEtCaq/VhAi/596ZPp6m6rHb5VVgLa/LUpZNOfCDzQoj6+JHZdef7evG9kaJ0NLy9q1QVj8KIIA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=J40WAdhtiWHGLPayLsIBttqYYYkEP4NjMBmS9OCJoT4=; b=cnZsyKOcKJE590L1xccZWdUH/F1MG3Lxb/kav9I5W3U/Imve4MrJyoHgPpcCAuE9HoFB0H/Ka8IaP6BRk6CAi2yJ4Xq80u4GUiHZ3nCK8VsRi+Sl1PAvOJ50gKH78aSqsZzWYz6b1zxIIGBLP4luzczVGNUx8okZz590CbR95itVsYs+BXnBRWVGFGx/8+qDHvcxxK3Fjfri4HDVOfITbd21l64uKCAPfIr1vPBuWVk7uxA6PTZphWfGNODA3KJvqWaBo97JnIWpHf+9pkCmxugtMWYJfMxgp1Qza9BSDAQji8puF6giHS3eXTEklA42p52jYR4wtipdGAgDk20o4g== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=none; dmarc=none; dkim=none; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=outlook.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=J40WAdhtiWHGLPayLsIBttqYYYkEP4NjMBmS9OCJoT4=; b=sEqutILnzlcbu5GaGyJwg6d1FJugurocEO+01bfpzM0t6qYRUaPEPIbxl463vVTBqemmqQGR+G09k6QWJHgWrEo8A7iR/Qpkdc3TS/P1BGzrShj98XkowIjV8yTkpf/BH7OfQBBGc0EW3u7fkMeUTI87eGayt20M5BocqviCi981MIepNYU1adkQ+a26hCYcXju2D8MioEOa2fi8/DUM8dYzUh4mf5RdRMQdUIJNvVOhOU3joYvCrvKJO894SFjbzlj3vmbVSXVfP6yggDpGzeQeg/nhvac/z0c9jobK7kdjKJU5jEdECbPEATSbs3f5+yFYnAPZ8G07JGlN4Qh8rg== Received: from GV1P250MB0737.EURP250.PROD.OUTLOOK.COM (2603:10a6:150:8e::17) by AS4P250MB0462.EURP250.PROD.OUTLOOK.COM (2603:10a6:20b:4b1::14) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5880.14; Wed, 7 Dec 2022 19:02:52 +0000 Received: from GV1P250MB0737.EURP250.PROD.OUTLOOK.COM ([fe80::da14:61e3:630a:70b5]) by GV1P250MB0737.EURP250.PROD.OUTLOOK.COM ([fe80::da14:61e3:630a:70b5%6]) with mapi id 15.20.5880.014; Wed, 7 Dec 2022 19:02:52 +0000 From: Andreas Rheinhardt To: ffmpeg-devel@ffmpeg.org Date: Wed, 7 Dec 2022 20:02:48 +0100 Message-ID: X-Mailer: git-send-email 2.34.1 In-Reply-To: References: X-TMN: [zyv06Il5DtlSToRXcDUG7X9rsuDwJtPv] X-ClientProxiedBy: ZR2P278CA0043.CHEP278.PROD.OUTLOOK.COM (2603:10a6:910:47::17) To GV1P250MB0737.EURP250.PROD.OUTLOOK.COM (2603:10a6:150:8e::17) X-Microsoft-Original-Message-ID: <20221207190250.1724895-2-andreas.rheinhardt@outlook.com> MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: GV1P250MB0737:EE_|AS4P250MB0462:EE_ X-MS-Office365-Filtering-Correlation-Id: 44649562-9d19-4bad-8862-08dad885a411 X-MS-Exchange-SLBlob-MailProps: EgT5Wr3QDKwv8c23SHrwi4NNoC0VDHb7fWjtBai8Ay84StSeIJF0zkHJNrfSI7P1PudtUz+m3Dp9NJGRI3JhjSQABAKGm3111iXq8xDwsKf40jnETNv6dTXF8e1JerMH5sDpOuMCS4j4QTY9yr3Q36FbnavYXfSbdILqMDEuFOsRg4y8VZqr01OgcHVdUk45+5++uyVTJqzn3K6xjtEpyqBKf+0WWYmAFwA3ly8qEkKSRxcFG1+L3DowWDz6BqPwU9pxX6J5GZqqtv2aSTZjyER/oQvttDBvr8HqeRIVNl6xPIpqVoeD8yDy5mJL1FigqD6zti4T5bPHrgQIp+MCzp+C/PTL6zGmMWJytNsORuAxTRnIfMFwM3c+7sqryq/nIygxyt4ffCnjulO/MJ+NbIp7e8z8VHesTK4dtKTH3Nr+I9t83LIzpZ4x9JZmK+HQBxshadtHayKBeyaxCZsXeBWkTzKRrqBoGqiOKTLIIWYPjdAya4z7wTbQGlt+wXRalRdXlB2XXMe+EbLjRIojd99ULeDzlr5tHdNfQUl1c76iwSRPUkwB0Tn3cLeOPAYIjxEskOhVzLribr4bQgAyds/jdVECu5VtEVh/w1Eb+e79mxoLcxiqQn1fDE4mLz2VJtpOpCAW+IODz9cBenFjg0FCs9cGT7yOsvRTz6bNgcSqmqofnnLre9FjdJnqp9iySD6VsmxVYZrKGDJ4FhuouyTo171aPeZj8XRKM7BG648= X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: D5uv+IvYEiJPSmKOnyXAgxyMuL8gRW40oFR+GJWIRlhSf86+yyK+uGhEdUNdPan31WXdew7p9FTzURTpvZVQKfp3yxgYGb1edncLbKdNPkflqtcsfosAVNgVFvM4TgzUoaaGubtS2wBRd4863DmFtWMjcwgU0Oxjybro8zGrWxJ2llOxby/W9KKxhByjrxUghYtZYvRMuXtmLKid3ZOFC99L/hJqDopacQlaPjpfh34fDqO2kQV1fO5t7EjMgKdk18mDzwb4OkNfBtY18AJV0IaX4W63z11HcfwCpWfzKq/gtnxnCZExE/Mr1wjO++u38/PvR39ATV10mO1nlbcWOEYYD7/iQMZlilqPvtYvtS6RKkc40tkWp9tzpD8V/ulVro93+o69ymwXJtlF0p/os4I1ThqnaADKvxr+oJHvqrxmt514Kf5I0d3fA+yYb6/aScd+9Kzd115USHHBttbaM4/vFm6wJSin9QSpwYZSeKce8uxf8DIhIw4UK64m1/an4AtAuUkVOSJMdyGVFJLALpUcpdMKUcClpU4ktAi2rfYN/DnPnQeu0/GTOPWhNHzsMjeOL2aus+AIeexehmkCWRU46SNaJCYqTwUCC5+U5cJcns1Tl58O2eAWPhIsJg3P52UjMGJakFZWx7IQCk4WxCuaxC2liuebMYsLkBZ4G3c= X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: TGPy/nL38KnLWCRJeJA2eVVeU3BFE+3fvlJy28wpAkTbwb+mNhSFlzbwexp0a664M3gCHozw7/U4VDltXb92C1fLD/3WM+Vip+hPwCRUxcGsLHKZL/mlhSw3MDse82yRLvGo3Vm6hP7guxkkDikpnhGHxdQfkh59NAgeFw8pnkxAY9hVIdo5MAOSIlq/g9t/dj2jUreZJfqbuG2dR0MpWtY3chZNRKcoG3Lrn0qapX26jeVF2iH8i5CyuHO+zV4Gxj9DVCTbcVmOSLufn+hVXQ24l93M0P9HtQ0LGMgp5JGjvOyak6T5EGmRHYp5oF1qm6xLSzHzBf2u2fR359YVlsJ6k+04xDjwTBSZDMCWHt8h6KiaX+1uRQAGLM2nSrDDXVt8zd1+qCGQyByE7xExdHoyFLJoDkW3VMoRPPqgGcIw3ISdZ7MbVcO9TuO5U8xFLP6hTy8lzUTIBBnS48NHbpTUGL8zMgn+cs0VxY6JoqYPsO8MX1C3Z2baihXKFAs5/8ry7rUa0//Au9oJNhrv8EXKJn32+LBvBcnZ/J7xCzAyBNhIkkhn+nexRVJcN3UdvzcP9ova9jTgb0Szzsh4kVN4Kk2dg3UyV3iUxAIQbXm65HoLqkkNpxoGLJzLkGGgJCGuCS4eepwKOEm99Dke1qqAgzmk+ZfjVNzPn/QRe1mvo2UsfGV4vsJk0RE9ynwLTDlD/p2PUyOO+fd/JFSA6W0s3i/8LkFFIUX1jSc52rF+ANuoIxe2c96A52wBty4rN9to2zCryoqZPs8fetHMlpix00UnWZd2FMAjhs9kSyvea7vlKVVPiwah4M1a1Pv+ugcAJW5007pqvA8Ol4BtJvhrKL/R7cbYJt4RS1cYYjsrivBHOhL3ZS63lJLnzlfPvRjlG88WKxY1p1+JQZxmmk1qubhvi4PUVtNucdPB3wQZMYvCFKEEVMAiIRTlZtpHvZ/5xQx3tbmSmZBl9bsfWJ9wvH6XxPV3UsdPlURSc367wS/8y6WGgCufKwcN84J3KMMFn1GSitGxxThSyg9vtpSiOo7nu5QvyBOFIze+iA6rfYkN9U2D9/PTElmwu4sYyglYIs5GnfaHk4lwKAfiKV1xjUl38SM+EtQClxmJBSR+g++BJOb/0Y7UjpOMR4Y4nDhqyz8aFwi9W99Lnr5FpECZUuZNzhnCEGvXAjE4nbj/DIZTExTiEHjV+0Zhti1bQ9z6csELfGTADR9hoZXx0k5/QK8Kqd0HpZJdpf263rvbZLzEV/W8Mkb6uywX7lFUgKIkRlQj2Lv+U/1Jy8wSu1ZyaEa9GlJgwR2c7NEBzzE= X-OriginatorOrg: outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 44649562-9d19-4bad-8862-08dad885a411 X-MS-Exchange-CrossTenant-AuthSource: GV1P250MB0737.EURP250.PROD.OUTLOOK.COM X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 07 Dec 2022 19:02:52.3238 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 84df9e7f-e9f6-40af-b435-aaaaaaaaaaaa X-MS-Exchange-CrossTenant-RMS-PersistedConsumerOrg: 00000000-0000-0000-0000-000000000000 X-MS-Exchange-Transport-CrossTenantHeadersStamped: AS4P250MB0462 Subject: [FFmpeg-devel] [PATCH 3/5] avcodec/mjpegdec: Avoid checks whose results are known at compile-time X-BeenThere: ffmpeg-devel@ffmpeg.org X-Mailman-Version: 2.1.29 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: Andreas Rheinhardt Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" X-TUID: lWatCDxRRzmi Namely the result of the check for smv_next_frame > 0 in smv_process_frame(). Signed-off-by: Andreas Rheinhardt --- libavcodec/mjpegdec.c | 39 ++++++++++++++++++--------------------- 1 file changed, 18 insertions(+), 21 deletions(-) diff --git a/libavcodec/mjpegdec.c b/libavcodec/mjpegdec.c index b88d2ab889..2abc42a082 100644 --- a/libavcodec/mjpegdec.c +++ b/libavcodec/mjpegdec.c @@ -2349,24 +2349,9 @@ static void reset_icc_profile(MJpegDecodeContext *s) // SMV JPEG just stacks several output frames into one JPEG picture // we handle that by setting up the cropping parameters appropriately -static int smv_process_frame(AVCodecContext *avctx, AVFrame *frame) +static void smv_process_frame(AVCodecContext *avctx, AVFrame *frame) { MJpegDecodeContext *s = avctx->priv_data; - int ret; - - if (s->smv_next_frame > 0) { - av_assert0(s->smv_frame->buf[0]); - av_frame_unref(frame); - ret = av_frame_ref(frame, s->smv_frame); - if (ret < 0) - return ret; - } else { - av_assert0(frame->buf[0]); - av_frame_unref(s->smv_frame); - ret = av_frame_ref(s->smv_frame, frame); - if (ret < 0) - return ret; - } av_assert0((s->smv_next_frame + 1) * avctx->height <= avctx->coded_height); @@ -2379,8 +2364,6 @@ static int smv_process_frame(AVCodecContext *avctx, AVFrame *frame) if (s->smv_next_frame == 0) av_frame_unref(s->smv_frame); - - return 0; } static int mjpeg_get_packet(AVCodecContext *avctx) @@ -3055,14 +3038,28 @@ static int smvjpeg_receive_frame(AVCodecContext *avctx, AVFrame *frame) MJpegDecodeContext *s = avctx->priv_data; int ret; - if (s->smv_next_frame > 0) - return smv_process_frame(avctx, frame); + if (s->smv_next_frame > 0) { + av_assert0(s->smv_frame->buf[0]); + ret = av_frame_ref(frame, s->smv_frame); + if (ret < 0) + return ret; + + smv_process_frame(avctx, frame); + return 0; + } ret = ff_mjpeg_receive_frame(avctx, frame); if (ret < 0) return ret; - return smv_process_frame(avctx, frame); + av_assert0(frame->buf[0]); + av_frame_unref(s->smv_frame); + ret = av_frame_ref(s->smv_frame, frame); + if (ret < 0) + return ret; + + smv_process_frame(avctx, frame); + return 0; } const FFCodec ff_smvjpeg_decoder = {