From patchwork Fri Oct 25 02:26:12 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: James Almer X-Patchwork-Id: 52488 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a59:be6b:0:b0:48e:c0f8:d0de with SMTP id bd11csp59829vqb; Thu, 24 Oct 2024 20:04:06 -0700 (PDT) X-Forwarded-Encrypted: i=2; AJvYcCXyeRuvMWETvIkNG9OBgAZ/J2NyUdQ1UEExRRG/XM8ZM9TsWIdEZvpQ/cdvH5GktQqRxHcUzSRmqUVIJ1DKkvSP@gmail.com X-Google-Smtp-Source: AGHT+IFj29W3Nwx0hVeOo7rxj/nYeSQg4DORFNzCy5zlHaEr+4LU8H9tLudy8Akz14bGCHrU+VI8 X-Received: by 2002:a05:651c:b0f:b0:2fa:ce0d:ec34 with SMTP id 38308e7fff4ca-2fca83004c1mr16955441fa.2.1729825445816; Thu, 24 Oct 2024 20:04:05 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1729825445; cv=none; d=google.com; s=arc-20240605; b=TrRb8kyS+eO/FVHW58H+9Tx8JBZg8VDORS/zaVZngwTgP1LlAb9A4ZF6rROk9/8jju LvhNNQuXzzG80sv0unVz24IhAW8QFIG0eIEJEQzvLSWh00tw7LDD31v+/giRGnA+beHp l/ZdvTw/0h9kFxK/1ra5sBozCmfFWomCl0DtohfAxDkRSBOrByVoDibLEGrGMS8MFBO/ XMj8UxvmCD5gkOn9A2LQJroMTbDnc0lV7w1FQ7gq8AzQ1PEGcj84OtJmpkNxWKyynivP Y5ys0v/a9nHfmSTlz2yJ6U6vm14/1F6jjuBkgRufLrkVTVEFiLUE4/0ayRplmPQ2qx5T kLYg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20240605; h=sender:errors-to:content-transfer-encoding:reply-to:list-subscribe :list-help:list-post:list-archive:list-unsubscribe:list-id :precedence:subject:mime-version:references:in-reply-to:message-id :date:to:from:dkim-signature:delivered-to; bh=1onWdahaT+h58dYHE635J6cLuFNAlR6ge9ZRHc1WbQU=; fh=YOA8vD9MJZuwZ71F/05pj6KdCjf6jQRmzLS+CATXUQk=; b=YakgB/lK+EBHzxjyIkRwHKWS//iIfKcxw8vBbhzmdq2UWyF+XWv3J1aWzpKjW6e6rM /7P9D3exinSDugY7BhWs3y9rXnN3c1PpJJPR1R3rjhXqPY4sFRtk/7V8AYSfEo6XTHnZ mLV8VAu0w6dyISwIntq1H8PlGC6qPyxO3tFkX1ultq/3IEf7NchYpcmBJecsTmfbSJmX vYeHoN1ysYymNasCVvxr857Vth2mE+W/rOE8IZ7aElfzjp9Ve9fSp3PFebDLz7iAZYXJ wV1U8jCVChO8OhJ6TZjonbcAunESRk6i2Kcmq+GRt9nZri3VeB5n7y0NZZu+jHwDEXuZ JqWw==; 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="jWTcjZ/h"; 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; dara=fail header.i=@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 38308e7fff4ca-2fcb45e1d5esi606651fa.329.2024.10.24.20.04.05; Thu, 24 Oct 2024 20:04:05 -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="jWTcjZ/h"; 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; dara=fail header.i=@gmail.com Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 5317568DD9B; Fri, 25 Oct 2024 05:27:13 +0300 (EEST) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-pj1-f51.google.com (mail-pj1-f51.google.com [209.85.216.51]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 81A1D68D79B for ; Fri, 25 Oct 2024 05:27:05 +0300 (EEST) Received: by mail-pj1-f51.google.com with SMTP id 98e67ed59e1d1-2e3d523a24dso1209225a91.0 for ; Thu, 24 Oct 2024 19:27:05 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1729823223; x=1730428023; darn=ffmpeg.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:from:to:cc:subject:date:message-id :reply-to; bh=kiGdapRFhePtGKOsy8Y9G48p+oghNEAqfEEmaWwsCF0=; b=jWTcjZ/hSwZPTUOrsU/j9IkSBPuYtvmdUesQHDC1SwFRNpsckjwmn9Qpsuyzk4peGk y8yN+OreNc0BZSjX8UNcwny5kGVIsgfoeoEqHrfIusKXduzqbbyGgo/brz4JEbh2Wxxf 6seM4H9gOOKp5Zq1bAHcIUOdNRhuL0+NmKp1LibHLfdiHvgEU8F7aS+WFr+jhsBLxWcf HRulyqrRm3z8GpPMcH00WaythxI/gIn2KBIxnigWIsZFuJV+mShE9thz5GhOTqYk2SUw bSh/Zh4DS0+B12BFtNfD6BIM/uELZ57hhYchqNTSl6GukqwjSVzy9TTl1EMm8Ki/d3SQ ek2g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1729823223; x=1730428023; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=kiGdapRFhePtGKOsy8Y9G48p+oghNEAqfEEmaWwsCF0=; b=t5Bx6/0Z5JbLoV+kGpEXi16z7bf6cY9h9dXjK9vqe6UNTkCwcSsixYWgkDDjBfc5Hn n+rdEJuwNYFvPH/Z7ubMBp9F85kD4DizV8OOEiXlBgohs0HPuPa/7exiiREl6AeVQBwl 2UHNf9tnwui0Y+BNARdFSXUmPRMmKMUax5r9jTB6pknj0hXUu2RNoIn2y7w2TNTe6Id6 Hhv9mxS/3Og6COrVGoYPITXtEGMHE3mRQTHaZGQb2/stngzfKV+DebNypwuMTC7MF+eE oIhvW2leCcd4pcRLgGRHKTkuc9plk8VEDdEDn+A3mC/iLVc4X8P6naoA2FKR+e45yr+k Qjsg== X-Gm-Message-State: AOJu0YzzFSI01otRp8ldH/41zEC/uG//IMsB/6Ye0kqhi3olzdxOfqM8 zxeN8p6+yAYklIHEhh1mx44oFbevS6XurSykfWWCfwPl0/y7OxrDuavNKQ== X-Received: by 2002:a17:90b:3015:b0:2e2:e31a:220e with SMTP id 98e67ed59e1d1-2e77f45cbe1mr4116482a91.8.1729823222963; Thu, 24 Oct 2024 19:27:02 -0700 (PDT) Received: from localhost.localdomain ([181.92.233.116]) by smtp.gmail.com with ESMTPSA id 98e67ed59e1d1-2e77e48ed34sm2485491a91.9.2024.10.24.19.27.01 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 24 Oct 2024 19:27:02 -0700 (PDT) From: James Almer To: ffmpeg-devel@ffmpeg.org Date: Thu, 24 Oct 2024 23:26:12 -0300 Message-ID: <20241025022613.3921-4-jamrial@gmail.com> X-Mailer: git-send-email 2.47.0 In-Reply-To: <20241025022613.3921-1-jamrial@gmail.com> References: <20241025022613.3921-1-jamrial@gmail.com> MIME-Version: 1.0 Subject: [FFmpeg-devel] [PATCH 4/5] avcodec/h264dec: use the RefStruct API for h264db 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 Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" X-TUID: CqOpppy6aX3b And ensure the buffer is synced between threads. Signed-off-by: James Almer --- libavcodec/h264_picture.c | 2 +- libavcodec/h264_slice.c | 2 ++ libavcodec/h264dec.c | 2 +- 3 files changed, 4 insertions(+), 2 deletions(-) diff --git a/libavcodec/h264_picture.c b/libavcodec/h264_picture.c index 371a794ec2..d07c3a0af8 100644 --- a/libavcodec/h264_picture.c +++ b/libavcodec/h264_picture.c @@ -215,7 +215,7 @@ int ff_h264_field_end(H264Context *h, H264SliceContext *sl, int in_setup) err = AVERROR_INVALIDDATA; if (sd) { // a decoding error may have happened before the side data could be allocated if (!h->h274db) { - h->h274db = av_mallocz(sizeof(*h->h274db)); + h->h274db = ff_refstruct_allocz(sizeof(*h->h274db)); if (!h->h274db) return AVERROR(ENOMEM); } diff --git a/libavcodec/h264_slice.c b/libavcodec/h264_slice.c index 84595b1a8b..b88545a075 100644 --- a/libavcodec/h264_slice.c +++ b/libavcodec/h264_slice.c @@ -445,6 +445,8 @@ int ff_h264_update_thread_context(AVCodecContext *dst, h->sei.common.mastering_display = h1->sei.common.mastering_display; h->sei.common.content_light = h1->sei.common.content_light; + ff_refstruct_replace(&h->h274db, h1->h274db); + if (!h->cur_pic_ptr) return 0; diff --git a/libavcodec/h264dec.c b/libavcodec/h264dec.c index af0913ca2c..805732057a 100644 --- a/libavcodec/h264dec.c +++ b/libavcodec/h264dec.c @@ -156,7 +156,7 @@ void ff_h264_free_tables(H264Context *h) av_freep(&h->mb2b_xy); av_freep(&h->mb2br_xy); - av_freep(&h->h274db); + ff_refstruct_unref(&h->h274db); ff_refstruct_pool_uninit(&h->qscale_table_pool); ff_refstruct_pool_uninit(&h->mb_type_pool);