From patchwork Thu Jan 5 16:14:13 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Zhao Zhili X-Patchwork-Id: 39876 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a05:6a20:bc95:b0:ad:ade2:bfd2 with SMTP id fx21csp206090pzb; Thu, 5 Jan 2023 00:14:49 -0800 (PST) X-Google-Smtp-Source: AMrXdXt3v5BaSIyuyzau+nOva3yUlrTZcpEFs71jtyL01ombE1ggE9xurXpqPLQZyVZL5gY5YZ2R X-Received: by 2002:a17:906:7749:b0:7c5:fd:4352 with SMTP id o9-20020a170906774900b007c500fd4352mr58420419ejn.49.1672906489056; Thu, 05 Jan 2023 00:14:49 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1672906489; cv=none; d=google.com; s=arc-20160816; b=BJ/42gg5rSmTg66etRBmVYxqic5iMdq/ZIbKtovUwxItO4MYYGfOMBOEgWyMUXnuCW nblR5wzlWIYES5IdkafpVbffWq3IBxUzBEAakRS0uwIc7DOHTjlJGmF8OYQtmpazedE6 o+4ah7sNwJgFrxFs4ZXr4+suAAavBN1sYMo5UwMrWoSF7ctXbo7Qtr0eh9jwSodyUS60 0wTQy+G1r3Fligx7I2appcVKyDXY+EW1jrR3Z9sm44zKKKP0btvpwM9gWBlfj/BlDbBw fHEYBMxYnJ8xA7UfqWRIkX4vXRds5KmCNiOkWAq6z4wNP0FLrJBqrQZiGbzpTv8M97U5 1XxQ== 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:references:in-reply-to:date :to:from:message-id:dkim-signature:delivered-to; bh=QjH8JhYiUV5MYRReiCW777ObV3fFVnHLWadRLFU6LSw=; b=wbK6W/9Z9Ky3z3bPOGbds9MhYGN1h42FVqj/RHUAl+qe4EWVNze4vRg7yB5XdqGQtE zhL0QGgT/iWZBif1CxQSiUmUkiPgmeVyxGpQwb6C7+rlvTX2HbWIWfn5RERzkbgFEULB 9EZIEFI+uNMBqztAG2e+lZAA7nEaDVdcmK/HNVjAzd79FAza20KM2dB/ieoyYZAyjClZ UpCtayMGo+vzZfnjl0X9pLaDrhuMqSBfCdWhS3H4mOqfed3P517QFi1Ft/Rn4GjD61oY 5U9lJIqRxOMJG+Pn9X7Jd9/xJdWLj4sMipulecFSLdI83hLP7TU3pzSmGYrTWzWmdIGo hmfw== ARC-Authentication-Results: i=1; mx.google.com; dkim=neutral (body hash did not verify) header.i=@foxmail.com header.s=s201512 header.b=MQ8+oLNy; 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 cw15-20020a170906478f00b007ad943d0608si34521176ejc.630.2023.01.05.00.14.48; Thu, 05 Jan 2023 00:14:49 -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; dkim=neutral (body hash did not verify) header.i=@foxmail.com header.s=s201512 header.b=MQ8+oLNy; 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 440CE68BC72; Thu, 5 Jan 2023 10:14:45 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from out203-205-251-59.mail.qq.com (out203-205-251-59.mail.qq.com [203.205.251.59]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 9D8C068B752 for ; Thu, 5 Jan 2023 10:14:37 +0200 (EET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=foxmail.com; s=s201512; t=1672906473; bh=7vbz7jgkZG20Q042xgGW7kpOpkP2dZmgRV10PjCBTyM=; h=From:To:Cc:Subject:Date:In-Reply-To:References; b=MQ8+oLNydag9Aln58IyJ4CIXWpm7kQP6KFFFeq7nVxbODTKDjPufsFKt4EesE1L2o qeAtUkYEwVbhCC18Fgyny+Qu43lF7ZSBT8DgztB7+MFYZthpu14/aS9L2OxyFjEMVr rKRYw92hTJTLko4/dur12Y22Aa4Imv15JFCzwQm8= Received: from localhost.localdomain ([59.37.125.102]) by newxmesmtplogicsvrsza2-0.qq.com (NewEsmtp) with SMTP id 39F0DCCA; Thu, 05 Jan 2023 16:14:31 +0800 X-QQ-mid: xmsmtpt1672906472t0pwlvkl3 Message-ID: X-QQ-XMAILINFO: Mrv6PNPZjcp6KSFTYWpLoTFA8sJkpk8MRF4kOFyqhxqHzm/HkZ0tooHMxZxwbl M2e5NY+xhPJDs2tYaalShzCXLfNE7Af/miGzDq30VrkGohcf3ple0mNaOjeKIbbOnwb2WTG/8S/V Jb+gmgnBYpjbUAiHOyHTUcKH4eooTcqgpeOysH+ZbuuU5BuXHBkuZw9t/1Wc11NIGpNnOUBSJfCR cOSzejSUwK606vt1RfqUtTMdbLAK9CjpEXmf+3IxnzrTDkpxn+mkJLLqw0rPiK8Lt4V7h33OJrrN HDJbiuiNgxo4qyBKGkhsrpvbRy9RvNKI0Bzkr9ATBwrtn4UQkmbtZBzayCtxU+rl5yMUW8/W+/Y7 fOzwpohbHoZvqBGSQimPk6iuxgIZM9bPR1cxSknILlq1fGTk7j3SAqQoQY85DTBWogMTHt7gzLXx kLemZfy9gwx0QTfSaIPYt/4ulSnnfCuerSjKmwHy2SLxASX8oysD3ajikrncnLFIZ1auVVM+Y1BD QWJzFduMwGlDwOX3EqjZsNl7g8YYYmhSvAi7r8hzHNVcrpB6lh0fJ4IQcgm3vIPeZMDHLwQuIL46 btvJQnhG0FAc5HKHcqsXl8D8uiRwwkvR0rzdeAEVJovE0qMVGWpIJnk7iSwf+V8l4C5iUSue+YEo 8+xIZqLcd9cE3oKbFQhfTVjMQ4ZAaRR/skloyDAyQlOOSKlFGgTR72/gILimOeWDeUz+VcE45BDs ip1uZcqYoANOSENS1JyTCLwkytmGBYcat7jF8U+yZnJ2zZKzfQCnSOh4UcZxKmbJ6NqXP4y9Q2Fg Ngu5CQ6y+qJ9Lw9xVhtN0mBbHPZKVtDQSZyU1ix26Ebpic+0QF6aywevHdTQ0l5QqG65WcqD9Cv7 YWo6PBTbqgWurUXH0kkYRQxPsScqyRlFvHXEgcmy7HRcXk5iHARgKvoFZuQR0FGH2uY5r3+uruTE WJmGJZtSqOZntxocvgdxjmPHw2gCQjlnDb0t62b2o= From: Zhao Zhili To: ffmpeg-devel@ffmpeg.org Date: Fri, 6 Jan 2023 00:14:13 +0800 X-OQ-MSGID: <20230105161416.194463-2-quinkblack@foxmail.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20230105161416.194463-1-quinkblack@foxmail.com> References: <20230105161416.194463-1-quinkblack@foxmail.com> MIME-Version: 1.0 Subject: [FFmpeg-devel] [RFC PATCH 1/4] avcodec/hevc_parse: keep nal->nuh_layer_id > 0 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: bugB3HqRyoJs From: Zhao Zhili --- libavcodec/hevc_parse.c | 2 -- 1 file changed, 2 deletions(-) diff --git a/libavcodec/hevc_parse.c b/libavcodec/hevc_parse.c index 29dfd479f3..dddb293df6 100644 --- a/libavcodec/hevc_parse.c +++ b/libavcodec/hevc_parse.c @@ -37,8 +37,6 @@ static int hevc_decode_nal_units(const uint8_t *buf, int buf_size, HEVCParamSets for (i = 0; i < pkt.nb_nals; i++) { H2645NAL *nal = &pkt.nals[i]; - if (nal->nuh_layer_id > 0) - continue; /* ignore everything except parameter sets and VCL NALUs */ switch (nal->type) { From patchwork Thu Jan 5 16:14:14 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Zhao Zhili X-Patchwork-Id: 39878 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a05:6a20:bc95:b0:ad:ade2:bfd2 with SMTP id fx21csp206799pzb; Thu, 5 Jan 2023 00:15:16 -0800 (PST) X-Google-Smtp-Source: AMrXdXsntzmxIeHT5SdhHOdwoVuoM3AZmyWZ5iR4yE5qo1rQrOUt9hNOZGLRDrKTW7EB1yKNcRxq X-Received: by 2002:a17:906:8492:b0:7c0:f118:7e51 with SMTP id m18-20020a170906849200b007c0f1187e51mr38042260ejx.38.1672906516275; Thu, 05 Jan 2023 00:15:16 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1672906516; cv=none; d=google.com; s=arc-20160816; b=JitvzLsZltGMjnfhn3z4hznjkOOLsTobhC+xRCl4WF9OvsbTnlyMOvRGP051wruOmG j6lu9rS6AutTHIAUVvVBcviu2eyJCfFZsBc1DxY8xr/XdU6J+M7/ocWEvbhHQd7i4l4b y4jWG+t35NYQZO5kNM9XT+y22vtTt5pWMSDNj4I0qaGizAGENi281AToeDB5SguG/3C5 Yx+2gZLSlNDtM9TAhV1JM5uUuPQDJGqYmostGzZQ65wtyB4CMxDqmucHTx65cGJJGn6A ZPlvH+YFw75SACFanwbwYbojC211EyfPhtnlWUNMSp1+TnifqkNhuBbE9o20lNVVePW2 /U6A== 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:references:in-reply-to:date :to:from:message-id:dkim-signature:delivered-to; bh=mBH10d9nw3r28GuvDD9SWYgvezeSyGJTE8DckE+XeLw=; b=ZZ90GE7eOojxXDJjYDBeHCzVakSh8lPUntIhQNWM5+mBg3Jun+cXkkt/PI3lzYBxVk Pbwia00UcYTPbR6YO0IyGgr0o6zbwRj2dkPGqPqXlLm8tUKvzoTEf0oLYKA6rOopKFIH 5rjH5s6u2pHN/jpENjO/PqJ+UwdkR+g6yBy9MUXGI6tzSsxlbkhdZFT8EtafZqmQY14Y 5vjfEyRBxa/YZ9DhMDEQia0yK43PKdGr0OJtqThUlWnobfPT6v4atP5yWdBQwAmkgh5v U8/nRSxp8K5y6ddWdHTp+15nSp2l0UlUOWuUcTrJh7tVSHuStEUl/wvuzRid9w5xoXLQ Rxng== ARC-Authentication-Results: i=1; mx.google.com; dkim=neutral (body hash did not verify) header.i=@foxmail.com header.s=s201512 header.b=wYck7ygY; 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 l12-20020a50cbcc000000b0047e64d61c4bsi28283654edi.337.2023.01.05.00.15.15; Thu, 05 Jan 2023 00:15:16 -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; dkim=neutral (body hash did not verify) header.i=@foxmail.com header.s=s201512 header.b=wYck7ygY; 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 3794E68BC8C; Thu, 5 Jan 2023 10:14:49 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from out203-205-221-210.mail.qq.com (out203-205-221-210.mail.qq.com [203.205.221.210]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id F306D68BC8D for ; Thu, 5 Jan 2023 10:14:41 +0200 (EET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=foxmail.com; s=s201512; t=1672906473; bh=cFrJw16EpwM5Ac2RxtT0M0w+lfsJqhj4zJL70wJF9UY=; h=From:To:Cc:Subject:Date:In-Reply-To:References; b=wYck7ygYTHx3AocPuAqZLJaFObYMx3Rmro/KEC12FGQGmu9e67l6RZzO9+ZNfztvq 8HHzGJBuuQHMFm7fipHcyQuKJ1wZMXfEjGGJlBRMktmo9PsiDRHmjj+N/uAtffwtCg Sq2CQEoFmlzSu0rwnOuQ5mTSrEqT9HfLETVVGJIg= Received: from localhost.localdomain ([59.37.125.102]) by newxmesmtplogicsvrsza2-0.qq.com (NewEsmtp) with SMTP id 39F0DCCA; Thu, 05 Jan 2023 16:14:31 +0800 X-QQ-mid: xmsmtpt1672906473tb9msebyj Message-ID: X-QQ-XMAILINFO: N4CzT1PKe+qFOFPTjwSCFx66iRJY1ruq7HrV/mAT5Ar6egyYNG5l9xB0vGk77a PxmUlsSJrrnRxHnpZ8Gd7jSZlvfEgab0WRQSTYnrekz6x/d8CYtIBT2Rx35OZ/1khFpQZBf0v9bh 3+a2Y5q5ErhlCwk5w7+HMHV0kKOlHu4W1duCbe853gPzHTwFSMlC3EEsZpGuknGPN/FuRAfE6MJT /av6QdKDbedq32il9IcR+NsSE7eH3Cq8pU7wvd7z8DDtxEp5Y/+YhXeZkuYk3fCyXCznSW2kv+Ed /ffaZ8jzF6JzpTypD63gBVmZfktW5i0XDpcTOkIj222BzkuakefAxJwsoyAczV94DFo1Nrwx7uQT pIbhVWVU/mk5k7W3DucfmYq0wGnyYxIVZW9xC7Z913K5p5uWAe43XRvTkD4NNyvnJcIkuvC9jf4s sbmPv2YEGM6H4aI0WI7+Zskkb2rhF4djwRBrw5XSwBsBdgRoFhZ2yxsdcC+4a6ZfFybQ0S5LZMS9 vmogQY3WU7RNsIQigH8qubhy0JCwlTdiKZ+SV7V5ATd0bHz3puXy+fFRL7gTOINHn8hy+ci0vakc fSwoXpNTLJzXPi4bKbSU2ZVEZ2ruvVMMT1xcQtRBr33ZGiWGXbouTGFNY3teCPCEwN1i7r3a9Eiw 57Mh7Tft/DoMPo/iiYOqLYAOgYrq+CYkC9CLf88IqzY1wMbcD7dzeWrFjRRWO8KPnbg2l98NXCxR iDMlJr+M3RiD35q6HTjdfTpitGL2+1RzlQlerUiW3CWCL0Y9F3oVmytbGmQkIjeEpdR2DLqoMRa3 R7Xtbr8tcV4Rqx3Ulgi6e30aYz4kYbYY6fOS+n7RMMLBXOgqrsQ1870XTH/CbmcZ4PqxyxhNPPae strX3Dzh9c5EcNs1Ik2qqA/+DoInEHgkIkoVI+VngvAygoxZvj33Pf/hmbXMFXglyLnK1glSpdk3 2vmSkh/oaJn50lBCD7otwrlNiYw4FCCPRwxURx+14= From: Zhao Zhili To: ffmpeg-devel@ffmpeg.org Date: Fri, 6 Jan 2023 00:14:14 +0800 X-OQ-MSGID: <20230105161416.194463-3-quinkblack@foxmail.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20230105161416.194463-1-quinkblack@foxmail.com> References: <20230105161416.194463-1-quinkblack@foxmail.com> MIME-Version: 1.0 Subject: [FFmpeg-devel] [RFC PATCH 2/4] avcodec/cbs_h2645: keep nal->nuh_layer_id > 0 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: +dIBDFfduO6z From: Zhao Zhili --- libavcodec/cbs_h2645.c | 3 --- 1 file changed, 3 deletions(-) diff --git a/libavcodec/cbs_h2645.c b/libavcodec/cbs_h2645.c index 4ee06003c3..b12abede29 100644 --- a/libavcodec/cbs_h2645.c +++ b/libavcodec/cbs_h2645.c @@ -477,9 +477,6 @@ static int cbs_h2645_fragment_add_nals(CodedBitstreamContext *ctx, AVBufferRef *ref; size_t size = nal->size; - if (nal->nuh_layer_id > 0) - continue; - // Remove trailing zeroes. while (size > 0 && nal->data[size - 1] == 0) --size; From patchwork Thu Jan 5 16:14:15 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Zhao Zhili X-Patchwork-Id: 39877 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a05:6a20:bc95:b0:ad:ade2:bfd2 with SMTP id fx21csp206627pzb; Thu, 5 Jan 2023 00:15:07 -0800 (PST) X-Google-Smtp-Source: AMrXdXudCes4COOd9xPOylFdZsGF0xpVuPdEsrRg1qKLrWooxdgI9W5fZLwJ6BD2VCApMfKg//sb X-Received: by 2002:a17:906:2489:b0:7c0:fa2d:9af3 with SMTP id e9-20020a170906248900b007c0fa2d9af3mr46035923ejb.45.1672906507010; Thu, 05 Jan 2023 00:15:07 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1672906506; cv=none; d=google.com; s=arc-20160816; b=WFo15QlnzTBXlpxGJoWe1IFIVUg1ZGrKoTk1ZL4XZwB8/CqEg5kE1EAvlXUOMvsX7O Z2PYPJWdSSPeflId4iittQ+W38ytNGKz39XS/vWOcfSM9QyX8fkhngc15kfxKt2D4jmR Ac6fbfvl946X6YBrFls7Cx0ztlRooJqa3S4t//zyLZEsUDsahKPo49wLm5wKZaBzXB19 4bsyGtDU7RbJWMVkN+EaUtBThxFDs5iNkxGCL69l3zoITIDqwq9djKv5PyMyEK0WVKCl xtzTCqkHOykg/y6gr87ftm/v6efAbzFeKvXpRvVldZ+G/VUwLpkoLgcAzYi4JZKwInm7 HGBQ== 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:references:in-reply-to:date :to:from:message-id:dkim-signature:delivered-to; bh=bsDl0TG8QXkzL1t9uxAu7SY/h1KzaAReI2CvNfWcdpw=; b=BXXIaQQqyA6QewPNiLs31/gq1uDA2anV3XXkjkAGUybV9p8plReKtFLeDt7XanhbSt DMn2roGyjR5zoc4AD7x8CAu8fGElO5lTLOLo7CKfxZfJIQj1XmSz9htn6MAIFLrICGcu zYVpR21XmgliMmVMvDW9tGYbeCBB72hStjC7oh4nynIDUawln5/fYQ0GHqR9aXNwok6J gRdq6KEkmkLiKac5tUcd5+wCCixZ6j7nDRA3tpOEhZ+zr679E6O4wmJSctivYR37fqz8 mULKdan1nNxSIzjSgU35ZfuYH291sKbPDYahmwHfU3hbCOdNEJmlj88GuLOR1kXjk5rQ clWQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=neutral (body hash did not verify) header.i=@foxmail.com header.s=s201512 header.b=dXS1uZ3J; 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 xh12-20020a170906da8c00b00787b9cd2fe3si31261941ejb.844.2023.01.05.00.15.06; Thu, 05 Jan 2023 00:15:06 -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; dkim=neutral (body hash did not verify) header.i=@foxmail.com header.s=s201512 header.b=dXS1uZ3J; 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 4348668BCBB; Thu, 5 Jan 2023 10:14:47 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from out162-62-58-211.mail.qq.com (out162-62-58-211.mail.qq.com [162.62.58.211]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 1A25568B752 for ; Thu, 5 Jan 2023 10:14:38 +0200 (EET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=foxmail.com; s=s201512; t=1672906474; bh=C1o5Cfbjt7FoS+8RgZOXwgJfuPSA7p3Sx2MXkyQ8OIM=; h=From:To:Cc:Subject:Date:In-Reply-To:References; b=dXS1uZ3Jvwm/sAhL2n6V9iP3cTd/0iYgSFiUZoQVHMlurISh2kYJA8kpZxSQ5uI08 iYVWXakmw5x6pH0k7ItKfBZ6J4RYsjE2sX8RnPngk4DQEfs3704L1XgASquL68MiAX 3Jw3jA7aGi0huQhs4G6oA9uc866roSIK9I+F726A= Received: from localhost.localdomain ([59.37.125.102]) by newxmesmtplogicsvrsza2-0.qq.com (NewEsmtp) with SMTP id 39F0DCCA; Thu, 05 Jan 2023 16:14:31 +0800 X-QQ-mid: xmsmtpt1672906473trs2ua9bp Message-ID: X-QQ-XMAILINFO: NJ/+omVLhVgaNoo3uyuXlWoe27MU+WVVuj0o2O7UNG/m/ksUHE9hR4iL3I55SA Yn0+dmew/twzF1zWNFOT5XKS0dI+PmWC9VBp/NPXeQC/2jf4+0eeIaY1eUAcUeuE8ltNIlaseH+d BAx2Ckh+RvFvKRTEEs1/8tx05nWn5voJmGzHg491HEoxP7DtqTFSAdmfAUEpUaYOaYlwixKvtK+5 UOXjohbsSIlyECyDjeCLBLfV+9aDhNtsU9QFcqdrWpYzYRje/7Y9DsiKjO+hhD9Xm3sPz8OHzHTu qKcZSi0HO2Zc6CYN6Ucm/M1N080tjV3giFcEeXIk4yB2NUuw/2xc9iCIP4tHNsdPHmRSAsBr8cXX +hyjnFmHExaKh5pfO+D5jmlt4udBHTfAz5sI19qbkgjjiCzdJrcHdHdfDJtiRQG83MfjKS8+aefU HRt35qi5vIXBK5RVxMoJrfDN5cxKsaH6A3TCQ0M4kbljuiKS3XQBF/H3cOstMXcLkY2IWjtwN0na riWEPKGFHaMJ/OeLB5WeZKw4BMWbhx0V3nQ2YHCewtSZpnY2H0EK07rojIVtEDrVoID0Nt5ExNYs dg8WWgPAC/g5RMnQvMC1sZqFNscfDkj8hV98p3710jCRqtTeTX2tgxVIPeFiNWuhemO1RT+jZuYh Y+7Wc2Q8zFQBA0oYRwqQHbkcIcb2W4lZGr8RKOKthv+ED8YkGpvInJpngzY4C+jzE4w/sTgQ7vM+ TBHQKRpd3CLzRFwwHxtbpQ8oFId0nDrI7fFrIQmpPSV2zZhm/ovp9EhNO7LG9gOuIuRKRf5Bqn0L wcsvSzkEZ4WA2Ib0KmDZNMDHSfSz5vMr9OgHmKaf21PERzNc6M9P3kPAEIIl4ujQVVcBfDpxnCCs 5PcbcWMf6GCjEL59I7fo1HOMDO6BVSF53ca/J78xqjMhDp8042W5AP6ya/IGEOA/vEXbhNeNIO8y 3pTbXKkyen2GqRgNVnWSvT4sZwLNBw From: Zhao Zhili To: ffmpeg-devel@ffmpeg.org Date: Fri, 6 Jan 2023 00:14:15 +0800 X-OQ-MSGID: <20230105161416.194463-4-quinkblack@foxmail.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20230105161416.194463-1-quinkblack@foxmail.com> References: <20230105161416.194463-1-quinkblack@foxmail.com> MIME-Version: 1.0 Subject: [FFmpeg-devel] [RFC PATCH 3/4] avcodec/hevcdec: add nuh_layer_id option 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: Lhx70lSuDSdD From: Zhao Zhili It can be used to decode selected independent non-base layer. One use case is alpha layer decoding. Signed-off-by: Zhao Zhili --- libavcodec/hevcdec.c | 20 +++++++++++++++++++- libavcodec/version.h | 2 +- 2 files changed, 20 insertions(+), 2 deletions(-) diff --git a/libavcodec/hevcdec.c b/libavcodec/hevcdec.c index 567e8d81d4..9641922834 100644 --- a/libavcodec/hevcdec.c +++ b/libavcodec/hevcdec.c @@ -3216,7 +3216,8 @@ static int decode_nal_units(HEVCContext *s, const uint8_t *buf, int length) if (s->avctx->skip_frame >= AVDISCARD_ALL || (s->avctx->skip_frame >= AVDISCARD_NONREF - && ff_hevc_nal_is_nonref(nal->type)) || nal->nuh_layer_id > 0) + && ff_hevc_nal_is_nonref(nal->type)) || + nal->nuh_layer_id != s->nuh_layer_id) continue; ret = decode_nal_unit(s, nal); @@ -3637,6 +3638,21 @@ static av_cold int hevc_decode_init(AVCodecContext *avctx) HEVCContext *s = avctx->priv_data; int ret; + if (s->nuh_layer_id > 0) { + if (avctx->strict_std_compliance > FF_COMPLIANCE_EXPERIMENTAL) { + av_log(avctx, AV_LOG_ERROR, + "Decode selected nuh_layer_id is undef development. " + "Use -strict -2 to use it anyway.\n"); + return AVERROR(EINVAL); + } + + if (avctx->hwaccel) { + av_log(avctx, AV_LOG_ERROR, + "Decode selected nuh_layer_id doesn't work with hwaccel.\n"); + return AVERROR(EINVAL); + } + } + if (avctx->active_thread_type & FF_THREAD_SLICE) { s->threads_number = avctx->thread_count; ret = ff_slice_thread_init_progress(avctx); @@ -3691,6 +3707,8 @@ static const AVOption options[] = { AV_OPT_TYPE_BOOL, {.i64 = 0}, 0, 1, PAR }, { "strict-displaywin", "stricly apply default display window size", OFFSET(apply_defdispwin), AV_OPT_TYPE_BOOL, {.i64 = 0}, 0, 1, PAR }, + { "nuh_layer_id", "Select which nuh_layer_id to decode (only works with INBL)", OFFSET(nuh_layer_id), + AV_OPT_TYPE_INT, {.i64 = 0}, 0, 62, PAR }, { NULL }, }; diff --git a/libavcodec/version.h b/libavcodec/version.h index 6b8a1dbb79..15f7c3fe3d 100644 --- a/libavcodec/version.h +++ b/libavcodec/version.h @@ -30,7 +30,7 @@ #include "version_major.h" #define LIBAVCODEC_VERSION_MINOR 56 -#define LIBAVCODEC_VERSION_MICRO 100 +#define LIBAVCODEC_VERSION_MICRO 101 #define LIBAVCODEC_VERSION_INT AV_VERSION_INT(LIBAVCODEC_VERSION_MAJOR, \ LIBAVCODEC_VERSION_MINOR, \ From patchwork Thu Jan 5 16:14:16 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Zhao Zhili X-Patchwork-Id: 39879 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a05:6a20:bc95:b0:ad:ade2:bfd2 with SMTP id fx21csp206862pzb; Thu, 5 Jan 2023 00:15:24 -0800 (PST) X-Google-Smtp-Source: AMrXdXtrQPHQAPm8E/G7z/rJ32qAB2VaKuPk1jj4YOQGv6kKvRKndzmKrayZcWCY9/zZS20j2IFQ X-Received: by 2002:a17:907:6d22:b0:7c1:52c:a960 with SMTP id sa34-20020a1709076d2200b007c1052ca960mr57893565ejc.8.1672906524607; Thu, 05 Jan 2023 00:15:24 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1672906524; cv=none; d=google.com; s=arc-20160816; b=HIk8iN8zMGFAT4/Hubv+1reaNXN1wv+VpVcaWYUvd2mLk3fJ39C3su0qclaOme/E1S pDlNsQgHQDHu9Ey2McnPhHtwRsxUDLPVUpfZE48TR2Y89ZLdK11G97WBxZvXBHj1eZ/3 OksqIXW7Qwrx5Wuw2HGe7FcXfG7RAJ+KDek/9mmMvwuhI3zw3/jOUp7B3D29ltDlEtHA cI02HUovbw7BoC8Nz0WzjEossbfT0zIUaa285tB7eszm+cprGD0v1HdquQVJOEhMY5Ou Z8hzGBcMSwswfx/yGEWxLjXiDl686r2wDUsv0RXJTueiTa4J93ZxOu6hoo3KKSmzJ43+ 1d4A== 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:references:in-reply-to:date :to:from:message-id:dkim-signature:delivered-to; bh=2DsZCPmTfZvGiufBn5Y8d3d24BAzDu9QoSvHso9BJ/0=; b=LQre0r0illZbuY6G6yDGUI7nIH3O/nP4XwLyE9+ZqU51RQiI2UnmsYuHGsPvNt3VnE 0b2VGswrZHnLsO41BTwglNJa3KpIdoRqqn3xkK6C7hQ1IDjhXDtD/MsSP3PjBgHkmdgL LkVFEkxlgRhCu+bAHCpJrH056zHzfQmbEj+S6c7uaGep0XBCgO9k5M7QeU8Eg/zpfK08 hQYUSCZk1/pZXqtOOK9PtNAjqcvj36hF9knMUpuWwbrB8gCwtjU03LBcyriZyI0u9KPf ba9oHvoXbD4tdGRpyYHbx1fU24l70RZB1fNn9PoPYdb/xCANVdY8T52SCeKRcrP919Ep Xqpg== ARC-Authentication-Results: i=1; mx.google.com; dkim=neutral (body hash did not verify) header.i=@foxmail.com header.s=s201512 header.b=N9cfETqx; 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 dd21-20020a1709069b9500b007fed8db38a8si35530630ejc.114.2023.01.05.00.15.24; Thu, 05 Jan 2023 00:15:24 -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; dkim=neutral (body hash did not verify) header.i=@foxmail.com header.s=s201512 header.b=N9cfETqx; 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 4278E68BCC0; Thu, 5 Jan 2023 10:14:51 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from out203-205-221-202.mail.qq.com (out203-205-221-202.mail.qq.com [203.205.221.202]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id A691C68B752 for ; Thu, 5 Jan 2023 10:14:43 +0200 (EET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=foxmail.com; s=s201512; t=1672906480; bh=ppcE7V+fIq3/Lx1xE28sEjSpaYVVLHD+gFerPaVzeY0=; h=From:To:Cc:Subject:Date:In-Reply-To:References; b=N9cfETqxcnT2SHVaisvz4EsJ8Y7cjmMh2WJ8W2w/B4wbVmmvYVTNNl5Mojs/awc8a JZYN1yrzgxgMDtO0DrxiJlpL6YV/pNAX/yAhonQwyPyG1Ey1u8OJtMKlb2hOtAqXnj 6PrxEor7FAeqDidn0LYbGKcelhMpW8mfCuraW0mY= Received: from localhost.localdomain ([59.37.125.102]) by newxmesmtplogicsvrsza2-0.qq.com (NewEsmtp) with SMTP id 39F0DCCA; Thu, 05 Jan 2023 16:14:31 +0800 X-QQ-mid: xmsmtpt1672906474ts0ppfxpk Message-ID: X-QQ-XMAILINFO: OZZSS56D9fAjpTM4SEa2iYd6Zi1Ffc16NEIf+47I+OQXHtbXzqjAXzIJ6yBkDt jlc3cR+19GXxp7tGiwvswDIhBGVrkJWTojVDIfSn/ANk2PXvsrunfOepqe6b8QhWSWuOsVkN3rW9 OdzSMF+B0UyK/rA2nU5P/HlZmk2+pP2TxVo35+CPY/gsOe/zIaASWBZ75SbYMiB/XJ2/ewcrWnxM JB3S4x5gg/NDRr+zepL1TzRSpbtJ27JPt3DpsEkcLgTAsMFhYL6yJQjBP5qWnS7n9rLPa9ARVU80 W9VWe0+BXuPB0tN22LwjkiP3bAfDKA7yRh8vVr98gOT/6iy/BGPLuuCgJIerMZ/52qzzthiHN/Bu IGYM+jgyu6DB5nMVmPZz9f8tnE7MSf4PFgnXxfn3k8Z6/Vj3muX2HZniaqmi93g9U5bo8Z4QxPnw h64wc6T+Dkn3TUJHiIntlYWdVcXc3/GaA42IAI7GM6VcAfZN3LrhzvlqnFFf0LsD2jz1DkT0L12B MB7GswLsngub8oNrFtKyxyONHXNvCZqFlAj4ek88baA2AgrFTshE2hMoUyDyIXDH0gIjwaT+bE3i IMHnLsL+tbm/hmTDEbXDcKETvFtSVW+LxWybJs3KDZenp9QU7dFjfOitHlD3pyRnUg3uVKWL1fhn 5nPI3ksZ8pdG5YECl7puS94DtEJC/+M4WEISS143hu7bZdAjLQmgW8ad0t4I9b7YTYYbcclMjmQw r8BqYdT70JxO7sztNrezGfvww3Q9yh8r59H9G2Ibb8RUEGJo8X8005MJAWeGHWcq/kuxBFi/Rcfj sQkMGKj3yCwZ3A3gx8o5dI7/I7GH5+XQNIPDvkbJLEJGJxEqQ3NjqzGl1W2EWQwpmlsSpV7lbRHb d7P2H73F3p4ZyrujH7Yg4335aSSLqFWKmU+s3DlJdwzKKovWRGxtjAInIEiTKRPDv5Xn4KEmLUi0 Jx7zatcQMamgqRySEf+Qg+b9h2DR2IaAPkRLYu4ypRvcifd7KaCVebuwD8lvug From: Zhao Zhili To: ffmpeg-devel@ffmpeg.org Date: Fri, 6 Jan 2023 00:14:16 +0800 X-OQ-MSGID: <20230105161416.194463-5-quinkblack@foxmail.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20230105161416.194463-1-quinkblack@foxmail.com> References: <20230105161416.194463-1-quinkblack@foxmail.com> MIME-Version: 1.0 Subject: [FFmpeg-devel] [RFC PATCH 4/4] avcodec/h265_metadata_bsf: add nuh_layer_id option 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: N6/H5mDIGQht From: Zhao Zhili Extract NALUs with the specified nuh_layer_id and rewrite as base layer. For example, to extract alpha layer with nuh_layer_id equal to 1: ./ffmpeg -i alpha.mp4 \ -an -c:v copy \ -bsf:v hevc_mp4toannexb,hevc_metadata=nuh_layer_id=1 \ alpha.hevc --- doc/bitstream_filters.texi | 5 +++++ libavcodec/h265_metadata_bsf.c | 25 +++++++++++++++++++++++++ libavcodec/version.h | 2 +- 3 files changed, 31 insertions(+), 1 deletion(-) diff --git a/doc/bitstream_filters.texi b/doc/bitstream_filters.texi index c63c20370f..8cb5bee644 100644 --- a/doc/bitstream_filters.texi +++ b/doc/bitstream_filters.texi @@ -443,6 +443,11 @@ The argument must be the name of a level (for example, @samp{5.1}), a or the special name @samp{auto} indicating that the filter should attempt to guess the level from the input stream properties. +@item nuh_layer_id + +Extract NALUs with the specified nuh_layer_id and rewrite as base layer. +All other NALUs are dropped except VPS. + @end table @section hevc_mp4toannexb diff --git a/libavcodec/h265_metadata_bsf.c b/libavcodec/h265_metadata_bsf.c index 6787bd14a1..fdaab27186 100644 --- a/libavcodec/h265_metadata_bsf.c +++ b/libavcodec/h265_metadata_bsf.c @@ -62,6 +62,8 @@ typedef struct H265MetadataContext { int level; int level_guess; int level_warned; + + int nuh_layer_id; } H265MetadataContext; @@ -328,6 +330,25 @@ static int h265_metadata_update_fragment(AVBSFContext *bsf, AVPacket *pkt, H265MetadataContext *ctx = bsf->priv_data; int err, i; + if (ctx->nuh_layer_id >= 0) { + H265RawNALUnitHeader *header; + for (i = 0; i < au->nb_units; i++) { + if (au->units[i].type == HEVC_NAL_VPS) { + H265RawVPS *vps = au->units[i].content; + vps->vps_extension_flag = 0; + continue; + } + + header = au->units[i].content; + if (header->nuh_layer_id != ctx->nuh_layer_id) { + ff_cbs_delete_unit(au, i); + i--; + continue; + } + header->nuh_layer_id = 0; + } + } + // If an AUD is present, it must be the first NAL unit. if (au->nb_units && au->units[0].type == HEVC_NAL_AUD) { if (ctx->aud == BSF_ELEMENT_REMOVE) @@ -478,6 +499,10 @@ static const AVOption h265_metadata_options[] = { { LEVEL("8.5", 255) }, #undef LEVEL + { "nuh_layer_id", "Extract NALUs with the specified nuh_layer_id and rewrite as base layer", + OFFSET(nuh_layer_id), AV_OPT_TYPE_INT, + { .i64 = -1 }, -1, 62, FLAGS }, + { NULL } }; diff --git a/libavcodec/version.h b/libavcodec/version.h index 15f7c3fe3d..734a4fe097 100644 --- a/libavcodec/version.h +++ b/libavcodec/version.h @@ -30,7 +30,7 @@ #include "version_major.h" #define LIBAVCODEC_VERSION_MINOR 56 -#define LIBAVCODEC_VERSION_MICRO 101 +#define LIBAVCODEC_VERSION_MICRO 102 #define LIBAVCODEC_VERSION_INT AV_VERSION_INT(LIBAVCODEC_VERSION_MAJOR, \ LIBAVCODEC_VERSION_MINOR, \