From patchwork Fri Oct 25 02:26:09 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: James Almer X-Patchwork-Id: 52486 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a59:be6b:0:b0:48e:c0f8:d0de with SMTP id bd11csp48578vqb; Thu, 24 Oct 2024 19:27:11 -0700 (PDT) X-Forwarded-Encrypted: i=2; AJvYcCWopTrXiJeiUrJHyYwH5MhsEmq0FIP0Uek3CXilZBCN3qbBwqWVExtGgvpBxiJxejGcgJkLveSfnZDLVaWXefS+@gmail.com X-Google-Smtp-Source: AGHT+IHBnLMXloPOwGWTO5BcR43nUE1VAqFVie9eTQ49f0GtkUTZ/LEC86UmR1p8pwrd6jrTw2wM X-Received: by 2002:a05:6402:27ce:b0:5c4:14fe:971e with SMTP id 4fb4d7f45d1cf-5cba249331fmr3459049a12.23.1729823231283; Thu, 24 Oct 2024 19:27:11 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1729823231; cv=none; d=google.com; s=arc-20240605; b=VR685pH0gN5Et/pqWiTfzFM4lWR3PK93iqPaXMVSbTDbvDSeuCrdR6edRi2qV67D8g 1dxoA6Ra9WdqHO2+vLnQdiNAjZx8/x4RBKH9bMQKA6LpBoSWJT+MqubadzYd9jFlQm+C 77RmL3xkd07W3g4JkdVOzlCn6RAz9TC2wvqovzHcw8DNAhqLeal11IMRfG4SdtxGmW3K xto2kUTt4MaRCj4MtXKx0teay/YB7v3nSrGugd/E9U4WLovsBT5rdY5oBFf0P0q1NfT6 vgTWqJGMA8ZxhvIh5XXXPSXi401N3GbeDCbSSpZZ6X36bmEml7U6kEoWkeigfkiCctGl F5fw== 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:message-id:date:to:from :dkim-signature:delivered-to; bh=O4zIStCgdQVic6CcqzfXVrvRvenoXPKFmB7lRd2+AnA=; fh=YOA8vD9MJZuwZ71F/05pj6KdCjf6jQRmzLS+CATXUQk=; b=aBNPjkqPmM0+tGYbNdaiGepW9ZjCcnRqAg9dOtN1ABLhaRtba4LZeZJRMVz38xYiXh jbC5adCZuWtH7z8uaPhZlucIGpyTqC6zDmQPJKk3zhDFxRJoDafuyvTD8+1N4A+6EnG1 rBxPrDYhi8HMloozqTk1zMxLN4cjoQW07S7cd+fGKhE8xKK3+3kcuwq+H01KCV/vimJ9 tF1mUpWoVBHX510ROaYFL35xTTcl9fZGeWImmgp666nsidEY3Z8aFNfYk8SZ1t+Twr7e M6s1pQ4GItbJfU2vujfCSxKqPhwhiPqrEI8fpS+Z+x8hc1usxH6Ix2Io0K6jpOOvyK/a +22A==; 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=IM9FDn78; 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 4fb4d7f45d1cf-5cbb6308343si173773a12.212.2024.10.24.19.27.10; Thu, 24 Oct 2024 19:27:11 -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=IM9FDn78; 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 3635B68DD14; Fri, 25 Oct 2024 05:27:08 +0300 (EEST) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-pg1-f177.google.com (mail-pg1-f177.google.com [209.85.215.177]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 3D1EA68D79B for ; Fri, 25 Oct 2024 05:27:01 +0300 (EEST) Received: by mail-pg1-f177.google.com with SMTP id 41be03b00d2f7-7ea8ecacf16so1005204a12.1 for ; Thu, 24 Oct 2024 19:27:01 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1729823218; x=1730428018; darn=ffmpeg.org; h=content-transfer-encoding:mime-version:message-id:date:subject:to :from:from:to:cc:subject:date:message-id:reply-to; bh=8lYeIuqEpS6Kp753QsNpckWgN2ozrQFAw/ZcGyiTcEE=; b=IM9FDn78Tadl6104qclUr2cvxY0cURFsjG7DWFaMPUj/Hi4X7xn5pmTMwkvyGeCRM+ 5jbS6R1Lve+pEBWNvjDURdgMZDEv+7bCyeLyIiGXps0wBsC4E9BbdZcULFnGMPBN8QRp O00m9TCKySY5xEAYtoXF9McWU9S8O9gnWNf0gzUn1A31umEUsLllc0uWm7jMEvnNDQ3Q JZ0tWF4EAtiXxqJj6OwlYZ58WEMbR4pdc+0Tb+XprUOu7HWS7w4XGEwYo6TLFQE0OsyO bbMdgoz7fDj084CBUsgykHlmPP9Rod9veST5PF1xjAPMABpDYKAchvE1NiaIwZFD/ROP xlJQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1729823218; x=1730428018; h=content-transfer-encoding:mime-version:message-id:date:subject:to :from:x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=8lYeIuqEpS6Kp753QsNpckWgN2ozrQFAw/ZcGyiTcEE=; b=V3m+JYWe1SoMYO0xibJgXeykzMWsXsZTXGl+SZgW2ymoR9WCic93uNhRJP1rD/FFAd h474alfzU7djbbxveXTvgKx0rGHigqdWyuBi/sctBvv3hH3SvWwONYLKyj+T/Q1jU72u qn4yvna58QpeXifMjo7FYCdXtCcLzO1FNnZ+11jUSD9PilV4+eFzq/XBrB7QrAAZpn7Z /LxCa3dIIPFGXx760HjjVSQT7l0wPNWWAF01NZ4vsYO1XbXKrp2wpqEhf5itWHafqqmq 2yYXOEqUrL/SNmf1PViWRt6HXzb3cYEDMG0YOql9iRybTWH5VAvx04k06jnQ4GPB+G8l PMRw== X-Gm-Message-State: AOJu0Yz1PX7zpMfMgow1qb2OfagVtMBa5Eogwo/O1QmZPCnKZNA1OuPh 3QHVHrSpcvE388vAnA4HC3tN0OvvrCdTgIb63Fdl8eS6poDro4HvVLYE0g== X-Received: by 2002:a05:6a20:d528:b0:1d9:28ae:5e72 with SMTP id adf61e73a8af0-1d978b97cabmr8440066637.36.1729823218239; Thu, 24 Oct 2024 19:26:58 -0700 (PDT) Received: from localhost.localdomain ([181.92.233.116]) by smtp.gmail.com with ESMTPSA id 98e67ed59e1d1-2e77e48ed34sm2485491a91.9.2024.10.24.19.26.56 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 24 Oct 2024 19:26:57 -0700 (PDT) From: James Almer To: ffmpeg-devel@ffmpeg.org Date: Thu, 24 Oct 2024 23:26:09 -0300 Message-ID: <20241025022613.3921-1-jamrial@gmail.com> X-Mailer: git-send-email 2.47.0 MIME-Version: 1.0 Subject: [FFmpeg-devel] [PATCH 1/5] Partially revert "avcodec/h2645: allocate film grain metadata dynamically" 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: l7DhBvO9DAYS AVFilmGrainAFGS1Params, the offending struct, is using sizeof(AVFilmGrainParams) when it should not. This change also forgot to make the necessary changes to the frame threading sync code. Both of these will be fixed by the following commit. Signed-off-by: James Almer --- libavcodec/h2645_sei.c | 17 +++++------------ libavcodec/h2645_sei.h | 2 +- libavcodec/hevc/hevcdec.c | 4 ++-- 3 files changed, 8 insertions(+), 15 deletions(-) diff --git a/libavcodec/h2645_sei.c b/libavcodec/h2645_sei.c index 33551f5406..a481dbca2c 100644 --- a/libavcodec/h2645_sei.c +++ b/libavcodec/h2645_sei.c @@ -245,12 +245,7 @@ static int decode_registered_user_data(H2645SEI *h, GetByteContext *gb, provider_oriented_code = bytestream2_get_byteu(gb); if (provider_oriented_code == aom_grain_provider_oriented_code) { - if (!h->aom_film_grain) { - h->aom_film_grain = av_mallocz(sizeof(*h->aom_film_grain)); - if (!h->aom_film_grain) - return AVERROR(ENOMEM); - } - return ff_aom_parse_film_grain_sets(h->aom_film_grain, + return ff_aom_parse_film_grain_sets(&h->aom_film_grain, gb->buffer, bytestream2_get_bytes_left(gb)); } @@ -894,11 +889,9 @@ FF_ENABLE_DEPRECATION_WARNINGS } #if CONFIG_HEVC_SEI - if (sei->aom_film_grain) { - ret = ff_aom_attach_film_grain_sets(sei->aom_film_grain, frame); - if (ret < 0) - return ret; - } + ret = ff_aom_attach_film_grain_sets(&sei->aom_film_grain, frame); + if (ret < 0) + return ret; #endif return 0; @@ -925,7 +918,7 @@ void ff_h2645_sei_reset(H2645SEI *s) s->ambient_viewing_environment.present = 0; s->mastering_display.present = 0; s->content_light.present = 0; + s->aom_film_grain.enable = 0; av_freep(&s->film_grain_characteristics); - av_freep(&s->aom_film_grain); } diff --git a/libavcodec/h2645_sei.h b/libavcodec/h2645_sei.h index 8bcdc2bc5f..f001427e16 100644 --- a/libavcodec/h2645_sei.h +++ b/libavcodec/h2645_sei.h @@ -138,10 +138,10 @@ typedef struct H2645SEI { H2645SEIAmbientViewingEnvironment ambient_viewing_environment; H2645SEIMasteringDisplay mastering_display; H2645SEIContentLight content_light; + AVFilmGrainAFGS1Params aom_film_grain; // Dynamic allocations due to large size. H2645SEIFilmGrainCharacteristics* film_grain_characteristics; - AVFilmGrainAFGS1Params* aom_film_grain; } H2645SEI; enum { diff --git a/libavcodec/hevc/hevcdec.c b/libavcodec/hevc/hevcdec.c index 1ea8df0fa0..900895598f 100644 --- a/libavcodec/hevc/hevcdec.c +++ b/libavcodec/hevc/hevcdec.c @@ -413,7 +413,7 @@ static int export_stream_params_from_sei(HEVCContext *s) } if ((s->sei.common.film_grain_characteristics && s->sei.common.film_grain_characteristics->present) || - (s->sei.common.aom_film_grain && s->sei.common.aom_film_grain->enable)) + s->sei.common.aom_film_grain.enable) avctx->properties |= FF_CODEC_PROPERTY_FILM_GRAIN; return 0; @@ -3268,7 +3268,7 @@ static int hevc_frame_start(HEVCContext *s, HEVCLayerContext *l, s->cur_frame->f->flags &= ~AV_FRAME_FLAG_KEY; s->cur_frame->needs_fg = ((s->sei.common.film_grain_characteristics && s->sei.common.film_grain_characteristics->present) || - (s->sei.common.aom_film_grain && s->sei.common.aom_film_grain->enable)) && + s->sei.common.aom_film_grain.enable) && !(s->avctx->export_side_data & AV_CODEC_EXPORT_DATA_FILM_GRAIN) && !s->avctx->hwaccel;