From patchwork Wed Dec 27 12:49:23 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Zhao Zhili X-Patchwork-Id: 45338 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a05:6a20:6623:b0:194:e134:edd4 with SMTP id n35csp3415100pzh; Tue, 26 Dec 2023 20:49:45 -0800 (PST) X-Google-Smtp-Source: AGHT+IFyrTdqYBtwQmo7nsK9EaFuhGsyXFAfiOEHYx9OsmnuSsEG4lw6qlYSLUU5kB5qyjsZ5M5y X-Received: by 2002:a50:bb26:0:b0:554:185d:a3f1 with SMTP id y35-20020a50bb26000000b00554185da3f1mr4367666ede.43.1703652585720; Tue, 26 Dec 2023 20:49:45 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1703652585; cv=none; d=google.com; s=arc-20160816; b=z8P/GGB+LIy0W4NGPKYWC6yztpAi1b1S1zziA5Ofm29rXxGZMpBooBuLb6faKFj5KJ CFhrYxk+D/jbgy7HBNFYvluloXG/svwm79fNO0dR1S5YwI1QLPaLIfWo0oAMGCfehblG xIUy+/qdtIEaoUMNy668wuRi4DmEkOgd4oV2Rb8jaFYyLJvEf/26KSE+w+qO0+ZhvZbr 452y2TRUlj9ytc2hQHd9oVdrUFL8xoTPIadtRThEletXkYTh8KkyiJLTosj5DJ+2QqrK yqIgMZ1SLEjp6ctOGPggLfUMvYJtpPyKlYxKfV+ApOQVOkJyHtb6TV791fI0wc3AFYBK mDwQ== 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=3u2+xvk7Lv3HGLh8K5VeQVyxbLIFjUhyqFIKF+hVY8k=; fh=HnHYuZ9XgUo86ZRXTLWWmQxhslYEI9B9taZ5X1DLFfc=; b=AmJGbL424JBng4KBeI9du1TPlojpD8mcN+RsadXXTgme+f6e44/yMjlSpvP3eXocEl iKY3pzFzaCs/RLAbliQ16hIWyO4/daiLTZhsYLjfVBYVk2pvx8nqDlotiB0y7V1qeZpw QEjfhz1JcL5QgFqCRd6Ks3nSMoI+gmbr/mVxAMTW7QkqMXLZPI4fQRIZf+C7J5Spv9gj V/JhSBNY4IGb4lG95jvk403L1wO6f3UzUD22niQt51NH2lZV1J3sS3h7XlOfRKBrWFaJ N1FKnTYCfd+CWlNN4bCr+zgbkgVkUu4g5luFFVPAR/it5zaQvT60zHE2Bl75YrAg43Hs hvjQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=neutral (body hash did not verify) header.i=@foxmail.com header.s=s201512 header.b=N2CrXEHL; 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 c20-20020a50f614000000b0055563c23932si36635edn.81.2023.12.26.20.49.45; Tue, 26 Dec 2023 20:49:45 -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=N2CrXEHL; 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 DC61A68CC19; Wed, 27 Dec 2023 06:49:40 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from out162-62-57-252.mail.qq.com (out162-62-57-252.mail.qq.com [162.62.57.252]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id C49D268CBD7 for ; Wed, 27 Dec 2023 06:49:32 +0200 (EET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=foxmail.com; s=s201512; t=1703652562; bh=B+iYgUIMsRdKElvXAliY7vWIiSfZUzdLvxLr/e9Y+TM=; h=From:To:Cc:Subject:Date; b=N2CrXEHL32suCkXFLmKJm3xJdkB3HZPD9dF4JfrOITLLjxa50fZgjvypkOoX0Mc4i 8Ayvlv+3jL60ycACPKLzvRCZajxFVWe3LSVXYw3Ty5A5ef9S4cNNTFE8Dym1fc8aTC nQvhobHQD9naS9fCMny0l3YdQjGZT+lMbhc+9QEA= Received: from localhost.localdomain ([119.147.10.193]) by newxmesmtplogicsvrsza1-0.qq.com (NewEsmtp) with SMTP id C55AAC8E; Wed, 27 Dec 2023 12:49:21 +0800 X-QQ-mid: xmsmtpt1703652561tbk6902js Message-ID: X-QQ-XMAILINFO: MyIXMys/8kCtLI6dXacj2OQ1ka1PW/00EHAkzVdJAEgl/wiWfQSJjK0N9IQjPq D96zFApzaT2xoS753ZsXk8Pq0Rda2AAl2l3pZf9Xz9Sxqe91xrHPwsN8ZEGQfL60iVwEsefWIRAK Sqgknj5RL9uRZOWmDxFn6+fQaPigRshfpB90r4FbURRjb5yhaz+xPOA4gFUX+lxUkpO313swpEAs TE40F23RfncyeLBZt4Kg0dAvAzkbDmkbSmzlHVa/10OwDUOnzM7b2RMHfgeqg2GcUpbEGt7spjtI 5IG34GBTQ4FEQoICe9oKFJoN9HloeNMHyLKgrVZB3HlaBa00WChK8T7IjNlQ7G5x8X4oTXX17Kop ozOzBPF2Spdnu2Rlu3ly8y8WKsKlFN75G8/YOX6IHXI2PEhitXuRPbktiYMGHEfKAakFHGF/+QrW AFwhi3Bc08mFrpcob5st9GTtXvCtAuVsMMixECLLEhiGgzcaRt3dfW7gPqGRK9oNm6ZNVKxiuxa2 XxKPgzTew17T9KF348+7QiUPqgeAwLOIPb8jYiwyKUCU//rWDmHQkvZoK+XNMwOIDlMaW7ehG+GE R+b/KuwjTy5xE4AI/bnnSrhxKOpcI+3akyO/4+IDfwWyKWm4z2M7gU9Sa7yyuQ45qdXLhyMbiXRc e18RufoFMawK7Ebd+s5d5u2eyS//OezKXCdCdLa+0TCPywPbkJc9zb44GEFInOXlnKr8GPvnCpaE vSTFrOTFQYZt85Q2j/0hSaiObHPlFCIq771dONu8A45glhnGdz6/HbJiGSrkEhgYbEmiUrkTeIZz Zdc4ZBWfVmIi6JYmSUFi4kkbCqqEhy2vuj/CKWjoM7Q90ekJ+oRR/HnPzsN91zJEa/AbikIT8cZV eGH2sknNohKCXy1zNUdKfSSq0V9b+ZNvkukD7owx+ePx2xAT+QlicxlfG6/9hktTfK/vpUkN8NMC CEwUjwOB53NPResIyb8OWSQf03VwDT X-QQ-XMRINFO: MPJ6Tf5t3I/ycC2BItcBVIA= From: Zhao Zhili To: ffmpeg-devel@ffmpeg.org Date: Wed, 27 Dec 2023 20:49:23 +0800 X-OQ-MSGID: <20231227124924.629396-1-quinkblack@foxmail.com> X-Mailer: git-send-email 2.25.1 MIME-Version: 1.0 Subject: [FFmpeg-devel] [PATCH 1/2] avcodec/hevc_mp4toannexb_bsf: use HEVCNALUnitType instead of integer literal 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: ZNXS4SR+6WIC From: Zhao Zhili --- libavcodec/hevc_mp4toannexb_bsf.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/libavcodec/hevc_mp4toannexb_bsf.c b/libavcodec/hevc_mp4toannexb_bsf.c index f9a025a36b..d91229a895 100644 --- a/libavcodec/hevc_mp4toannexb_bsf.c +++ b/libavcodec/hevc_mp4toannexb_bsf.c @@ -157,7 +157,8 @@ static int hevc_mp4toannexb_filter(AVBSFContext *ctx, AVPacket *out) nalu_type = (bytestream2_peek_byte(&gb) >> 1) & 0x3f; /* prepend extradata to IRAP frames */ - is_irap = nalu_type >= 16 && nalu_type <= 23; + is_irap = nalu_type >= HEVC_NAL_BLA_W_LP && + nalu_type <= HEVC_NAL_RSV_IRAP_VCL23; add_extradata = is_irap && !got_irap; extra_size = add_extradata * ctx->par_out->extradata_size; got_irap |= is_irap; From patchwork Wed Dec 27 12:49:24 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Zhao Zhili X-Patchwork-Id: 45339 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a05:6a20:6623:b0:194:e134:edd4 with SMTP id n35csp3415149pzh; Tue, 26 Dec 2023 20:49:56 -0800 (PST) X-Google-Smtp-Source: AGHT+IHrF+E+vnhqfu98y85dZSRiudwT52SaChfIJ6HkOZRTAHBPKRKfov/OVd4KY4xmOO2cpJBI X-Received: by 2002:a17:906:1913:b0:a19:a19b:78af with SMTP id a19-20020a170906191300b00a19a19b78afmr3685075eje.114.1703652596140; Tue, 26 Dec 2023 20:49:56 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1703652596; cv=none; d=google.com; s=arc-20160816; b=g94+GofbJ2LUUJwCzLFUly5YtEAib65/oJyzBRbQz6zchhmbXslf7rvx5OaJVblmDj aCJ4bpu2vEploR8gOh03i36sGfm1qfUtxXYTCW2DJdpWRsMVxz+wR2mWzo2tAyTPs6AP SZlsOoUwEFsTbWReNjzeueYNynTBB2p6LUq7SH4msrvgu379874GXdbZbnN86T5TsTbn ucbwmAXKiQ4DpvDtnUwr2AToQnh9p8NMnEG8nMlJ+JFrpfLTG+MUXu+VpSJm8JGVRxKq ylnszON8vGto+ZgdC7la+Oi3GeuK6yoOIgkXP1jL+TKMycsUkUYJmLhhVJ2FAj6oDPMZ vYFg== 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=kCSezZ6gluOToCSCNV2O0W7+YgVk1hten4x1bF05+5A=; fh=HnHYuZ9XgUo86ZRXTLWWmQxhslYEI9B9taZ5X1DLFfc=; b=gUfPJF83K7tgcpjCQvhe0dPWNyRxk/f/vwHUrU2KMOeA1eBak841gbF0+RoTs/kFTH xMVyiIWmD60atjr9UkPkHG8r9sJN6LLIjGJxGjyV4kl2U30C1kkQ5CWAXZvWksQFVDqy hN52SQ1VOw/IlVtsxR4IFLhlrCrpFZj/pLN0C5gszFrD97z+YdynBFdp5sM6p7rOrpGf yjs5kvrkKjIzm1012nMh3nixoptqHwuK7WqpleaFfsvJcxORoNqVUbNs1dQK0pAOPEvm 5XmGkUnSAVEqbDcP/LDr8TeHlZIyATlK+a8j9H65ncPa7m9vnZ8i+gvZugIHge7Ctytq l1Xg== ARC-Authentication-Results: i=1; mx.google.com; dkim=neutral (body hash did not verify) header.i=@foxmail.com header.s=s201512 header.b=BL+EvJ8W; 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 qx26-20020a170906fcda00b00a269798110fsi6199949ejb.1006.2023.12.26.20.49.55; Tue, 26 Dec 2023 20:49:56 -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=BL+EvJ8W; 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 113C768C98C; Wed, 27 Dec 2023 06:49:42 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from out203-205-251-27.mail.qq.com (out203-205-251-27.mail.qq.com [203.205.251.27]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 49A9668CBD9 for ; Wed, 27 Dec 2023 06:49:33 +0200 (EET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=foxmail.com; s=s201512; t=1703652563; bh=xy8br2CJIUpaeRHdZUGQ/B6esPdM9ZXXwmiCRJbP0vw=; h=From:To:Cc:Subject:Date:In-Reply-To:References; b=BL+EvJ8WOp2hcXEBKauAFxkupeWWVmAd9UuiminQE8Mzt2coL7nM2J6UXKuinycxY FdYwClW5P2FsJt2ULDpnJFESlQ6nktGq79ls1BqDlUPe0O/4vTpcvNmInf8x/7vfk6 Rx8yAVmE4Y5AHPDaAniF7QE6kcDAB47oKOy/LBlY= Received: from localhost.localdomain ([119.147.10.193]) by newxmesmtplogicsvrsza1-0.qq.com (NewEsmtp) with SMTP id C55AAC8E; Wed, 27 Dec 2023 12:49:21 +0800 X-QQ-mid: xmsmtpt1703652562ta6ulcl2s Message-ID: X-QQ-XMAILINFO: MQ+wLuVvI2LQdUYbpBrgrk9mSMaQDKf/1nr+MHUifRauEbsyHEUhimSpz/PgyJ 0cpFwbXIrxYyXn+rHqKomz/2HabPzNw4F1L+eshdf7IKTrAMSKvp5EYZhzQmq67eHcE92qBb6GPv dv273YXrKoZRflV0ql61VM7zZdiJKp31F0IrMjSvsKpgT/SAPHWWvEO5Q7noqT8SBmoHddTJEwog w/E65e/CVYqu2BPUpDPdVigYP120CoXZYa3g/0fYYDI5eVedX+O2UmfY1RQuAZqJAL4P5AC2jAxk ksslvaA4sI9qDjsDPqAHYFoGG7KgV75orefi3/B80APRTRMvJ3JGzEIlMEsOKjOqw7+lkfegGRy4 KFumQcuFogKFuWd+wUvI+qY4HAACNU1SOmGPZitwYH02D6ZOvT+9aWXhrdU/ocbYiYsmCTMz3pKZ voNjSckWwhJBd0gc91SobWoee7I1WAn1g0q84J+Iwfc6mxXYmx3jL2mK1ZdeJvkhQWo5rC1/NeDz onN4HBAO5OhVkhcnmslkrBAEw9pupmw6Gs2o+vzs9T9JqDGgOPEHKf5nXdv7wIUxgvLa2jtNgBBV uy+d9F53lFb8h/p9Wtug0kXwD6zU2ah/vb7YCvcXydIvXJxIyRsPsGJ1miLK/OpXqyYjyMtz7BH2 f+Cx9d0Il6Fuqj8C2ujbciELSy8L6bI4PhWEBBLxry65o+I/66g67nilXTIvO4ubcqUIch1zjFMq 2Ek3TPZAWWQ2ZCbKnPdO/wGdCq0ZxXa1dFl+1Tr4X4RPbtcGMS8LYhbJsST4+gOdnhPHyhR9wVV9 On+kamBSsFJ6G+fLWqhsBf+IfQ64tA7HyuSbp3B75V4elLNdnxw+o1OC01xXwnimPlmmzYoPu+lL ELGicK+Km62EBAHX6BmE1reNL9lkQ94vSzeYCubpThWLa03Sy/JojZ1SmkKJa1P2dMsUNC4lch0b L1024tfMplrJFHlarfM5RI7sFGIcRruWvPBHy4gWO2yuKCcZrIEE25L0GnjM+/ERaGR3t78Qw= X-QQ-XMRINFO: Mp0Kj//9VHAxr69bL5MkOOs= From: Zhao Zhili To: ffmpeg-devel@ffmpeg.org Date: Wed, 27 Dec 2023 20:49:24 +0800 X-OQ-MSGID: <20231227124924.629396-2-quinkblack@foxmail.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20231227124924.629396-1-quinkblack@foxmail.com> References: <20231227124924.629396-1-quinkblack@foxmail.com> MIME-Version: 1.0 Subject: [FFmpeg-devel] [PATCH 2/2] avcodec/hevc_parser: fix missing zero_byte at frame beginning 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: /Th9rVNmFFWK From: Zhao Zhili The start code is matched against 0x000001, zero_byte was treated as last byte of last frame rather than the beginning of next frame. --- libavcodec/hevc_parser.c | 4 ++++ tests/fate/hevc.mak | 2 +- 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/libavcodec/hevc_parser.c b/libavcodec/hevc_parser.c index 87270cffb4..32828c5014 100644 --- a/libavcodec/hevc_parser.c +++ b/libavcodec/hevc_parser.c @@ -278,6 +278,8 @@ static int hevc_find_frame_end(AVCodecParserContext *s, const uint8_t *buf, (nut >= 41 && nut <= 44) || (nut >= 48 && nut <= 55)) { if (pc->frame_start_found) { pc->frame_start_found = 0; + if (!buf[i - 6]) + return i - 6; return i - 5; } } else if (nut <= HEVC_NAL_RASL_R || @@ -288,6 +290,8 @@ static int hevc_find_frame_end(AVCodecParserContext *s, const uint8_t *buf, pc->frame_start_found = 1; } else { // First slice of next frame found pc->frame_start_found = 0; + if (!buf[i - 6]) + return i - 6; return i - 5; } } diff --git a/tests/fate/hevc.mak b/tests/fate/hevc.mak index b3c6792140..4889ee8237 100644 --- a/tests/fate/hevc.mak +++ b/tests/fate/hevc.mak @@ -222,7 +222,7 @@ FATE_HEVC-$(call ALLYES, HEVC_DEMUXER MOV_DEMUXER HEVC_PARSER HEVC_MP4TOANNEXB_B fate-hevc-bsf-mp4toannexb: tests/data/hevc-mp4.mov fate-hevc-bsf-mp4toannexb: CMD = md5 -i $(TARGET_PATH)/tests/data/hevc-mp4.mov -c:v copy -fflags +bitexact -f hevc fate-hevc-bsf-mp4toannexb: CMP = oneline -fate-hevc-bsf-mp4toannexb: REF = 1873662a3af1848c37e4eb25722c8df9 +fate-hevc-bsf-mp4toannexb: REF = 73019329ed7f81c24f9af67c34c640c0 fate-hevc-skiploopfilter: CMD = framemd5 -skip_loop_filter nokey -i $(TARGET_SAMPLES)/hevc-conformance/SAO_D_Samsung_5.bit -sws_flags bitexact FATE_HEVC-$(call FRAMEMD5, HEVC, HEVC, HEVC_PARSER) += fate-hevc-skiploopfilter