From patchwork Sat Feb 3 10:34:26 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Nuo Mi X-Patchwork-Id: 45988 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a05:6a20:1a28:b0:199:de12:6fa6 with SMTP id cj40csp1490737pzb; Sat, 3 Feb 2024 03:07:30 -0800 (PST) X-Google-Smtp-Source: AGHT+IE2uHftPLN8C/KG/wicShqNUsYahsAWGaauhloEouIckLs0baOJAkaGgQEqB3SAjBRpC0pY X-Received: by 2002:a05:6402:3da:b0:55f:18fa:eb59 with SMTP id t26-20020a05640203da00b0055f18faeb59mr1117696edw.16.1706958449741; Sat, 03 Feb 2024 03:07:29 -0800 (PST) X-Forwarded-Encrypted: i=1; AJvYcCXAekc+pFnE0nL1CaxKYu4iX0Y+1XZ8Ux64Me4xGygucTxtgck0ZqODqK/PQjDTU8Eo/AkZziaOyTDUCXQlegPOyA5cuHfgbPAdsj5yJ3/ddPErPmgpDeIrBG4vJiNaUQIYWaT90H16XLnZFjVdj0/1FHhCYFihcYqqlZ5bHUuHmLIubsO6uzSvx0P17/6DPR8VGmpuQcnU0RmVCWo73JN67YOY++u3wUyIT+t0bpEXM7x3/9KNt6sM6E7n4sc/2qOwL+A31bykJYvt6MRfxJ+phN0tpaWe/vdR5zyzn55I/qHHKhS/zT+/FSasldZ8+Lx66s+wnXMjn4/zQs4SYiX/WvK/CeeCKU1gzCRFjr+UHZrg/FrwbLRBRJY0vT+59ZYKMyL8vbMuIxyFDSWpalaQcJS4CcSET77LKVLtIRP27ZRLbgk8DeCQMxY2iJlX+TG9kwF64Icq1HHDmW+voHKcPyA9h4EheJVOAjorVSHO/tg9DqQ+PSq51vKKs/vQ4mjcyDhxMj7CBKeBmYtv2aJ+EWsNVbHwqhR+wWRmQnBJaDrqA+a14bdFfAOdNt5DpWOlr0Bpv3LzaBRRJihe141xVdiiGZPA6JZB5w71pO5LcPzLaeIeMVJ5pogmNBD57ZIawYUswt4xq6kUWALaWans3jR5LezMCLMhtBPRaxzhr7Du2gkviYxOoNclxt6LoLLzggNn+YIue/8OlTg3E8slTtmoXRo99/MyAdohWHNbOwKpPMPcoll5kW5N41Y11PvD3E03y338UmKS/1YsWbKUDmPB/1WlP5hJkYXDRGoNyF2lT/FsEtpRN1rAHk68E3uPjKW0agao1Mm8IUnjHXO+BTONh1IIVnTLqkvi92ehkx/EmVo52HBMCFy9bEeO5S9sTVQ6HD5gbFFLB5LLkQYVvjVB6XJGAw5i15O52U6Nv2NmBOsA7V9QuOAMhIjn8HFDgm /8YBEDeD0YGG7IyBySUByrWVRaSR/ZzfiakyDTvoIrbtQXc4RGYsSiB5i2B0jlV2CL3vmsIfyGymKd128WMANuToZKJJkU1Dr+5Xf2swaXKx93hZs7SiK/YUdH0i3uIgWXWDcLYDhp6u12Ghk4pkHRWxhdJcVoz8lAsx2F+CRHPRURM42BDAZgPv3P5aUQS2oruOuv1aCHbYT6KZNGQiMdJxEDGu8xNPI1fbzIAMM+xRRSC3Ik/X4sCdmLLQvAoe9pL1eRi6SVAhhTw6CQGv0HYyv5r6DQcthcgCruA6U8spa1BgCge+6weGhmWuGhWuXYawRJvF3cobCZkCtRAaHfJZE6zfS7rpq61nccssx0lsQqzkBNfMAivBHOnIapaqhQvF7PvuEy9qzT3tBRQnhjN/JVLnAdFQotDky/KEF5VXBM/d6e4kSa6EFPlfgvxYdEo35epMZrgR8lQTAt3kagUCUA9h+mVQZK76KNYdNsNCtIF5ZCy2sUyMV4Lrd6taZZMqTsbQWLbRFORsKHCETmLAR1Tizuy2VFD9EKRG7EAa/QOHzU0N70ZiAkXavis4HASfpS205XdTLS6IFjvPv02hjLo7LLbL7Fs5sU Return-Path: Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org. [79.124.17.100]) by mx.google.com with ESMTP id k10-20020a508aca000000b0055f2c0540a8si1745482edk.194.2024.02.03.03.07.29; Sat, 03 Feb 2024 03:07:29 -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=@outlook.com header.s=selector1 header.b=RM+6rJwu; 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=QUARANTINE dis=NONE) header.from=gmail.com Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 850EF68D081; Sat, 3 Feb 2024 13:07:25 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from HK2PR02CU002.outbound.protection.outlook.com (mail-eastasiaazolkn19012005.outbound.protection.outlook.com [52.103.64.5]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 8425568C496 for ; Sat, 3 Feb 2024 13:07:18 +0200 (EET) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=IwCcnEDC5Bv0B+qV8ehjWjgaVaJl59RfA68+fEaBgG9a3LTk2wb1NhRAO0efVLX/0N4+g0OZABZWhSLQKZtaC/EZaxhLLb2wDdRsshyOfhDJqhSbxTXXT5cvfov2VlQwl82umQQMSb9IsnuDgDtwv3umVnucVPkFXoU3elUsKEUHl7q+xLxCof23kVLTRpX1tedPC9D0zmiJP8VlEbO8V2pWkjg/DOUkEdW3Jiz0eVrTAoklyZg7xQwIaPAzN7x2wHUOJt1fVN4lDAE2FGnmZhgDg2OzoKxzJt9zogDEPpZR0kH8KMpR70rcImiiEoTOOuYH6fu6L0SPLkTPFKjGUw== 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=Nq94TRmH2lRRjbs03dCsXBrBmnEFha7ucS3/AylYXRg=; b=liemSb3ijJizh9ZiXQcuaxCVCRX20NWTQyEHeCoYiipuTBHIJk8ZiRqpWFjF6vckM96Td1FBmi37GCTUdehSoquHxxZG2ITlNTqIzaJ2PJHwvSbzWh42avoyzNj+m7qjvY0bUKoTDbHC3VsyEaGfX35bZ5etpLX8K7IxbPzshH5N0b+O7rogwBqv+O7o5+nJr8iGd0YUE9XMvwKil9F3mTNC8zUNY1to4EiM9YSna4j88bwH2Hmqccn2vDk04ECsfJDhV53EVqC20Z5m2ZY3v2TKbeQHHf+YYlivCmczrE11pwikRgFSEgOssS8sb+tsTclwffQSVSUraKHf8YUqKQ== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=none; dmarc=none; dkim=none; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=outlook.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=Nq94TRmH2lRRjbs03dCsXBrBmnEFha7ucS3/AylYXRg=; b=RM+6rJwuKmWR/hgDwFnj5UiQSlKHUpDSegwqxCMqZfK5RWHALWHeh+rgkvalh211jLBK6+6RnGBo06VgQ6PxjC8GEa0EUuK4pmgHpS1mgw2wi6ozsq0DZRvTdXnr1zh1p3OUgF72lGw/lk8fcaYy0R+b9SOYRyjnkYmvUo0r2VGF4PinV2WiJ2lbN2BLzIFBrB7yOhIfUEPJOls1EW8JCHteETie7y7n1276+ygaPE+v+K1hQmhDzRkNt4j2Qd7GfSnBRvrNEW648OLDPbs/PQmfIYhj/9YKhgAV9W8GxzmHeTUyo5+q9cOKoC3oLvASp+20ajvdAEEmxCCSgruong== Received: from TYSPR06MB6433.apcprd06.prod.outlook.com (2603:1096:400:47a::6) by SI6PR06MB7605.apcprd06.prod.outlook.com (2603:1096:4:230::13) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7249.31; Sat, 3 Feb 2024 10:35:30 +0000 Received: from TYSPR06MB6433.apcprd06.prod.outlook.com ([fe80::e139:fd7a:1b66:a3f7]) by TYSPR06MB6433.apcprd06.prod.outlook.com ([fe80::e139:fd7a:1b66:a3f7%7]) with mapi id 15.20.7249.027; Sat, 3 Feb 2024 10:35:30 +0000 From: Nuo Mi To: ffmpeg-devel@ffmpeg.org Date: Sat, 3 Feb 2024 18:34:26 +0800 Message-ID: X-Mailer: git-send-email 2.25.1 X-TMN: [sCKGnMgXgwksYppYtxj4h6c4pi5l8ChJ] X-ClientProxiedBy: TYAPR01CA0097.jpnprd01.prod.outlook.com (2603:1096:404:2a::13) To TYSPR06MB6433.apcprd06.prod.outlook.com (2603:1096:400:47a::6) X-Microsoft-Original-Message-ID: <20240203103426.855-1-nuomi2021@gmail.com> MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 2 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: TYSPR06MB6433:EE_|SI6PR06MB7605:EE_ X-MS-Office365-Filtering-Correlation-Id: ed9c14ea-edc1-494a-9261-08dc24a3d773 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: I9nF+r4Ddz5iQ//uK/1nahFbJKZN997BEFrzcwOTQJMwqfWepwVibTREn7ib5F8WKKxYRbBjXQ0ZTN2s9PiWp+iS6nM243wR28kKPpg4i1pCBg4HinRoJh9ujE4gf5ou0Xs6JLyws3EkHjQMW182pwWJKhGwqW9a8ePlvdUKjQq2zdKwj9c7A/cHogmwh2rMNHoSofFzsMNk1huMWtPCneeoibXpeJyc9sCeNbgP9kR6jWMAL4WmhY2Ge2Txudr3ObACD1KrY14ZlCpye0YKw0y9mMvv8FgkLYU6KTjxbDYPwfYYVRTw/Ukn+66bjwiP09co0v2ebzrWWO0vvuvZ7TXsYoLon1yPTV98y6+JzHwzGlUcqeXiirpudpwBAFueau4ZJ+jhLwh/8rc9wVqU4EnDRfyJ3pSGyuwCXf0E//2pQ3MlV+EAPcQFBeiemx1heLgiYmXQYHGOoeSqifRfR5t11+9ja6+P9D8Xpo2rYwIHJHPC14706k2n8M3TWELfUSghCts+IsC0iOqvFHZEEz4+0N1/t2aJ1HTSMy21a0xX8EKt9PegdGIGYdWhi4PM1rxTGIOS2MzfzmPYwJGKeSRKNT8gm3ZHJJzl+jjo3NDkrBS+hkVuHK1O62gAhx6a X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: hVcZlWB6RU6yYGwe4Wzm8cwUNZzh1GBKUu3n+SEXzBRv3iTvnC1OqkVgpGXL6D+BNor4qZdLhhciLwyM+01L9rP/PPZT4LpI7mcHQuns9fMFmwvCAohuB07Wo/ywLtiAQ9nIdS8f2VWn9REXhihA7PO/R7u9JZ9mKVptAs9tMy6XBrmuzOjdUZI10OQloSVHOWmMlSkkvJ0uG7cG5vu3PSzqbq0lBSqn1Uub3GcN/rLDDYCT0a/1Rk2Is7rj2huR2Mdb8XRFa/gP3LntO3crlX1/hyuQkYWRcnQtHXIt+PcuoW1NJyqG5hiiKlvdPzWFCw5NLfMoNDaioSGM8Cb5v4VYWZfP42btHCtjx4HJRoaythIdh1V51fB/E4Z4dAMuDquTqUlZ0GDuHtirTYJny8UAMABYjxt3osbVGPxGZDgrV1TvFtRmxt6ikRb9wS2gxkhs9ddowkVx/1tZnhYMhNvgsy8mYjiQ/0D0tIagwWNSDStYdeCz4YLPAT+znQuKMtPtdadt0c+VWz8NK9kjfjn2xbpSA2y1tbWoWefXiVZorx5XWEDerd+h+Gj+Pd1c+kpmtqouP7YYiiJ1I93AT0SacbJj5t6srmsUv04pgb+NrPMnPn63bUy47bMZW5/KHBMNuw4BWHGZyaAiVDUz4Ieo3d15tffT6JWnREv8DhP/MpCc7YlSRKzkg1EVmJKxTmVngLTBxngvG+HDqRKwqRPN2nqMoJ+se0dDoG7JhlDfN3ZX0IDoPT6BNuOLEPEjoh6sD/RTwDQ/XsjHaNb/NmxiFAdzvFBVQeSv+ScXFRmAvIgUVhRPBSBi5lbFuxPD1QXKO9J4M+3u7J5zavpo/1aGYcxI7YQ/TeNsEMOXD+nwbm8jjC4eWaZmpE87mTwK2H+7I9uXOhf1uTFgHmDeOI4ZrIDVhXTKRVOP2xyAY4TnHN1NNPe4F/2kC+RiwxHgFZzsX+RoPajffwdZsdvbfqrVznpj76/6R1Qukqj1/MeYcBHnMfGdvcW8tfMohDOof/GeCbZxTi5ECWRc/XsZ7e/kffHQNU+y79VivrlKKE4q2ItXvMstdZZxeGMZEXKEk0vgZHfOqYSTPwiktcQ3jtKy2ocqfvRexx2ANEUgE700mPBT7THA8rh3RKqwYXrZNyyH3KK0KS/YoUytC/vFIFyHXlVseZ5/QK03xzEgAMsFiCigCK9ItUclxeN1rYaxNOkc6JNi0b9V2KXxopWdTFx/NHlwVhviZRay4mJIWAHz3U5PXiV+VfCFY4quAiVA X-OriginatorOrg: outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: ed9c14ea-edc1-494a-9261-08dc24a3d773 X-MS-Exchange-CrossTenant-AuthSource: TYSPR06MB6433.apcprd06.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 03 Feb 2024 10:35:29.7782 (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: SI6PR06MB7605 Subject: [FFmpeg-devel] [PATCH] avcodec/vvcdec: fix seeking for open GOP 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: Nuo Mi Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" X-TUID: USCfMlPK5wXZ how to reproduce: wget https://media.xiph.org/video/derf/y4m/students_cif.y4m vvencapp --input students_cif.y4m --preset faster --output students.266 MP4Box -add students.266:fps=30000/1001:par=12:11 -new students.mp4 ffplay testudents.mp4 --- libavcodec/vvc/vvc_refs.c | 6 ++++++ libavcodec/vvc/vvc_refs.h | 1 + libavcodec/vvc/vvcdec.c | 6 ++++++ 3 files changed, 13 insertions(+) diff --git a/libavcodec/vvc/vvc_refs.c b/libavcodec/vvc/vvc_refs.c index bf503e429e..e1895d1cca 100644 --- a/libavcodec/vvc/vvc_refs.c +++ b/libavcodec/vvc/vvc_refs.c @@ -80,6 +80,12 @@ void ff_vvc_clear_refs(VVCFrameContext *fc) VVC_FRAME_FLAG_SHORT_REF | VVC_FRAME_FLAG_LONG_REF); } +void ff_vvc_flush_dpb(VVCFrameContext *fc) +{ + for (int i = 0; i < FF_ARRAY_ELEMS(fc->DPB); i++) + ff_vvc_unref_frame(fc, &fc->DPB[i], ~0); +} + static void free_progress(FFRefStructOpaque unused, void *obj) { FrameProgress *p = (FrameProgress *)obj; diff --git a/libavcodec/vvc/vvc_refs.h b/libavcodec/vvc/vvc_refs.h index cd3b5f5632..eba4422fb4 100644 --- a/libavcodec/vvc/vvc_refs.h +++ b/libavcodec/vvc/vvc_refs.h @@ -33,6 +33,7 @@ int ff_vvc_frame_rpl(VVCContext *s, VVCFrameContext *fc, SliceContext *sc); int ff_vvc_slice_rpl(VVCContext *s, VVCFrameContext *fc, SliceContext *sc); void ff_vvc_unref_frame(VVCFrameContext *fc, VVCFrame *frame, int flags); void ff_vvc_clear_refs(VVCFrameContext *fc); +void ff_vvc_flush_dpb(VVCFrameContext *fc); typedef enum VVCProgress { VVC_PROGRESS_MV, diff --git a/libavcodec/vvc/vvcdec.c b/libavcodec/vvc/vvcdec.c index 83ee472ce6..1a050600eb 100644 --- a/libavcodec/vvc/vvcdec.c +++ b/libavcodec/vvc/vvcdec.c @@ -922,9 +922,15 @@ static av_cold void vvc_decode_flush(AVCodecContext *avctx) { VVCContext *s = avctx->priv_data; int got_output = 0; + VVCFrameContext *last; while (s->nb_delayed) wait_delayed_frame(s, NULL, &got_output); + + last = get_frame_context(s, s->fcs, s->nb_frames - 1); + ff_vvc_flush_dpb(last); + + s->eos = 1; } static av_cold int vvc_decode_free(AVCodecContext *avctx)