From patchwork Tue May 7 06:00:49 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: David Rosca X-Patchwork-Id: 48607 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a05:6a21:6816:b0:1af:836d:81b3 with SMTP id wr22csp173928pzb; Mon, 6 May 2024 23:02:55 -0700 (PDT) X-Forwarded-Encrypted: i=2; AJvYcCUIh1exaGmUzxJ2EFVRNT5OAyhPouPlvhW/P7awbzWBw+5JqAUXyWP4zQeewHBKNYSkYJDAW8ROuVl8FZKJ0xl0EDNQFtc7L8sCDQ== X-Google-Smtp-Source: AGHT+IF20VSWs+3WpD5mXswXSu1DCwTlKp/v8bTsQTbC3Dp1gQgVka039i5M3bLI9RCM8BcMyv2x X-Received: by 2002:a50:cd57:0:b0:572:3b3c:754f with SMTP id d23-20020a50cd57000000b005723b3c754fmr1489500edj.4.1715061775492; Mon, 06 May 2024 23:02:55 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1715061775; cv=none; d=google.com; s=arc-20160816; b=Eg0u9t6ILwuc4gFSDly9FlEB08bOovwcnChP/UhoIJWznZj0bqgp7h3v9NuXse0SdT G+CO431U1G0OhAvnGe0tUdlEtdl1D9NhrkyV8EInwnTyq0m8oZN5/uXlzGU15aujldLD NiYCg61n7Z/DYt9PkR0nkfSy+aThZk/95IJsi/ny/XBZOjW67JdJRcarjrJhRhzLoAls 0I+Y2XvRvYOj4pJ9fgBvDz3mZnbPSvCmfMA9LHsu5x3j+VP1SV61QPwwjDdKsVQYvFm1 PjXQ8rlEOGnns0enWK/WVMUunlDW22TyUUW58tDBEb4wjTFm1fy+zS9QsHVzrG48r6AB 6Erg== 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:message-id:date:to:from :dkim-signature:delivered-to; bh=VruYgR3WKRDURY1rCegtj6OR/kf1NKaNfOb2EW5NjfY=; fh=mbb85L8FZ404unHdLI+iF4ZFmTMGr6nZHIcfO/oKEvw=; b=NuHTopTuRAS2KLMhLkmSMnk3FLf0o0ayp9J/I8QaRCieD+X7eJX4sMpAskT2zteE4O yHs6Wxt/9XPjVwcN3JhHkumJedxPtEj2LsS5c2HhPP8XsMlvRCCDPBG/Pl6LQV7uMskf prRj8Yb1EtFtMZ/nbUjImjkMHzL/Wn2X8wk66md8YLLEx+9CiSZ0BevG7gqi1oMdKI47 3e8WVnxANfxlHp4edmBuHh9qdPuxbAEFlwS5bZD3aHDXrCTObqnlLOCpqBOHu/o9unby PvR6oWd02PFetLOPBNun/4srP8yKd05M80mbqgEQnHaKF3Zj3asTDrwaDI50UWEP6fX8 S0yg==; dara=google.com ARC-Authentication-Results: i=1; mx.google.com; dkim=neutral (body hash did not verify) header.i=@gmail.com header.s=20230601 header.b=O+rOQPwS; 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 Return-Path: Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org. [79.124.17.100]) by mx.google.com with ESMTP id c12-20020aa7df0c000000b005727d5aa208si5658471edy.163.2024.05.06.23.02.55; Mon, 06 May 2024 23:02:55 -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=@gmail.com header.s=20230601 header.b=O+rOQPwS; 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 BB22768D572; Tue, 7 May 2024 09:02:51 +0300 (EEST) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-ej1-f53.google.com (mail-ej1-f53.google.com [209.85.218.53]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id D8DCB68D572 for ; Tue, 7 May 2024 09:02:44 +0300 (EEST) Received: by mail-ej1-f53.google.com with SMTP id a640c23a62f3a-a59cdd185b9so276034966b.1 for ; Mon, 06 May 2024 23:02:44 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1715061764; x=1715666564; darn=ffmpeg.org; h=content-transfer-encoding:mime-version:message-id:date:subject:cc :to:from:from:to:cc:subject:date:message-id:reply-to; bh=TQrK6wDbUm+zErfkzNi6YSoTwQcMChjh+oMr7loJo60=; b=O+rOQPwShqBBUNGRersmUzrpab1ps+de+vp3FmcG7HCwq1cmkory5s7rOEEUjxIJoe KsyLUlVO0bA49B0qs1pPxl5B4Z4uiRzZGZjoGiYgU0/xEfJA/Jt4v6bHVlCjtW+kmL2q G0mZjfETt4ckFhzepdk/do8/NmWp6HViVoihagAPgKfFHco0P5MLMlepujZ6RFbZWodk 0UscteVqRQ9VVM8YMHEkgrezlNHFbeWdEMi69GgpxZ00tpVmtOdTlm4OIjJs6mxkystP eUKBMjCWeNGJDGOs4hdrrt1UV6MWaAo7741I9uMffzzJNLvJUyYCffBXgPkKAzJRDtmm tipg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1715061764; x=1715666564; h=content-transfer-encoding:mime-version:message-id:date:subject:cc :to:from:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=TQrK6wDbUm+zErfkzNi6YSoTwQcMChjh+oMr7loJo60=; b=BE5QorPmhBYrkFQSBWVO2B9839wbdZSHUjSbP+gtNnCMurL1myiFI9dq3QFfUKsYKz Ss/8C4VlLliLGWwuPWxq+68wXmQEsGBGryIEJM82uenJHovu76woyNLvWA8+ndLU7x4p 1DAvvqH5vvFGL7md6iT9UuvsPM32eopEbwyWGzfDFu06gtrXJG+wdkRLdP7ZEnAlmOE7 9o/CKc6y/jOpfESBMuuM+h+GRwdGFZXe8u9GHb7KyEcyWErmIG+2Wu1GIuFaTv3q7rba 8+Gyaxe+5imLbqxs7/Uf5GEW9M5igIJBbZo/ZAu/tAsxjNlFOxnMUnSLBMi4SwSF+AIt 4kLQ== X-Gm-Message-State: AOJu0YyjfKKSYfVmmEkDv3vuLUjjhKwbUbIcMUPU8nauqNr8cMLfZnih GhpLP58Ycv5yfTWAJtkK9baOtuzCn9HnqUgxvMzJLP194CwkzuUEAwbrxA== X-Received: by 2002:a17:906:7c90:b0:a59:9db2:e2c9 with SMTP id w16-20020a1709067c9000b00a599db2e2c9mr1053510ejo.15.1715061763693; Mon, 06 May 2024 23:02:43 -0700 (PDT) Received: from mitsuki.. (ip-78-45-35-87.bb.vodafone.cz. [78.45.35.87]) by smtp.gmail.com with ESMTPSA id g3-20020a170906394300b00a599c1d46d5sm4529580eje.101.2024.05.06.23.02.43 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 06 May 2024 23:02:43 -0700 (PDT) From: David Rosca To: ffmpeg-devel@ffmpeg.org Date: Tue, 7 May 2024 08:00:49 +0200 Message-ID: <20240507060059.34246-2-nowrep@gmail.com> X-Mailer: git-send-email 2.45.0 MIME-Version: 1.0 Subject: [FFmpeg-devel] [PATCH] lavc/vaapi_h264: Fix merging fields in DPB with missing references 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: David Rosca Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" X-TUID: g/X7X1mDzKA6 If there are missing references, h264 decode does error concealment by copying previous refs which means there will be duplicated surfaces and this code would try to merge them instead of correctly appending to DPB. Make sure the fields were actually merged before early return. --- libavcodec/vaapi_h264.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/libavcodec/vaapi_h264.c b/libavcodec/vaapi_h264.c index b47531ce1c..c62a320e97 100644 --- a/libavcodec/vaapi_h264.c +++ b/libavcodec/vaapi_h264.c @@ -112,8 +112,9 @@ static int dpb_add(DPB *dpb, const H264Picture *pic) } else { va_pic->BottomFieldOrderCnt = temp_va_pic.BottomFieldOrderCnt; } + return 0; } - return 0; + break; } }