From patchwork Mon Dec 13 20:56:05 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: sfan5 X-Patchwork-Id: 32449 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a6b:cd86:0:0:0:0:0 with SMTP id d128csp5964212iog; Mon, 13 Dec 2021 12:56:18 -0800 (PST) X-Google-Smtp-Source: ABdhPJzK5EGcMSUMZW8uq0ROuD9u7EQIrbZJzSv7rdzx+XAnMU0KB3KTeoGqqlXVrNxCfZlZ4TNf X-Received: by 2002:a17:906:3e96:: with SMTP id a22mr841741ejj.722.1639428977859; Mon, 13 Dec 2021 12:56:17 -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 w20si24599923edd.104.2021.12.13.12.56.17; Mon, 13 Dec 2021 12:56:17 -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; 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=NONE dis=NONE) header.from=live.de Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id D69D468B034; Mon, 13 Dec 2021 22:56:14 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from EUR02-AM5-obe.outbound.protection.outlook.com (mail-oln040092067106.outbound.protection.outlook.com [40.92.67.106]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 4C35F68AFBB for ; Mon, 13 Dec 2021 22:56:08 +0200 (EET) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=D4MmRRVRYsgMIbJ9aH/DnmBCTy/x/eJfjbypFO9lTB+Uz2VVsNBl2ee4MwqEFvmS9uGH3RR66w1+uNQlgCVqdZbBXRi4AoSc7VcC0NIy847ccpv0pkIza4GFq3JDdNmdwI0mOFUo/jZCR2dzzw7tqqWVfqrbNBleDjhtEQVwYstRVojtkYKKqBCTYETnnsoNtcC7Du6/WFIMCtH0eQV5kVWJu+lqALfF4L9JxLP0groyTTnE3hvm5h6xnujlfqFtdul0ATYfzeQtAaS8wLB5apwvtTlIq7w17yNqEhZlKK9s9r2xdHLVD4vQqO3Qd/VXvjYJAKRVaAt38a3RhTMqXQ== 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=1oQHKA7D1fxV79gyj1ZBHdUCp1ZW9Ta5+otxHXvVHQk=; b=g4nEZf7UWl8DsmKrHrvvlhGhSFdmMR1bIzgK12ZdBUPkhW3AH04TnB2oQWmnuV6D06bcofmUUfOP8cyiXrw0Y2afB7PPgn7OBXT7l8uZCBXNtyctHqdxwKU7Z6/D9CXxSusffCqezOS9grn4JfPNgt5UPiPIhUC04Gc5ktWkjXi4xiEot86Ru6yJmeuIFwT605fjfFmXrPUgpcJ0l9mt2RG2U0pnPPgBFOUFzgRxrBvo4qU8DFsV7B48+SE5sKJYbGXeBOrwtXkMkIzbakEpWQGNiQhHihd5JOMnL3GyHM7jmsaycGgOmgzZXUqAnMyuzA0KPYbNlKZLefdnY+tClw== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=none; dmarc=none; dkim=none; arc=none Received: from DB9PR09MB5212.eurprd09.prod.outlook.com (2603:10a6:10:2ac::13) by DB8PR09MB3274.eurprd09.prod.outlook.com (2603:10a6:10:101::23) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4755.20; Mon, 13 Dec 2021 20:56:07 +0000 Received: from DB9PR09MB5212.eurprd09.prod.outlook.com ([fe80::c98b:2cda:4753:a475]) by DB9PR09MB5212.eurprd09.prod.outlook.com ([fe80::c98b:2cda:4753:a475%4]) with mapi id 15.20.4778.018; Mon, 13 Dec 2021 20:56:07 +0000 Message-ID: Date: Mon, 13 Dec 2021 21:56:05 +0100 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:91.0) Gecko/20100101 Thunderbird/91.3.2 From: sfan5 To: FFmpeg development discussions and patches Content-Language: en-US X-TMN: [6uYzVjK+eoovuvx4zxnRD0wR5XOKkGL3] X-ClientProxiedBy: FR3P281CA0043.DEUP281.PROD.OUTLOOK.COM (2603:10a6:d10:4a::15) To DB9PR09MB5212.eurprd09.prod.outlook.com (2603:10a6:10:2ac::13) X-Microsoft-Original-Message-ID: <9507473a-5c9f-a26f-5c7e-fdae3dadf2cb@live.de> MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 6975d07a-3a86-465c-a040-08d9be7afbcc X-MS-TrafficTypeDiagnostic: DB8PR09MB3274:EE_ X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: 5QnxuJJb88beN/nRJavvm1Vj6VVFhODzRZ8Rv3MdS5ZtzhooyO7C6GMAfsxlFPrH1Di7L/uVTUDmyo6PwclP4MAf77JWzFPdBD/jYQz1KPGbN1s4EKqo0x3mofk2Rkz3KJF91PX4hf4Ubyl822B/RLwRRRrAYgFrMXxSNA2Rl+GU4P76xTjvT8MGH+CAgW669kCBPL3O0IXKipmeIDGkpGselHirqRrVILuXBLxol3nTC3xp3jnR1PNQ5102wr4+ybWr1wNJ2VUyyMTF7NPQ/Ae6VuvQOFO2r+iEHWvnx2V8O5eZYADBuRrq6lcmVEgTcmnGmZm1R2t3yjInhutVAv2jlMYgCJlzIphJ+LelO4friyet2wTmI4+MuG4YM/W3O7ziHYqwZuvg8Sd0xGur5D+VZl+5PvI6c8AX3BQp5zJbT6uDV8p7pjCehiUnpVboig7kq1xbgrKbqLEYXT+Iqsf/yxp1dbpBkkEXZGv3uF+RqgTXjjQx1K+g+4E06TS3T56DqBjQXRuPFKw5eAzzoBJryEgWzQb3NVDY02+0Lw4QRUykgv8mZ37kOxFJeXMAbqUTUOWe7xPkfVUTmYVeNg== X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?q?L8TMgwf+EGkBYlSZ+PpH0RGijBv1?= =?utf-8?q?l635a5yrXN6c4QRY8OahKINbcwuTGWyNS7YNEjJt3ZJzm6KkJCkwFG2kJu0oFQwg8?= =?utf-8?q?KvvfUixqjL1dQPmZOedIIlUNI0By8cUsJS5ia50vYg0jZjXB2PO/ymPCj1IRRdn5L?= =?utf-8?q?Qp0e9MHOs2MUFklyV3EzLii2jkgNvq0Lo2qMDUJXeq3gGYuKBdEKx/nlO0OXQYnks?= =?utf-8?q?8dik4HGiyRQESHtky2F7Hfvbx7nPSpTmIzwfZ5US6hBWEN8WxysTMdJ5TBb1uUh+F?= =?utf-8?q?hXOcM8/UBP3xJmGtmGab9jgMqzgm6+EZOzCZAP8TSRuYioQgD9Joz2HlnlhEiwKKH?= =?utf-8?q?/1faxGA5rpoqakeE4x3g1ruRAMGrrq9X1sO1FF/jBUOcwYTGYdt/7d0KGLo9/aMH4?= =?utf-8?q?rfDS4vXU7B6TsMeBUqPiQ7/SJBgpxMLmZykslrjPgdDZNqwBJykXUI/Tnl8b6UcKE?= =?utf-8?q?SAlHgUlxSNHTon03f4p+VsbLWQRAYuZbtLbE4yuCFagkW9PAZFMJxqMWsevfg3rpS?= =?utf-8?q?RqViB1Yng3v/KLp6wH9iVWw7dYOYdGC5bSa7HJkxTh8mnou63PSlhJ80oVPzdkhJy?= =?utf-8?q?FMncEmqrCjpR7ydlVYjk8ky/6qnKSLITFKNMOaK0cyCUcJLDuDEdY94mJxv1ZagPQ?= =?utf-8?q?BqCURkacsTREUm9N55kf3m+zh8XWl8cw5RQeTlwHBnfnb0aqCnJt3TICh956Cucrm?= =?utf-8?q?XgCdAr21eQHfjs2iduTCr01qNCGnVkayuH1EZXCPBsCAFiw5JOBDiCflKGB/LA+30?= =?utf-8?q?Y/UR/vGfvEnOCMqVPF0Qdw7MVaUTZwu+vuo39zRWAGqxaTKgwm2jPYBgtG/EZfkbL?= =?utf-8?q?76Payqpi+4ToAX7SBAWMq03DpEoiErd0YPrS++LicpFmTD3FZ1lAbBCqme9ytwoaF?= =?utf-8?q?0ldfw3j3kcrpOoPTAmEDqp+PLAt4tSCMPggU8xa4gLZw=3D=3D?= X-OriginatorOrg: sct-15-20-4755-11-msonline-outlook-64da6.templateTenant X-MS-Exchange-CrossTenant-Network-Message-Id: 6975d07a-3a86-465c-a040-08d9be7afbcc X-MS-Exchange-CrossTenant-AuthSource: DB9PR09MB5212.eurprd09.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 13 Dec 2021 20:56:07.1445 (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: DB8PR09MB3274 Subject: [FFmpeg-devel] [PATCH] lavc/mediacodecdec: set codec profile and level from extradata for H264+HEVC 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 Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" X-TUID: UdXLf2myaoNr This value is later passed to MediaCodec and checked at decoder init. Notably decoding of 10-bit streams before this commit would "work" without returning errors but only return garbage output (on most Android devices). Subject: [PATCH] lavc/mediacodecdec: set codec profile and level from extradata for H264+HEVC This value is later passed to MediaCodec and checked at decoder init. Notably decoding of 10-bit streams before this commit would "work" without returning errors but only return garbage output (on most Android devices). --- libavcodec/mediacodecdec.c | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/libavcodec/mediacodecdec.c b/libavcodec/mediacodecdec.c index 1cebb3d76d..04d5026e68 100644 --- a/libavcodec/mediacodecdec.c +++ b/libavcodec/mediacodecdec.c @@ -155,6 +155,9 @@ static int h264_set_extradata(AVCodecContext *avctx, FFAMediaFormat *format) uint8_t *data = NULL; int data_size = 0; + avctx->profile = ff_h264_get_profile(sps); + avctx->level = sps->level_idc; + if ((ret = h2645_ps_to_nalu(sps->data, sps->data_size, &data, &data_size)) < 0) { goto done; } @@ -236,6 +239,9 @@ static int hevc_set_extradata(AVCodecContext *avctx, FFAMediaFormat *format) uint8_t *data; int data_size; + avctx->profile = sps->ptl.general_ptl.profile_idc; + avctx->level = sps->ptl.general_ptl.level_idc; + if ((ret = h2645_ps_to_nalu(vps->data, vps->data_size, &vps_data, &vps_data_size)) < 0 || (ret = h2645_ps_to_nalu(sps->data, sps->data_size, &sps_data, &sps_data_size)) < 0 || (ret = h2645_ps_to_nalu(pps->data, pps->data_size, &pps_data, &pps_data_size)) < 0) {