From patchwork Tue Apr 6 05:40:09 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Andreas Rheinhardt X-Patchwork-Id: 26769 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 A230744A9DD for ; Tue, 6 Apr 2021 08:40:32 +0300 (EEST) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 725E7689D57; Tue, 6 Apr 2021 08:40:32 +0300 (EEST) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from EUR04-VI1-obe.outbound.protection.outlook.com (mail-oln040092075078.outbound.protection.outlook.com [40.92.75.78]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 6C7A56804FE for ; Tue, 6 Apr 2021 08:40:25 +0300 (EEST) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=aWdesvkzd8yISwHhcFiq3JCvY8CNoVnJ7kFFltb2ZF2nkRF20VL3VjNwZlzhCrOPo1bI44il9sVyKxUElAVi46IFMFSzdqxhI2c/tmwJfR/HZyRFOrhT6R2EMe+tG+zr6KAtbsDEMpClnn9WAb0ze9syr7nFdSQ6I2yERSdRPCoi87iCAyIKDBP5Oz4kLq3Q11cF8eD0xFLmanosxDtj4Quw++OfoXXwxnPH/l4E1pJqDy0TAsVWWTaO3GJvKpWOIO84sizxq8uWPrMXBjmW+CKDq5FQ+dYrKavSYEV35mo1oakBU0hl+cS28xsTzvM7ni7z8g0KJ9nwFQC3/xfdDQ== 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-SenderADCheck; bh=t0ukrHuZJJGCNqCfLP9TMB6pl5MpBtuf5lQp6aiB9tY=; b=TD4b3x45g5CMYVhDPoFegLSqJ0Li4X3FYI1pt2UOKOb+wZCC5Qi14V+HFG5zDN8ByjgeRhqMrn7CewtjJPzeiff1VGAugr1QtzUu6sQhyXBJQN+sTrbSER5w+bq8McBLRW/2UoQYatoIRCZDEqovZ1gG1rQ92LWPFmgLlKI8iF6QssQ1aMH1Jacdygj8/ROi57QZnlkM8Q9Hz58VUyJALfG1au/nD1NGY9fysZP19JhVbzOMSQmyTMAWLI+R8HTQe5dP4FtXQAezbrU57odVJNsyJcJztES3eAxA/sETIc+gll9Cp/bC/y1ACB63Rav42qOJhq41BLLOI/WMCssIlw== 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=t0ukrHuZJJGCNqCfLP9TMB6pl5MpBtuf5lQp6aiB9tY=; b=HvJQdql/3FQkYTTEvVqmfPIx17sF1sjKvSEvheoipWRuknksxhyFs81SH/etITBHy+4E27AGzPkC4bgR/yGLoPrj5y0MGeEt87659R1wtQV0vUkp0DgO/iLYfZOhTLkpOuRU8lSHNxP5yu8uYe4ymNDWOA/+p5vFnGkpDdSmjk9OfmFROrqbox3aNR9kankmWH875dZT2P7UqOJI9Bnz7fUkQBBXtfWOJcbnZdq2a4WWY/8RFOZVRCyrzKgzLrCShAhzx0OPVVNZDBEcXw4r3P4ivxd6sobg3x4Q7g6wZjr8O/PrjvobyxGOzLitRpDCjlp+HC/2Y/UHifJazS2uEQ== Received: from HE1EUR04FT014.eop-eur04.prod.protection.outlook.com (2a01:111:e400:7e0d::41) by HE1EUR04HT128.eop-eur04.prod.protection.outlook.com (2a01:111:e400:7e0d::223) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3999.28; Tue, 6 Apr 2021 05:40:24 +0000 Received: from HE1PR0301MB2154.eurprd03.prod.outlook.com (2a01:111:e400:7e0d::48) by HE1EUR04FT014.mail.protection.outlook.com (2a01:111:e400:7e0d::164) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3999.28 via Frontend Transport; Tue, 6 Apr 2021 05:40:24 +0000 X-IncomingTopHeaderMarker: OriginalChecksum:E68518861FB30A9C797A19AE97D37344D0F784906256D47B00C389D84F1656AB; UpperCasedChecksum:C1832D775363FB21543EAECE12CD3FA6D564DA864E16CFC677F5A29620CF97F7; SizeAsReceived:7606; Count:48 Received: from HE1PR0301MB2154.eurprd03.prod.outlook.com ([fe80::8128:5de5:4e94:9a21]) by HE1PR0301MB2154.eurprd03.prod.outlook.com ([fe80::8128:5de5:4e94:9a21%3]) with mapi id 15.20.3999.032; Tue, 6 Apr 2021 05:40:24 +0000 From: Andreas Rheinhardt To: ffmpeg-devel@ffmpeg.org Date: Tue, 6 Apr 2021 07:40:09 +0200 Message-ID: X-Mailer: git-send-email 2.27.0 In-Reply-To: References: X-TMN: [nWVXJkGXzGVaJ5wjFq9J0oxmzmgB6DGj] X-ClientProxiedBy: AM0PR03CA0024.eurprd03.prod.outlook.com (2603:10a6:208:14::37) To HE1PR0301MB2154.eurprd03.prod.outlook.com (2603:10a6:3:2a::22) X-Microsoft-Original-Message-ID: <20210406054016.452174-1-andreas.rheinhardt@outlook.com> MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 Received: from sblaptop.fritz.box (188.192.137.96) by AM0PR03CA0024.eurprd03.prod.outlook.com (2603:10a6:208:14::37) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3999.28 via Frontend Transport; Tue, 6 Apr 2021 05:40:23 +0000 X-MS-PublicTrafficType: Email X-IncomingHeaderCount: 48 X-EOPAttributedMessage: 0 X-MS-Office365-Filtering-Correlation-Id: 5058fda6-cde8-4332-a6c6-08d8f8be7969 X-MS-Exchange-SLBlob-MailProps: S/btQ8cKWiSbyvoxwwqtt9ZF5aXTIDASftzQYSlv0fj3ABkP+jOTiiPk1PSgngSk8UHzvLj1VTYNxrV04YllFOCNtO0M7lDv32j6CY8xK+OM2WtG8/DJIYUcYDsqUnh77KDkaGTVMlybrMP63PSm2S8VFHiPF88AxyOw7VYCH0a09vBwUSVcKp0IAry+u1VSsjE41kvPCmaP8p/2KbHNwESfOr+mncbFAlfx6mC51cD455Y4bW6oqb5PChS430nw4rWbbry/wwTZhAcFYCbs6fA9Sl07ZDnkEfPYlkETfl/DUR0kylcFK/rapN5+2ZRqPp0BrO/vqTZs49GHbN9zS8o/sCSivwaXxQsGqDxGE7E9G+O88QjSEFEimQ3x4ctdOHDYBTNd2nEhk1M9cig9L+ULjUHqXpIHK9KAnEEGeWImGshWKJ6GeK6Q5dQjat5xHn14bf95NstD4CyzCyORaZyeUOxxru63B5L7ZHVrdi/GRETMcgDRvY+bdDY13m550N0pNeKTbux8TL1M82jAWmgGdP8AsMfJ8yk+rk9lkZXEQRCjU6gqkoz0aBLhI79dTbsFkmGTvMrcnL/bkvMvApWfOu5WU1gJkGKylnJ1/ozTpjR98Y7a5y0LBAq24WkSrtezemehVCM6jjpCHPMj0cgINynJrx8cyiEyWCaAEXERZnPYkXKFZV9J/YedGFy2Tn0xhIfdLGMniwi/7kDzirZstB4flxmuZDPzVuzV7sEaqp+8Ci0oS4phIGz9s+dBDqytLBFiO0c= X-MS-TrafficTypeDiagnostic: HE1EUR04HT128: X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: hKTrzg/QUpI5sC1Z3TubbV4TllNUisoH/lVJEXM1f9GXlWWo3FgCrgvbLtqfwLMa66wvEVOWxF7YG67t+X82c2V3JEtGJixjkUWl5tGvLcUMgllP0LeW2ezOFmyJoSF2uGi+gATypeuVFFXnbUh/HOHeQoCzJY5L1oD1iDvgVhs2M9F2KNO5WKfU3jsV5jTARIM2jGWlNh5qxtMwHea7XxTht+OaC2huJEKppMl4EfVYmtbLFCGa8WQl7bRb6V6pNb9bRRhPBYN83/Bx212a/COJeM2J317PGGPWOa/YrHo9RjVogQgkCe2DTbjqm+ooyLjJYjItVv/MLVdrbQCBlpaKoM57Z2cENK2llPpGe2uQ/jHFMgv8sw9EosoaynpG/vAmU+DHsMyM7xqgFQ3Rig== X-MS-Exchange-AntiSpam-MessageData: z2Zs5xq+ZsQAEVTA3Rse1vmYM2SEg84TXHe64w7iVIi+nQPWv1c9V8yzVuQ/cAZeXfL2tRHdU6G2/wODJIwMLf0ojCLopyqRMXN/yL/MNSzD8BchFJgDRJmqa+aiSKOCVl5l1wPtCW8tr5vl7UyJnw== X-OriginatorOrg: outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 5058fda6-cde8-4332-a6c6-08d8f8be7969 X-MS-Exchange-CrossTenant-OriginalArrivalTime: 06 Apr 2021 05:40:23.9146 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 84df9e7f-e9f6-40af-b435-aaaaaaaaaaaa X-MS-Exchange-CrossTenant-AuthSource: HE1EUR04FT014.eop-eur04.prod.protection.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: Internet X-MS-Exchange-CrossTenant-RMS-PersistedConsumerOrg: 00000000-0000-0000-0000-000000000000 X-MS-Exchange-Transport-CrossTenantHeadersStamped: HE1EUR04HT128 Subject: [FFmpeg-devel] [PATCH 2/9] avcodec/mpegvideo_enc: Make AMV encoder usable without MJPEG encoder 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: Andreas Rheinhardt Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" Up until now the relevant checks all checked for the existence of the MJPEG encoder only. Signed-off-by: Andreas Rheinhardt --- libavcodec/mpegvideo_enc.c | 21 +++++++++++++-------- 1 file changed, 13 insertions(+), 8 deletions(-) diff --git a/libavcodec/mpegvideo_enc.c b/libavcodec/mpegvideo_enc.c index 79c4071bad..7c9d1bd894 100644 --- a/libavcodec/mpegvideo_enc.c +++ b/libavcodec/mpegvideo_enc.c @@ -789,17 +789,17 @@ FF_ENABLE_DEPRECATION_WARNINGS avctx->delay = s->low_delay ? 0 : (s->max_b_frames + 1); s->rtp_mode = 1; break; +#if CONFIG_MJPEG_ENCODER || CONFIG_AMV_ENCODER case AV_CODEC_ID_MJPEG: case AV_CODEC_ID_AMV: s->out_format = FMT_MJPEG; s->intra_only = 1; /* force intra only for jpeg */ - if (!CONFIG_MJPEG_ENCODER) - return AVERROR_ENCODER_NOT_FOUND; if ((ret = ff_mjpeg_encode_init(s)) < 0) return ret; avctx->delay = 0; s->low_delay = 1; break; +#endif case AV_CODEC_ID_SPEEDHQ: s->out_format = FMT_SPEEDHQ; s->intra_only = 1; /* force intra only for SHQ */ @@ -1097,7 +1097,7 @@ av_cold int ff_mpv_encode_end(AVCodecContext *avctx) ff_rate_control_uninit(s); ff_mpv_common_end(s); - if (CONFIG_MJPEG_ENCODER && + if ((CONFIG_MJPEG_ENCODER || CONFIG_AMV_ENCODER) && s->out_format == FMT_MJPEG) ff_mjpeg_encode_close(s); @@ -1926,7 +1926,7 @@ FF_ENABLE_DEPRECATION_WARNINGS frame_end(s); - if (CONFIG_MJPEG_ENCODER && s->out_format == FMT_MJPEG) + if ((CONFIG_MJPEG_ENCODER || CONFIG_AMV_ENCODER) && s->out_format == FMT_MJPEG) ff_mjpeg_encode_picture_trailer(&s->pb, s->header_bits); if (avctx->rc_buffer_size) { @@ -2596,11 +2596,12 @@ static av_always_inline void encode_mb_internal(MpegEncContext *s, if (CONFIG_H263_ENCODER) ff_h263_encode_mb(s, s->block, motion_x, motion_y); break; +#if CONFIG_MJPEG_ENCODER || CONFIG_AMV_ENCODER case AV_CODEC_ID_MJPEG: case AV_CODEC_ID_AMV: - if (CONFIG_MJPEG_ENCODER) - ff_mjpeg_encode_mb(s, s->block); + ff_mjpeg_encode_mb(s, s->block); break; +#endif case AV_CODEC_ID_SPEEDHQ: if (CONFIG_SPEEDHQ_ENCODER) ff_speedhq_encode_mb(s, s->block); @@ -2853,7 +2854,8 @@ static void write_slice_end(MpegEncContext *s){ } ff_mpeg4_stuffing(&s->pb); - }else if(CONFIG_MJPEG_ENCODER && s->out_format == FMT_MJPEG){ + } else if ((CONFIG_MJPEG_ENCODER || CONFIG_AMV_ENCODER) && + s->out_format == FMT_MJPEG) { ff_mjpeg_encode_stuffing(s); } else if (CONFIG_SPEEDHQ_ENCODER && s->out_format == FMT_SPEEDHQ) { ff_speedhq_end_slice(s); @@ -3921,11 +3923,14 @@ static int encode_picture(MpegEncContext *s, int picture_number) s->mb_x = s->mb_y = 0; s->last_bits= put_bits_count(&s->pb); switch(s->out_format) { +#if CONFIG_MJPEG_ENCODER || CONFIG_AMV_ENCODER case FMT_MJPEG: - if (CONFIG_MJPEG_ENCODER && s->huffman != HUFFMAN_TABLE_OPTIMAL) + /* s->huffman == HUFFMAN_TABLE_OPTIMAL can only be true for MJPEG. */ + if (!CONFIG_MJPEG_ENCODER || s->huffman != HUFFMAN_TABLE_OPTIMAL) ff_mjpeg_encode_picture_header(s->avctx, &s->pb, &s->intra_scantable, s->pred, s->intra_matrix, s->chroma_intra_matrix); break; +#endif case FMT_SPEEDHQ: if (CONFIG_SPEEDHQ_ENCODER) ff_speedhq_encode_picture_header(s);