From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: <ffmpeg-devel-bounces@ffmpeg.org> Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org [79.124.17.100]) by master.gitmailbox.com (Postfix) with ESMTPS id 205C14E524 for <ffmpegdev@gitmailbox.com>; Sun, 4 May 2025 01:46:37 +0000 (UTC) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id D07EC687D92; Sun, 4 May 2025 04:46:33 +0300 (EEST) Received: from mail-pf1-f179.google.com (mail-pf1-f179.google.com [209.85.210.179]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id D5763687D92 for <ffmpeg-devel@ffmpeg.org>; Sun, 4 May 2025 04:46:26 +0300 (EEST) Received: by mail-pf1-f179.google.com with SMTP id d2e1a72fcca58-7376dd56eccso3790542b3a.0 for <ffmpeg-devel@ffmpeg.org>; Sat, 03 May 2025 18:46:26 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1746323184; x=1746927984; 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=iTQNQkYWD2M7rQpildDqNVzDqZgj48VhLyTZ8QNFMdA=; b=FkU253t88z75lKOJh4CxlIjD/Mq/nHcvl/Flnqx+GaoOYyf+2iSyab7gco/0P95yPb EAuHV1n23f0Km6bKWqW8LWX1cdX6E8uH2466/RfccHAlrveadVPJxfrknNURFIcbpT/3 lUNATF5lWK8l9YyNQavz/QKMPMuQn8ZuAuEDQgjH5hDk5l8LryUYMZrOegjRCU5G4pb/ N7j4zuOiqr77SSJnm64lHphri8vrbMmaYL1b6R0+36IcOhw7hK40GVbv7nLum5jUM1Oi vXEID5hxvQYCO0UfwSzCAq9iNJFkWdnwv6U54wCgbzDCqSELcqwOU8S1YxFj4Se6Srv7 u04Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1746323184; x=1746927984; 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=iTQNQkYWD2M7rQpildDqNVzDqZgj48VhLyTZ8QNFMdA=; b=CITNvIG2O/DHnz2iDgoSREyU+oBwh7xudyVNhk+fgjraUlXf/k8+gvdm7Yh8CHZ6Ga 5m+EyRxLkXMhMwIms44hJY7BU4ExAHpmNyw2b1EjEdiw+JFFH7YoIOKgyK9u694IqYix bHhlyXi7qieJeUMjHi+cafvm0W3h6Zoy70oVGDWYPr3rxTbOubJIwZo4VUBbH1KyeWwB xz3cjn29p91YjFAZIPs8bRihZxPDNqzPUSpnxv+KPi30ioeEBtc5WUO8+WKVBm6pbiYe Hq6LFogIp1paB/sTAwXNjpUI+iw9osB8QHGpZ2HjGgb1JIysesyTS0/ilihEgvecEJzX qvLw== X-Gm-Message-State: AOJu0YxhFW7CQisG6NBm1nzbmNYUrRbnvkNdwtBd59IbrUAlcipdrpam HQC15UPk31vXjV6uBH6XrcxzerMDYWEl9K2bCGtHLGM4FJiTW78jXWgbJA== X-Gm-Gg: ASbGncvHg6DK/DyEVWoktb3TWCRq0N+TJo5yVOWk5M/arwA0fcpvTVJgsR8aTyFHQ5i 4j5n3ClThlKOxSj5vBPRowmuLqJPRVgafbQE1m2XnyE/aHbgalUpljT3wily16SFQOTiua0Wb2z qikIE+HHTZgPPXA63cWQ1TmjFcigAxTdYnz/W1YavGQBzwP/QGGexTyQzoCkTDn6if6HfsOKmeC +VjiwYXcGYGLNBnHWkibYHLEclheNRqB4kGKnkdhSLw1AA/mY8CnRl8JcFxD/e63OjtKuQXHVs/ f8JYNkziouc2a76U7BmSOdpOvb3bvY5UYjiRk3NXiUQDMdfhaKOWJlP+bok= X-Google-Smtp-Source: AGHT+IH2bA/5FPQjHO0XXodwYl+PH81EJ2nFEPPBmeGf/V5SdtELg+rdrXTaJqMPUe4pSeHBcrynJQ== X-Received: by 2002:a05:6a00:2987:b0:740:5927:bb8b with SMTP id d2e1a72fcca58-7406ed59ab5mr3786482b3a.0.1746323184139; Sat, 03 May 2025 18:46:24 -0700 (PDT) Received: from localhost.localdomain ([2800:2121:b000:82e:e13f:37f4:650:845c]) by smtp.gmail.com with ESMTPSA id d2e1a72fcca58-74059020dc8sm4025777b3a.86.2025.05.03.18.46.22 for <ffmpeg-devel@ffmpeg.org> (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sat, 03 May 2025 18:46:23 -0700 (PDT) From: James Almer <jamrial@gmail.com> To: ffmpeg-devel@ffmpeg.org Date: Sat, 3 May 2025 22:46:06 -0300 Message-ID: <20250504014606.3768-1-jamrial@gmail.com> X-Mailer: git-send-email 2.49.0 MIME-Version: 1.0 Subject: [FFmpeg-devel] [PATCH] avcodec/apv_decode: build the lut table only once X-BeenThere: ffmpeg-devel@ffmpeg.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: FFmpeg development discussions and patches <ffmpeg-devel.ffmpeg.org> List-Unsubscribe: <https://ffmpeg.org/mailman/options/ffmpeg-devel>, <mailto:ffmpeg-devel-request@ffmpeg.org?subject=unsubscribe> List-Archive: <https://ffmpeg.org/pipermail/ffmpeg-devel> List-Post: <mailto:ffmpeg-devel@ffmpeg.org> List-Help: <mailto:ffmpeg-devel-request@ffmpeg.org?subject=help> List-Subscribe: <https://ffmpeg.org/mailman/listinfo/ffmpeg-devel>, <mailto:ffmpeg-devel-request@ffmpeg.org?subject=subscribe> Reply-To: FFmpeg development discussions and patches <ffmpeg-devel@ffmpeg.org> Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" <ffmpeg-devel-bounces@ffmpeg.org> Archived-At: <https://master.gitmailbox.com/ffmpegdev/20250504014606.3768-1-jamrial@gmail.com/> List-Archive: <https://master.gitmailbox.com/ffmpegdev/> List-Post: <mailto:ffmpegdev@gitmailbox.com> No reason to build the exact same table once per decoding thread. Signed-off-by: James Almer <jamrial@gmail.com> --- libavcodec/apv_decode.c | 18 +++++++++++++----- 1 file changed, 13 insertions(+), 5 deletions(-) diff --git a/libavcodec/apv_decode.c b/libavcodec/apv_decode.c index b1e1db7d64..b1c59fc873 100644 --- a/libavcodec/apv_decode.c +++ b/libavcodec/apv_decode.c @@ -19,6 +19,7 @@ #include "libavutil/mastering_display_metadata.h" #include "libavutil/mem_internal.h" #include "libavutil/pixdesc.h" +#include "libavutil/thread.h" #include "apv.h" #include "apv_decode.h" @@ -39,8 +40,6 @@ typedef struct APVDecodeContext { CodedBitstreamFragment au; APVDerivedTileInfo tile_info; - APVVLCLUT decode_lut; - AVFrame *output_frame; uint8_t warned_additional_frames; @@ -55,6 +54,8 @@ static const enum AVPixelFormat apv_format_table[5][5] = { { AV_PIX_FMT_YUVA444P, AV_PIX_FMT_YUVA444P10, AV_PIX_FMT_YUVA444P12, AV_PIX_FMT_GRAY14, AV_PIX_FMT_YUVA444P16 }, }; +static APVVLCLUT decode_lut; + static int apv_decode_check_format(AVCodecContext *avctx, const APVRawFrameHeader *header) { @@ -101,11 +102,20 @@ static const CodedBitstreamUnitType apv_decompose_unit_types[] = { APV_PBU_METADATA, }; +static AVOnce apv_entropy_once = AV_ONCE_INIT; + +static av_cold void apv_entropy_build_decode_lut(void) +{ + ff_apv_entropy_build_decode_lut(&decode_lut); +} + static av_cold int apv_decode_init(AVCodecContext *avctx) { APVDecodeContext *apv = avctx->priv_data; int err; + ff_thread_once(&apv_entropy_once, apv_entropy_build_decode_lut); + err = ff_cbs_init(&apv->cbc, AV_CODEC_ID_APV, avctx); if (err < 0) return err; @@ -117,8 +127,6 @@ static av_cold int apv_decode_init(AVCodecContext *avctx) // Extradata could be set here, but is ignored by the decoder. - ff_apv_entropy_build_decode_lut(&apv->decode_lut); - ff_apv_dsp_init(&apv->dsp); return 0; @@ -201,7 +209,7 @@ static int apv_decode_tile_component(AVCodecContext *avctx, void *data, APVEntropyState entropy_state = { .log_ctx = avctx, - .decode_lut = &apv->decode_lut, + .decode_lut = &decode_lut, .prev_dc = 0, .prev_dc_diff = 20, .prev_1st_ac_level = 0, -- 2.49.0 _______________________________________________ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org https://ffmpeg.org/mailman/listinfo/ffmpeg-devel To unsubscribe, visit link above, or email ffmpeg-devel-request@ffmpeg.org with subject "unsubscribe".