From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org [79.124.17.100]) by master.gitmailbox.com (Postfix) with ESMTP id D6D38463C0 for ; Tue, 16 May 2023 16:19:24 +0000 (UTC) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id A84FF68BFE7; Tue, 16 May 2023 19:19:21 +0300 (EEST) Received: from EUR01-HE1-obe.outbound.protection.outlook.com (mail-he1eur01on2137.outbound.protection.outlook.com [40.107.13.137]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 3FB7A68BB8E for ; Tue, 16 May 2023 19:19:15 +0300 (EEST) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=ba9wVCrpNx9pYH/09tjxXixY/JnCHHG0Gj7q9fTnyvr7N/twWBY/2XW5oGbh7B/MYB20WpVT0wAZMYcB51JLIXS5Tth3W6+CanaIay3klaLV+vLtAJrBwujoWxwVv7PL+Ig0Y21lr8bP480vlmA6e/9CWopQOcdVnBgspJwC35C/rVFfplHGUY5dfEHZFO5IN8gHYv+lbBG8PuIIJOTqaAJgq4LdYqEt2867uXIJEZAVyd/kwTSOTm2Guq+Z9ribqcv766o1afHYQA52orOYgivitTMQ7HmCkE1lj8PVUrajmYHx6ZF4DC2WS1L9OxO961ZV4eCen5QitWV2ZyJktw== 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=jP8uKYd/N1z9TyTkY0KbgLiXoYT4RAarxHER9Da42pE=; b=QVguXZqevdMCuOauxI74YEV34/tVCDxPsf3TwCkPYwwpMXrZ6XxIz1P9lj3C4Dbz8YMHLZ5eupnf49+MM9rsCqZCw2z1FDTXizRiIqpNe67S4b97LCWllRPUZCrTAOP5/8kws6DS3V3IsBX5kKZyrEIOdOc15ta/3aHixTJH+cf41KpyLxna8R9WfzfqWtHMZgCom8Xxn2Erd6x31csjZaxYQ0isZ3hZpwP/WGZ+TPlmOF/bXb2i2JWsRvPgdlzoXd5yqA1ZqD7Ld7c1TMcEzigGu4ywdlw4TqJpmrO3a6Rj3DaOL21uC++VASerOWQWFa2RbSh3pTf74B/Bu81nvA== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=qt.io; dmarc=pass action=none header.from=qt.io; dkim=pass header.d=qt.io; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qt.io; s=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=jP8uKYd/N1z9TyTkY0KbgLiXoYT4RAarxHER9Da42pE=; b=MAie3RULVjj2PraKy9Qha0IA3GsDbejRjBr3RLhCUZOq5BDmVh8Vjuh4xKJVAxde7mPKmL7WeGhr+IyOGZliQ8+7N/Pn0rXWPkGWttaO1Wj0aKKM/9Cq8fowH1ygn7vlhAaaBCbCIFQTshXNbwFpHYUzQhvm+Pobl7Fxx+ZyGI8= Received: from DBAPR02MB6165.eurprd02.prod.outlook.com (2603:10a6:10:18e::8) by PAXPR02MB10342.eurprd02.prod.outlook.com (2603:10a6:102:248::13) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6387.32; Tue, 16 May 2023 16:19:13 +0000 Received: from DBAPR02MB6165.eurprd02.prod.outlook.com ([fe80::fcdd:550f:463b:bd2d]) by DBAPR02MB6165.eurprd02.prod.outlook.com ([fe80::fcdd:550f:463b:bd2d%7]) with mapi id 15.20.6387.032; Tue, 16 May 2023 16:19:13 +0000 From: Samuel Raposo Vieira Mira To: Zhao Zhili , FFmpeg development discussions and patches Thread-Topic: [FFmpeg-devel] [PATCH v2] avcodec/mediacodec: Add AV1 encoder Thread-Index: AQHZfPBex/fBJZOYoUWXWFZjUEoIUa9Oif4AgA6gQK4= Date: Tue, 16 May 2023 16:19:13 +0000 Message-ID: References: In-Reply-To: Accept-Language: en-GB, en-US Content-Language: en-GB X-MS-Has-Attach: X-MS-TNEF-Correlator: authentication-results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=qt.io; x-ms-publictraffictype: Email x-ms-traffictypediagnostic: DBAPR02MB6165:EE_|PAXPR02MB10342:EE_ x-ms-office365-filtering-correlation-id: b854e9a8-58b1-4f77-b320-08db562949b7 x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: wM00euHLL5kWdEKVDCSShek8uMuhITwZqhm6Pb8bPBCtgb66Y5FT0syJufx8dPorV6gzf+MWj7PyrZCW5EkspY0NMPm/3T1FIeMGVNyj3k+HIyIKUzos2qrAcTEH2LzR74WQXVeBPr2p+EajbHXIeDfnY8kGPWigxKh9qkY0ujLKlnk6+Z5J5QSCDOArLkH15d8wfDEJ/yIKh05/QHISkc7n82J2BnufnWwqEDZyJOOPvVKnDx6XHJ617i4G3LuQq2ZuE8GDXP2KH1YUZUQVvgKe1WwlL/kjCHi4lKqwzKu0D+XmGNEBo2KCE4aRqkcdGsHQfNoWFx7L/JFy921SQvmT/f+o+arDHrhTyUNg/uFm7GNqLPYeeEwkAqKGjlETXlwlG9udhBTVD2c/9CGCVL9/89Tp9dJ5vmvlZLMzYO3d86yxAnAWz+Dy85plQ4lgr3q1PHUwqU+NEDz7vmCcioX5MLIgzSFRIBr4lbRCQcDBjWoOMIHNb8+eZSCsamMzSHxBCLzhdVxDsEAoZJes8IutaSeZM9pKgjJ/xpsNwvynGJLaMGW/SY0nWeUudTrBEjFElM9NgpHfC521GJ5zQqAjRPlEu2otFiP/IP2JWYus1JaU7i/bo91lmgtZxlOC5dKbcTBmAYIbxIOM1m1xJw== x-forefront-antispam-report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:DBAPR02MB6165.eurprd02.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230028)(4636009)(396003)(136003)(346002)(39850400004)(376002)(366004)(451199021)(6506007)(9686003)(26005)(55016003)(122000001)(38100700002)(33656002)(83380400001)(38070700005)(86362001)(186003)(8676002)(66476007)(64756008)(66556008)(66446008)(76116006)(2906002)(66946007)(478600001)(8936002)(5660300002)(7696005)(41300700001)(52536014)(110136005)(91956017)(19627235002)(71200400001)(316002)(48020200002); DIR:OUT; SFP:1102; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?us-ascii?Q?usgNv9BmsjpPwLIWphemRJQbRPFSZ0qYX/p5tCa6ZIiDV6l247BDzcAkAJc0?= =?us-ascii?Q?TlSXslxeNrZjKbrk34D1dDv0mj4isKcppnUHzotXXycldXhBXBKBoe9fRUrS?= =?us-ascii?Q?Kz86lqXXk6P5UAxzkvQypMd5h7h9+/FacNJpJ8g9c05t4EQgStGQ527c4GAQ?= =?us-ascii?Q?CHj99t77IeT9Q8JIq6hkIrONIZTSUyuRimauwVhS/GRaHfdYMZnIpzvBhV+q?= =?us-ascii?Q?YRlEfSl2KKxrXaGLdpKDEuwY1uej/xo3hhziKtiEIVH3I5h7JRpWueFxUx0T?= =?us-ascii?Q?MWkqsPSGg9e6fsl2Wja0NokBDzks3H+bsCZyytNvITZrDR/StpwhS2BW9ctn?= =?us-ascii?Q?HqrV0bDHZ5ZOOJANrPnar8niZh8v1pcCRB982SjieqhosLa+9G5suk4VTMxl?= =?us-ascii?Q?QRfxpu1b4Ma9NbHnTAYJr3KITDLk5G8s91bE9fligOVTKJrl67dbJn9wou5B?= =?us-ascii?Q?b5AJRvsuwY3W2/7ndge4qgrVH7GZ1yI5WDsuz4tFKJXsTTbxEfVmYXwholr+?= =?us-ascii?Q?RFTJhMybtpe7dS86EFW8uy+H/7OMBL7PFj2Q0VTuuRitlBc+J191qAgX7GBv?= =?us-ascii?Q?a8/p3zdfjIU9ouwYDw7BsimTA0brmL/9MX3c47/EXZ0fRawEPz6zqLMjt1Eg?= =?us-ascii?Q?2+P/5d70Vs0ltTdx5uKmuf5V0jFmHRABKdHn0YRhdCxxI7XDes9soNDBGZjt?= =?us-ascii?Q?/O9/UCPeAiZx5Y78FIXZjWJHsOKKow/PLMs0S3gRkzwEHL4csmgqWcq0kenD?= =?us-ascii?Q?9YCpx9PGp6Ft2mKG7F3gRzQlfKsaap2EM2VtftEzHn3hEaX6iqCr9OH+RS1r?= =?us-ascii?Q?B/zJ3dDUYLZeUPp6TBLt2Ix3HlGlLsedivhe3zPSohP/Pk1GiB2PmSSban/v?= =?us-ascii?Q?RVWu2daPYMEecW9HBenwk4Wm8BESVnr0Iu1utNNzQaw/50qXv3Ax2ufngSTl?= =?us-ascii?Q?GX95as27n0FKXBW+zvTpOHT2Xni4ERUpBF7ZzWArP+cTjF8FKw87ZPLoYlvM?= =?us-ascii?Q?hiagV+3qaPlLVWAclM2kibNOlVJBa+THZhe8BmoxrourqECPp/13seOiH52L?= =?us-ascii?Q?C6cfDWsb/lMW21F5zFaYN/35ZH71MLDd0pMNtPe4vssB+t15u5K4uc4jYwT3?= =?us-ascii?Q?FdJjGrZu534cN5YoWNNa88CU0iqqV72fBArP471TmKfYuGLvOtbvKIYGmYta?= =?us-ascii?Q?S2+NQVSBYje8zV5D127U0LY+x71kpLwxILjEdYo72pI/b+wnZFyQFbFEbfMX?= =?us-ascii?Q?DAk6NKAjSYux9nP0lt7sNbuvfdzBZrrmUTg/O4hGJ48kmWGNz80OLZzZ2FN/?= =?us-ascii?Q?LT0ISblTfcHST2dFHNk5YtkJjXT8gRHzltq27z4ec6KDuVqpoSh2PxaNB78H?= =?us-ascii?Q?DJWYiPapJuYjNW8BO2yf6I0Ry3gFC+dOk65L1NnIlaLVemUKe8L9J5ulAvTc?= =?us-ascii?Q?ZjRKgOEXEgFxiX5mhvfhCLF0kB0zlENYszDOaaGXI5sXbR4ToQd3orx2Kjo5?= =?us-ascii?Q?GUAoqStbFW/sB60e+byo8Yc5VEr7Q4e3UbEXgeJe7B+OUvB8K996Jmi3Bgk3?= =?us-ascii?Q?uWyaZtsfs4bxB9dqfb3CYM60xitLROIUT4qG3Qqg4t0v670iH9DwRGUlVaHs?= =?us-ascii?Q?UA=3D=3D?= MIME-Version: 1.0 X-OriginatorOrg: qt.io X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: DBAPR02MB6165.eurprd02.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: b854e9a8-58b1-4f77-b320-08db562949b7 X-MS-Exchange-CrossTenant-originalarrivaltime: 16 May 2023 16:19:13.3139 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 20d0b167-794d-448a-9d01-aaeccc1124ac X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: dhemco31LCs4Y9NmUFSZNupateRKka3e6IFvU5ApLk3dYuRo1TcWZFuic8zhNOHKkbJwxoUQYSJ/gz2QJd4WKg== X-MS-Exchange-Transport-CrossTenantHeadersStamped: PAXPR02MB10342 X-Content-Filtered-By: Mailman/MimeDel 2.1.29 Subject: Re: [FFmpeg-devel] [PATCH v2] avcodec/mediacodec: Add AV1 encoder 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 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" Archived-At: List-Archive: List-Post: All comments done. Thanks for the review :) > By the way, which hardware did you use to run the test? I used a Samsung S21 and a Pixel 6. From: Zhao Zhili Date: Sunday, 7. May 2023 at 11.57 To: Samuel Raposo Vieira Mira , FFmpeg development discussions and patches Subject: Re: [FFmpeg-devel] [PATCH v2] avcodec/mediacodec: Add AV1 encoder On Tue, 2023-05-02 at 12:22 +0000, Samuel Raposo Vieira Mira wrote: > @@ -3162,6 +3162,7 @@ aac_mf_encoder_deps="mediafoundation" > ac3_mf_encoder_deps="mediafoundation" > av1_cuvid_decoder_deps="cuvid CUVIDAV1PICPARAMS" > av1_mediacodec_decoder_deps="mediacodec" > +av1_mediacodec_encoder_deps="mediacodec" This patch format is broken too. > > diff --git a/libavcodec/mediacodec_wrapper.c b/libavcodec/mediacodec_wrapper.c > index 1c29bb7406..015f275a0f 100644 > --- a/libavcodec/mediacodec_wrapper.c > +++ b/libavcodec/mediacodec_wrapper.c > @@ -35,6 +35,8 @@ > #include "ffjni.h" > #include "mediacodec_wrapper.h" > +#include "libavutil/pixdesc.h" > + Please keep the include in some order. > struct JNIAMediaCodecListFields { > jclass mediacodec_list_class; > @@ -345,6 +347,11 @@ int ff_AMediaCodecProfile_getProfileFromAVCodecContext(AVCodecContext *avctx) > static const int MPEG4ProfileAdvancedScalable = 0x4000; > static const int MPEG4ProfileAdvancedSimple = 0x8000; Missing an empty line between MPEG4 and AV1. > + static const int AV1ProfileMain8 = 0x1; > + static const int AV1ProfileMain10 = 0x2; > + static const int AV1ProfileMain10HDR10 = 0x1000; > + static const int AV1ProfileMain10HDR10Plus = 0x2000; > + > // Unused yet. > (void)AVCProfileConstrainedHigh; > (void)HEVCProfileMain10HDR10; > @@ -353,6 +360,8 @@ int ff_AMediaCodecProfile_getProfileFromAVCodecContext(AVCodecContext *avctx) > (void)VP9Profile3HDR; > (void)VP9Profile2HDR10Plus; > (void)VP9Profile3HDR10Plus; > + (void)AV1ProfileMain10HDR10; > + (void)AV1ProfileMain10HDR10Plus; > if (avctx->codec_id == AV_CODEC_ID_H264) { > switch(avctx->profile) { > @@ -436,6 +445,9 @@ int ff_AMediaCodecProfile_getProfileFromAVCodecContext(AVCodecContext *avctx) > default: > break; > } > + } else if(avctx->codec_id == AV_CODEC_ID_AV1) { > + const AVPixFmtDescriptor *desc = av_pix_fmt_desc_get(avctx->pix_fmt); > + return desc != NULL && desc->comp[0].depth == 8? AV1ProfileMain8 : AV1ProfileMain10; > } I'm not sure about how mediacodec handles 10bit encoding and need some tests. Let's keep the function simple first by just map avctx->profile to MediaCodec profile. > return -1; > diff --git a/libavcodec/mediacodecenc.c b/libavcodec/mediacodecenc.c > index e4b583a542..10da43c3e7 100644 > --- a/libavcodec/mediacodecenc.c > +++ b/libavcodec/mediacodecenc.c > @@ -170,6 +170,9 @@ static av_cold int mediacodec_init(AVCodecContext *avctx) > case AV_CODEC_ID_MPEG4: > codec_mime = "video/mp4v-es"; > break; > + case AV_CODEC_ID_AV1: > + codec_mime = "video/av01"; > + break; > default: > av_assert0(0); > } > @@ -779,16 +782,16 @@ DECLARE_MEDIACODEC_ENCODER(hevc, "H.265", AV_CODEC_ID_HEVC) > enum MediaCodecVP9Level { > VP9Level1 = 0x1, > - VP9Level11 = 0x2, > + VP9Level11 = 0x2, > VP9Level2 = 0x4, > - VP9Level21 = 0x8, > - VP9Level3 = 0x10, > + VP9Level21 = 0x8, > + VP9Level3 = 0x10, > VP9Level31 = 0x20, > VP9Level4 = 0x40, > - VP9Level41 = 0x80, > - VP9Level5 = 0x100, > + VP9Level41 = 0x80, > + VP9Level5 = 0x100, > VP9Level51 = 0x200, > - VP9Level52 = 0x400, > + VP9Level52 = 0x400, > VP9Level6 = 0x800, > VP9Level61 = 0x1000, > VP9Level62 = 0x2000, > @@ -837,15 +840,15 @@ DECLARE_MEDIACODEC_ENCODER(vp9, "VP9", AV_CODEC_ID_VP9) > enum MediaCodecMpeg4Level { > MPEG4Level0 = 0x01, > - MPEG4Level0b = 0x02, > - MPEG4Level1 = 0x04, > + MPEG4Level0b = 0x02, > + MPEG4Level1 = 0x04, > MPEG4Level2 = 0x08, > - MPEG4Level3 = 0x10, > + MPEG4Level3 = 0x10, > MPEG4Level3b = 0x18, > - MPEG4Level4 = 0x20, > - MPEG4Level4a = 0x40, > + MPEG4Level4 = 0x20, > + MPEG4Level4a = 0x40, > MPEG4Level5 = 0x80, > - MPEG4Level6 = 0x100, > + MPEG4Level6 = 0x100, > }; Don't do unrelated code format in this patch. By the way, which hardware did you use to run the test? _______________________________________________ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org https://ffmpeg.org/mailman/listinfo/ffmpeg-devel To unsubscribe, visit link above, or email ffmpeg-devel-request@ffmpeg.org with subject "unsubscribe".