From patchwork Wed Dec 7 19:02:47 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Andreas Rheinhardt X-Patchwork-Id: 39649 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a05:6a21:999a:b0:a4:2148:650a with SMTP id ve26csp873783pzb; Wed, 7 Dec 2022 11:02:50 -0800 (PST) X-Google-Smtp-Source: AA0mqf43i9ULFJ6lorjVGaN/Gyhpu3WeO5CvsPtHahGgh7FlOrCAGzKGocVaeVDBL7osUM3Qm4by X-Received: by 2002:aa7:d551:0:b0:468:fb2c:6c8c with SMTP id u17-20020aa7d551000000b00468fb2c6c8cmr81237565edr.340.1670439770443; Wed, 07 Dec 2022 11:02:50 -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 k14-20020a170906a38e00b007c0a7286cbesi12579868ejz.708.2022.12.07.11.02.48; Wed, 07 Dec 2022 11:02:50 -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=u3FgWah9; 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 1F13A68AFB5; Wed, 7 Dec 2022 21:02:46 +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-am7eur03olkn2046.outbound.protection.outlook.com [40.92.59.46]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id C0E116801F2 for ; Wed, 7 Dec 2022 21:02:39 +0200 (EET) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=kCoYxQPNQa/Pkx3bWSXEEJYB26YyugGoHO8AUAuMkqfzIAPE0tHa7fYGfwL8hRYfSupPukh34Tl8kchY1Slb7d/LBFd8B94AnzKRTML6Oc2/HsyFZXdlrK0foOs7Janxt5ZLGZlQcs/8jgmunFNl95QsyXoRNn62kHLnvr0q1C7e/R7o52sBcWyhDuB2d4xH8PINtKvtBMFGZPbIkW/3Twg1YeGpkw+fndOjKp13AKYvFt3aC/Cs1Cy0Vptk4QArnXeYNFiJtL4gpzidA280SigEj/DJ3v7srTwmSa/jVsikvtmAzV+fVGW9H5VdCqEhQMpxM5Z+Mu4+wTLILnsspw== 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=cqpyWtjRWxSGlWLUoDnBY9ZBBaXARIEp3F5AQKJmK18=; b=NXk8k2F3jMcxnBT92+oA32Bay8cjlcI5k+yrYJ0k0vqcSASgDb99ywQv6DdbeGobQgdBThSm6gxrZnQxbZ/jOWZItKstXKYXkIKZX7h/JUkQJyqlXugCdxDUgrvOrHmJYtF2CcFEftKE7INe55DROUGGKJ9EIQ+87X4Ov9aa88OEwzULymFEb3q9cfPKPP0zLXFr9+psSAXMd7zjn2LlfTynrhQNqKjMCg5yLcKpe5Zqe4zvtgSJFz5VIQCvev+p8LXFbNJJc+iGuCnvVaMmlkeZ1arwfbUsKjMh+GDjKa5RgGCpLXK6qFvqVqm3q6yeFF/FJoO/ngdxlAoviiLj2w== 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=cqpyWtjRWxSGlWLUoDnBY9ZBBaXARIEp3F5AQKJmK18=; b=u3FgWah9m003uM7Mh8gLs+40ZlW35OPHFT0y559XUQFSUFACdCNs91xP3m2S3PnRyTaGuPWQrW7BQKacL6/jsBVlL5Q2q88g10Ko/qik1Ml9WpaWMtepDJUVC7bOVWgf91oXkOINzBiTur1iRSsNgX6n8RzXkTeahYGDlqjLDcnHMxN80+lFy6PD1elGGxiSLuGr7Qlm2ZcI1+XTkDT+sCBIjnEE7jSoSwQhADU2wERfyeg9ArbZ1WyWfMTZ2dF4cBbPRyJ4N/1Zrjd+WyZ143ap+Y5zWCCOW+zVWZe1JvMkPPzkjQxY13a0FGY7Nnb6fHg8GAlFfoxlUa3zvna68g== 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:37 +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:37 +0000 From: Andreas Rheinhardt To: ffmpeg-devel@ffmpeg.org Date: Wed, 7 Dec 2022 20:02:47 +0100 Message-ID: X-Mailer: git-send-email 2.34.1 In-Reply-To: References: X-TMN: [qVakgpDJJK7T909oQX4c2Z4LphmKsKg7] 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-1-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: e9f0ba45-aa1e-4856-defd-08dad8859b62 X-MS-Exchange-SLBlob-MailProps: Vs63Iqe4sQlFh553GBY+W9LrXULtqhRnOklGlikwrZDnmHOIDamVprC3qwrH3RqPrGpaRA1MDCid7WtnlHiHs+DMVUKXtmZ3LwMMYlncRb2M8llI5wpu3bhGkCH1CJggzU5kloyUgDgHsSSlpCWb7sLDRpe7KiJr2fZo22GxpEncZdJtubb0xJgutP0GEPRTl4+HAwoSJy1AMduKkm7JATk6x7pdhyL/Nqfv+5E3mBqNiH3lOfWwrj+0gAagh/OmxlKEw5jABDhol3skSZNV2TzLktgLeFhM68VC2HL0eDIz8xv9Itt/2saTMWyCsaMSkKhxFa+GjnCdty1JhppjoMMKDprolPowJ+TaY3SyWh2xL2supWsJfAa6uveC53Fr/VSBXjU6c2IseX7JTS6EbJTLHULSY5+qAjCMjGt3RQp33Hw+jBXMnxVO9lNisFur2CzrB4tElBq/PyeuLzCge7LCEgSIIu9E/0Xl8dEtJxMbNTajZl0WWFrXy6i8xhbXLwWHoj4L/al43qr6N11rSN3N19BfqxpnuSqRBNjPLqz/cA2rVAUZhouvKLdnQMyd1Yk/RfoRrtno29soz29Efd+ai4eLwUn69u7s7c4uwCAYL5Fip789yU5iPGG2//+BigX9QMxXazrvRQJUnNKcrZkok91NgtRmM4ME1/CLAXXgyCqjrCqiHbyHxDcM6r9ewaYpT4s3BMMCZe38qml1JxTYXY9VaNu27ObLC4Zi81s= X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: 5jbMBnInMCDtLeWduBUf0MmzKPqgvSWQ5W4vRzRLQtLUJsLQh/luGrIbgGj1oqL3poKiPweiYq0ZYCGhmUACyzPGfwvpttAHwrbrplW6Be0joWgRGE7sjWWtfC+HqShNHfa0qg7/g+FlIb3Or9nYUDWqvSvkqZDgwZkFqFggloLbfsazqTFUZEgvax3TgUSy5rneHq/mTkSjaeJyhYEym2RDXeMyMc8dXVob+GL7ZjxCJG8+rw/MvbsEV/zFJUdYy68KjGBzuQ0KAmEG3BxDjfs4/eRwD8HJZi5eJ7LjuB90GL1APQrFp1SjO4+3+GVeY+5O1URYo0By7A0hvco3wFeNVuXopG4424PFuOSd3yHovvr+SpMZG+sCGPq6hDAXS1iYSR5CUrmFxFkzOgK2Dg6lIyS4DKg00YEZG1il5C71lVCCeKV61f0WqiHw29UydO/QsZOlgeU6HeoSFcCTZLk5RWoLamj9WANFy+ZQGCk6Elamp0tlGsMIPh/t1FRlPbQOAAkKUzr3uZ4K4EFON8oJpZ8wHUNqKc4ZbJY4dMeahODJfZT+8EKftr/8ohn4iHq4ufxJVSoDVlTRD4ykss04VtIO5CHG0apthlEP1cPxwe5wcNiebe209J31vG57d/UkUKAIxaiu+qmtQXzbaHG75wmB7wDpOsGdhU7umTs= X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: Y+l54ws1BIihVqmxFtontfotkhRqMqwnyyI8ekmeUWJxZFCRQbyILiQhoR4ZZ/0tyLYwAuZZOVqjEIdU/m8c1Y3iAThpXWTfZH3fwcxBgAq3GFlv1rELVYLJDi9be5CAovPGCewWG1Nw3+VFQXMNUcbWmpm3Q+IpEm/ODsPtf7LxwmfWmV26Adu+tXGF6qxlJ2WmwpIbZRaqe3bmcWWxnzPazNdlm8TiwAGaNtka703j5VuKj3yCfTuR08Ilm1bTRcq55lrPCnYdzZcejFo5LaajwftBRFgX91ffbS+gPWrB71TBud8omtFm818uexc0JbihnzkE/jqlpD/bB/0Gw4wfoPa0KFsv5N2wxiSt4fSqooZy8EDit+EoQ/yigwOuEKwdM3svg8SvgE6ptvkE8norIezgOea1L4BIWfXMjT/cdxA422wWfZw0ihhJ6hi/ady9/LYDyaS32ZKAstSNV/ND6ryygDsGcvRhk7ut3Cdoe8KtCLs1vYjWk6lG46TP1CjXiyF53VkukI2lrwm6pGc3ytRH6qIpQjNGePQbP5/gVo4B7LDpN6J3hG23jh12QDe11hcrKkxU+rb2nc0qz+Z/1mf3s7E777u62xzHMFlFopAyN+5aPhheTbTvMUmYLwp5dkJY5i6UjQVQEB0/rr8xQW9tRNbxu9/GIJtlAD2mNRG8hPfuhDCUeXxUVUiNEZJnAYdDzCsFTKMWgqSzWEBI4dP1nKXwhYDVxMrW+CwzIOEzNvAzGPRitbZYy+8Ch9h7buLd+mi26XM+vqvV9BuBhNLS1YGhzideAT7z/E4tKQ8phm2yAFu56p2JN5XFoNbA1EkM/UkzPJn9TpJOU7WDFYHuEyVZ9XvlIrXi+wTC72JMOdunq27K9a0zAZt86u5E4MRAgCBbKWbCx6wlJbVXQ8vUCbwkVz1U8sIHIPOg+mGa0A30kquv2+IRNeFwfcOtcG7OM0lj1y9jKgZx4RbHu6NELxO0BYghRdl+hKbL9+r5oZjnbsBDLeqPFunCqg2t0Kl8Fyy6TbdTawdf1gL909C56Bi1/+j2SBbgFZJcpbJhUVr5A4sh+ZUiByL83OMMAzeC+HKaSBg7X9oaq3aRBnTyRri27QoccEsVoP7ZUqr/JjQyZ1P7Vpl7oAiZUJHB3cD5rPVTnoVq6sTHow0g50HggH0B3SOswW542pG5BMryDYtRSd/0UsI80hXe54CFE419EUhA/Q1hm27wTyd+eusVv8yqQrKDq0kllTXgmZlLPXmBd5l1GwukFPBqCIcei6bKz1BiaUG1HxvZAw/7urLK0/vR22ciC6fxXdU= X-OriginatorOrg: outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: e9f0ba45-aa1e-4856-defd-08dad8859b62 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:37.8044 (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 2/5] avcodec/mjpegdec: Move special SMVJPEG-code to SMVJPEG-only function 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: Zjz7/nUU7iV1 This automatically avoids runtime checks for whether the decoder is SMVJPEG. Signed-off-by: Andreas Rheinhardt --- libavcodec/mjpegdec.c | 27 ++++++++++++++++----------- 1 file changed, 16 insertions(+), 11 deletions(-) diff --git a/libavcodec/mjpegdec.c b/libavcodec/mjpegdec.c index 28e2839072..b88d2ab889 100644 --- a/libavcodec/mjpegdec.c +++ b/libavcodec/mjpegdec.c @@ -2422,9 +2422,6 @@ int ff_mjpeg_receive_frame(AVCodecContext *avctx, AVFrame *frame) s->force_pal8 = 0; - if (avctx->codec_id == AV_CODEC_ID_SMVJPEG && s->smv_next_frame > 0) - return smv_process_frame(avctx, frame); - av_dict_free(&s->exif_metadata); av_freep(&s->stereo3d); s->adobe_transform = -1; @@ -2921,13 +2918,6 @@ the_end: av_dict_copy(&frame->metadata, s->exif_metadata, 0); av_dict_free(&s->exif_metadata); - if (avctx->codec_id == AV_CODEC_ID_SMVJPEG) { - ret = smv_process_frame(avctx, frame); - if (ret < 0) { - av_frame_unref(frame); - return ret; - } - } if (avctx->codec_id != AV_CODEC_ID_SMVJPEG && (avctx->codec_tag == MKTAG('A', 'V', 'R', 'n') || avctx->codec_tag == MKTAG('A', 'V', 'D', 'J')) && @@ -3060,6 +3050,21 @@ const FFCodec ff_thp_decoder = { #endif #if CONFIG_SMVJPEG_DECODER +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); + + ret = ff_mjpeg_receive_frame(avctx, frame); + if (ret < 0) + return ret; + + return smv_process_frame(avctx, frame); +} + const FFCodec ff_smvjpeg_decoder = { .p.name = "smvjpeg", CODEC_LONG_NAME("SMV JPEG"), @@ -3068,7 +3073,7 @@ const FFCodec ff_smvjpeg_decoder = { .priv_data_size = sizeof(MJpegDecodeContext), .init = ff_mjpeg_decode_init, .close = ff_mjpeg_decode_end, - FF_CODEC_RECEIVE_FRAME_CB(ff_mjpeg_receive_frame), + FF_CODEC_RECEIVE_FRAME_CB(smvjpeg_receive_frame), .flush = decode_flush, .p.capabilities = AV_CODEC_CAP_DR1, .caps_internal = FF_CODEC_CAP_EXPORTS_CROPPING |