From patchwork Fri Feb 12 20:28:32 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: sfan5 X-Patchwork-Id: 25602 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 EE5B644AAFD for ; Fri, 12 Feb 2021 22:28:45 +0200 (EET) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id CAA7768A079; Fri, 12 Feb 2021 22:28:45 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from EUR01-VE1-obe.outbound.protection.outlook.com (mail-oln040092066019.outbound.protection.outlook.com [40.92.66.19]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 57DCF68834D for ; Fri, 12 Feb 2021 22:28:39 +0200 (EET) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=NMjClX2hIxpONYHGkgceGL+/AYfMAp+2TVkag3I7gJqqOmXn4w0sqXwtEZZO03YeF5/HUHQYgFJlR7/zxut362hnC7Irxaw9YFA+E++1bG12+oGP/20Z/tvUdPUJK6Gg97vZdNLoZVt1U8H4/18gJyYcjZnFhFPnFUjnZWgV62l53zxABrZID6pzlz8ywxe3mq5gwEFLvs1CSWngnLyF9sfW7uz+XVjmBxoFRTWN4aPsjBtNwMrCjwh/ZJoYnSMh4X7CXERxHYJV0TDuXkpcWEjH4w3ArGumdH0io4jeCp1bYcUr7KGCTHzv7eG5npsWZXFFfw0ONEY5Nr3aBWZslw== 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=PJKRK1+3yFtj5gM7fYvUeXb3E0NLrD758CrCydu2wJk=; b=IU2+KfW7rmGfuWks9soSjMuqHcfeSbl5Y/gbNwfSbGZLnVe9OWmGolp3Llk4/hkMnfb5ynmvtiCr85iU2skZdzIm9mGAwDol4Nhb9W4dgPoRUt2xGb5QAS50Y4jDcDYW2n8A6uI1bRxYXmsYyZP4AqjJ1KHtr292exsFiJpvTShshCTtTHV+1qmuVQ0Y80uKIRpL/gB7wuzXpjuTTGvcNi2rh4eNM6hzb0cELJVMNZLgVjO1fcym0W+1FeTzsQp4NFejM6tZbOG9w4qFSiw/IKwURczoEaz0BQaIKnNmgGepWlsktj1NNqcHuFnPH6nKAGYZKOmQARcenDG0iE5liA== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=none; dmarc=none; dkim=none; arc=none Received: from DB5EUR01FT054.eop-EUR01.prod.protection.outlook.com (2a01:111:e400:7e1a::53) by DB5EUR01HT105.eop-EUR01.prod.protection.outlook.com (2a01:111:e400:7e1a::477) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3846.25; Fri, 12 Feb 2021 20:28:38 +0000 Received: from DB6PR0901MB1495.eurprd09.prod.outlook.com (2a01:111:e400:7e1a::41) by DB5EUR01FT054.mail.protection.outlook.com (2a01:111:e400:7e1a::389) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3846.25 via Frontend Transport; Fri, 12 Feb 2021 20:28:38 +0000 X-IncomingTopHeaderMarker: OriginalChecksum:CB2B6092AEE47CE6D85F1CDE4B8D1F20FE9D4CB4A8636B856CC44004DD603E7C; UpperCasedChecksum:3E0521490BBB9FA4BCF19D414A5808853D54E6FD4C38FDEC6F21B5BCE6897F8E; SizeAsReceived:8661; Count:44 Received: from DB6PR0901MB1495.eurprd09.prod.outlook.com ([fe80::5c07:7420:c23b:869f]) by DB6PR0901MB1495.eurprd09.prod.outlook.com ([fe80::5c07:7420:c23b:869f%2]) with mapi id 15.20.3846.037; Fri, 12 Feb 2021 20:28:38 +0000 To: FFmpeg development discussions and patches From: sfan5 Message-ID: Date: Fri, 12 Feb 2021 21:28:32 +0100 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:78.0) Gecko/20100101 Thunderbird/78.7.0 Content-Language: en-US X-TMN: [X8kPNzo7kCjiDv91zy7cT4ML5g9zY6d2Dv3E0kLgVxYT0OLJaIUNIGBp7O1Veipf] X-ClientProxiedBy: AM0PR04CA0138.eurprd04.prod.outlook.com (2603:10a6:208:55::43) To DB6PR0901MB1495.eurprd09.prod.outlook.com (2603:10a6:4:7a::9) X-Microsoft-Original-Message-ID: <1a902227-c656-7b84-b2b7-57d39f8ba380@live.de> MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 Received: from [IPv6:2003:cd:6f14:b118:e9ed:5d12:15bb:7958] (2003:cd:6f14:b118:e9ed:5d12:15bb:7958) by AM0PR04CA0138.eurprd04.prod.outlook.com (2603:10a6:208:55::43) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3846.25 via Frontend Transport; Fri, 12 Feb 2021 20:28:36 +0000 X-MS-PublicTrafficType: Email X-IncomingHeaderCount: 44 X-EOPAttributedMessage: 0 X-MS-Office365-Filtering-Correlation-Id: 776610f8-7faa-44ab-14c0-08d8cf94c667 X-MS-TrafficTypeDiagnostic: DB5EUR01HT105: X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: ayKETwKWuvVwbPwMHJanBIShS16s81D3eS4S9h6VgvwPti2qN7UD/CNy25hOc628/sHBNZV2kHkfdOTx5C6gDSwsE7HmbDIcr1cH9Y4jaV2Se7FQcyEeN+prYMMXbvngbxIXZJ6imgGURKrUlRVwlJCHolOJ4jtVvzibP1fBBT1AOH6KcJseHHqQ4HUA0i8njF6s/M617/6Llstg/4id2LvQkwDcvtsYX/OHnUJfqsKa63wsAlE8GWRoRcfI+yYfR+QOQQHidFHxoL7lqd8nZ1SQiuXMUVpzSBOXz2/+QANbfv5ZTi8KeQUZdCGbO0BXS+J/BNqywmpl/A86CNE3VF9VpG0shMX88vc7KZj5PwI504Pym9rWxC9HRfJju+rXmvQhuggNxJ2uJYw2k4hjJA== X-MS-Exchange-AntiSpam-MessageData: JmrlsSQoFYDYPNE9R9rYiRNudDj1PWuPvoeJD0u2WLP8zGKzLvodvKHaNalnknwJx5dsGeUwFPNJ7Jwp52Uos84PfTCOVd1zfs/TivZLKnVdO2KRIiTNkVFSiUK+ARdrQfG1QxFR3YxOtS0vMF00IDUoxlXUu7WH+qAJwQn15T/q+DiGS42g9vLQBs5/2WycmnZpmIlkAy37qs+jzuE+7A== X-OriginatorOrg: outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 776610f8-7faa-44ab-14c0-08d8cf94c667 X-MS-Exchange-CrossTenant-OriginalArrivalTime: 12 Feb 2021 20:28:38.0371 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 84df9e7f-e9f6-40af-b435-aaaaaaaaaaaa X-MS-Exchange-CrossTenant-AuthSource: DB5EUR01FT054.eop-EUR01.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: DB5EUR01HT105 X-Content-Filtered-By: Mailman/MimeDel 2.1.20 Subject: [FFmpeg-devel] [PATCH v2] avcodec/mediacodecdec: Do not abort when H264/HEVC extradata extraction fails 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 Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" Hi, attached v2 patch after discussion on IRC with JEEB (as he already mentioned). Only change is that the log level turns to debug when missing parameter sets are within spec (cf. 14496-15). Subject: [PATCH v2] avcodec/mediacodecdec: Do not abort when H264/HEVC extradata extraction fails Although rare, extradata can be present but empty and extraction will fail. However Android also supports passing codec-specific data inline and will likely play such a stream anyway. So there's no reason to abort initialization before we know for sure. --- libavcodec/mediacodecdec.c | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/libavcodec/mediacodecdec.c b/libavcodec/mediacodecdec.c index ac1725e466..5af1fd9198 100644 --- a/libavcodec/mediacodecdec.c +++ b/libavcodec/mediacodecdec.c @@ -167,8 +167,11 @@ static int h264_set_extradata(AVCodecContext *avctx, FFAMediaFormat *format) ff_AMediaFormat_setBuffer(format, "csd-1", (void*)data, data_size); av_freep(&data); } else { - av_log(avctx, AV_LOG_ERROR, "Could not extract PPS/SPS from extradata"); - ret = AVERROR_INVALIDDATA; + const int warn = is_avc && avctx->codec_tag != MKTAG('a','v','c','1') && + avctx->codec_tag != MKTAG('a','v','c','2'); + av_log(avctx, warn ? AV_LOG_WARNING : AV_LOG_DEBUG, + "Could not extract PPS/SPS from extradata\n"); + ret = 0; } done: @@ -254,8 +257,10 @@ static int hevc_set_extradata(AVCodecContext *avctx, FFAMediaFormat *format) av_freep(&data); } else { - av_log(avctx, AV_LOG_ERROR, "Could not extract VPS/PPS/SPS from extradata"); - ret = AVERROR_INVALIDDATA; + const int warn = is_nalff && avctx->codec_tag == MKTAG('h','v','c','1'); + av_log(avctx, warn ? AV_LOG_WARNING : AV_LOG_DEBUG, + "Could not extract VPS/PPS/SPS from extradata\n"); + ret = 0; } done: