From patchwork Thu Jun 23 09:10:28 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Zhao Zhili X-Patchwork-Id: 36391 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a05:6a20:1a22:b0:84:42e0:ad30 with SMTP id cj34csp3341775pzb; Thu, 23 Jun 2022 02:10:52 -0700 (PDT) X-Google-Smtp-Source: AGRyM1uW+HEIGMti9af5taLwQTm3pDtz9CZmHZKynaqonAHv/McvfxzRAMA/0jRGKu0OPLY8KqUX X-Received: by 2002:a17:906:4fc6:b0:722:e739:53cb with SMTP id i6-20020a1709064fc600b00722e73953cbmr7258859ejw.128.1655975452483; Thu, 23 Jun 2022 02:10:52 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1655975452; cv=none; d=google.com; s=arc-20160816; b=CVXAR1WMe4AhrbqAn+jaCQyKnZyzxwnSsOShtrIOt3MULBmXjwK2CQ3lQwLgH8wnTn v/KCZ6VU6amEwswq3qOsPVXonU8khVr5NKPHglxAViEbBI7Dv5kZdhCfNvJJQCMGvzMH YZSq9sOWHt+jg/Wd4t5tmiRZUXwJEe9WHOjUAS2CEfwhZMnRafFfakWawu3IDBgnbkZH 20yvCJvCXVnyMEx4Scvt5cvAlvalk79g5DPAKj56g9r5WiD1mPZeK7CklqyI0dPKtsal Q7a4nJ5zB328Y4qTYDZclR08h8qPOZHIfGS6yUepb+sVJoOYCpH46M44LjZshIsuCgmu WRxA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=sender:errors-to:content-transfer-encoding:cc:reply-to :list-subscribe:list-help:list-post:list-archive:list-unsubscribe :list-id:precedence:subject:mime-version:date:to:from:message-id :dkim-signature:delivered-to; bh=l5G8MBXfJX3JIiipZk1tQNqyLyGpJy20W0NGsE25Ydo=; b=Cn3arGVrqSzOPvfLFrOZK0JdXKI1s4XLX4BHohMCFwGbJ+am6ad3nTSHuFjBzSBuJ3 JnFIE3Sn6badwDyY3J5prTogvbDaFZQaZE6j4ahMlOhKgDm60WD+RJEXblODETr/OmXZ tawP8A/7/iR/n5OdrDOzgX7fyeJqrxSjCZiVHX/MFBMVRFPP04o841548u4wV4/pB6Ge AqEHF6+hDsMZapmqgeRR+C3mv0oiXk3PvHJjtHNwFGC4kNbcPxSm2EkRm1xBawEQOqQA +FkANi0UPNjan25cEQLzez3KnVbU1jkLVVZ18Pu3+P4ZJBHTd3FRJKis1Dux9nkAAIiQ ZyHg== ARC-Authentication-Results: i=1; mx.google.com; dkim=neutral (body hash did not verify) header.i=@foxmail.com header.s=s201512 header.b=tGRVO9Ta; 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=foxmail.com Return-Path: Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org. [79.124.17.100]) by mx.google.com with ESMTP id h18-20020a056402281200b004357fc380d7si15808252ede.203.2022.06.23.02.10.51; Thu, 23 Jun 2022 02:10:52 -0700 (PDT) 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=@foxmail.com header.s=s201512 header.b=tGRVO9Ta; 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=foxmail.com Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 8B14E68B609; Thu, 23 Jun 2022 12:10:47 +0300 (EEST) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from out203-205-221-242.mail.qq.com (out203-205-221-242.mail.qq.com [203.205.221.242]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 9D8ED68B449 for ; Thu, 23 Jun 2022 12:10:39 +0300 (EEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=foxmail.com; s=s201512; t=1655975431; bh=9kx1GFEmQp0qS4IOoQTUotIPRwapkBrXjvbtyEIumgE=; h=From:To:Cc:Subject:Date; b=tGRVO9TaALcX3dkb/DD9va7XuxdQDREvwnELHNrldimoYkofVlN2Lm/Wbu+wX6RZF X6bLSKFUVp9Fkw2JM1KDjsFGdFDEezwC0yAnJqJh77wTn2StPO+q/YLipMtS2FeObM ThSBL8BSQi7wipBjLea5Jwl5Ya7vmxfRPvryPlB8= Received: from ZHILIZHAO-MB2.tencent.com ([59.37.125.123]) by newxmesmtplogicsvrsza7.qq.com (NewEsmtp) with SMTP id 29E20C36; Thu, 23 Jun 2022 17:10:30 +0800 X-QQ-mid: xmsmtpt1655975430toecx27cu Message-ID: X-QQ-XMAILINFO: OKKHiI6c9SH34PuYlLG3jBKdQxvFx7iUWOipdiBU58nLLkRJJ9LNyRlAKa0vPy D7VMU+ZwPfGHVw0Fm1aT7k43bZsoVUvW7vEyrBQ8esdnVqGRUU9I+IiXIDNIQd0xRHAcG7a9KtDn Q7toHiTBJMHJeMIohzPqI2OBq9MSRFkY/XcS/IRgV1BJl8BY1dfmXnXWJ3mIbvM7+zIbbYSVLdej N/dFLizPtTCreslwDYv5nUITT8/fxesFZ7Qi2sajBYiLnTJGS1NQlEwYr3iuW2T2dkeEyIPoOWiQ A8cAUHVclm5G5DH/h/O2IfRd8HBwPHXhiQi1KJf3W4Y5/Y8Vw/pHIqJGRhnnGb1jzL8w7u3tnRG5 m4FWqIUeezHXCjcQK1gn2ieX7USxQnZdgON+eUxxrpelfCZEgDx40njFT3m/bDPqkcYUa2Hy3Yf8 p9S8hwMez7gNTJOyLl3dZsxbcxwbBc6KwM714r3Sw9hPNUKVBzJtfLhYl0cs7Q+bZQk76KrX2wAw XoMVAQ9OWWAkSrUIFh1SsSgP357EEYGoH2Oq4X/6GUDyQxZ6vjeIHMSKTX7RrVW/yNqmqV81D4Df PgH41d8SfY9oSz3s3M77mrmoe2OVV7w6Fl0x+m5YhVThAnKSn1knFlSWrpiV5PWteDNK0nIQrZE5 /cjeK06NVTv1KQMTINk4IXBlgQJBy/vFHENcA53jtj37WSuXhEy4OGHsb3osmaV8169zOA1vdzNK Oy+/Ai6ELWq5yoge1OAAAzYKUW7eD2zkYc3+pyYSWDvxPpOOoiLZW5lR25emNzD1PJ5Slax+S2bm P7OaDSShE8bku91HPWxooFOS8igoWJtPWTSVpDBXb8A6QM1fsIwWu3CBvQpwD64MGzatCF0n1C5Y 6Mp2GRsYPmHZRDMKamWvuS765ezYyreKOAlkL+pqw1ig+51zDWiJz+Z5YFHjXUKA== From: Zhao Zhili To: ffmpeg-devel@ffmpeg.org Date: Thu, 23 Jun 2022 17:10:28 +0800 X-OQ-MSGID: <20220623091028.23707-1-quinkblack@foxmail.com> X-Mailer: git-send-email 2.35.3 MIME-Version: 1.0 Subject: [FFmpeg-devel] [PATCH] avcodec/cuviddec: fix AV1 decoding error 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: Zhao Zhili Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" X-TUID: UYwRIlhzJ64l From: Zhao Zhili Regression from 45e3b6a68. cuvidParseVideoData report unknown error with AV1CodecConfigurationRecord. --- libavcodec/cuviddec.c | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/libavcodec/cuviddec.c b/libavcodec/cuviddec.c index cb3cda7e24..584fff40ed 100644 --- a/libavcodec/cuviddec.c +++ b/libavcodec/cuviddec.c @@ -953,6 +953,17 @@ static av_cold int cuvid_decode_init(AVCodecContext *avctx) extradata_size = avctx->extradata_size; } +#if CONFIG_AV1_CUVID_DECODER && defined(CUVID_HAS_AV1_SUPPORT) + if (avctx->codec->id == AV_CODEC_ID_AV1 && + extradata_size > 4 && + extradata && extradata[0] & 0x80) { + // skip AV1CodecConfigurationRecord to keep configOBUs only, + // otherwise cuvidParseVideoData report unknown error. + extradata += 4; + extradata_size -= 4; + } +#endif + ctx->cuparse_ext = av_mallocz(sizeof(*ctx->cuparse_ext) + FFMAX(extradata_size - (int)sizeof(ctx->cuparse_ext->raw_seqhdr_data), 0)); if (!ctx->cuparse_ext) {