From patchwork Thu Oct 8 19:18:39 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Andreas Rheinhardt X-Patchwork-Id: 22772 Delivered-To: andriy.gelman@gmail.com Received: by 2002:a25:c650:0:0:0:0:0 with SMTP id k77csp1508403ybf; Thu, 8 Oct 2020 12:19:07 -0700 (PDT) X-Google-Smtp-Source: ABdhPJwlwAQRKFDEqclahHrN3sUaXPA2cvzpcb06cJWK4xxv7pjseh1/QjoHvR1e0794Mu3QbQwI X-Received: by 2002:a7b:c3d0:: with SMTP id t16mr2592120wmj.102.1602184746932; Thu, 08 Oct 2020 12:19:06 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1602184746; cv=none; d=google.com; s=arc-20160816; b=AUd2/LEpC7OXIsYO2HkhGpGEMj1l+6Ol1ho4O98VPFsNHSP29ewGwXaiQ2fiwHt9Wb E1O8cdVx02BOXdwDeilCuuo7WaUFPp4TW6qLrh6q5okjExU83baRw/z4uwxXByUNmNxB sBR9/KKCmLwtUBcspDWieCPZOtLNWKebHpg2PhliOZFrMdVYA8NDLD+Lz5CPAWosYq8t YC0qdV3Su13PuCE9LD09RSPCWn0VBWQL3nN8vsKwhYZQqMipbZFHNpYDiJw1d8Y8oadR TEAESsiuvsh7CJvSRkdhGYnbXbJbd141uM2rtouGvMu5HfBqLcLSX9GUfoAYHfwrydCv P9Fg== 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=MuhgI7EFMDnYiEMPIdBXtI3DCr/RMe7lQs5ytJ3i/eU=; b=HnBGRJKj/jnmexXvOq91hw0MEB+W63NnQ2/5UR0C3Yi3PhBF7EXOGP5ogbbI7J6B+0 3g+m700YaTgOKXubbewxq2gZGnvEYtLrIGEwnyvOuWYWoybQYSL7Ci8vPHHmF8qdQlq3 qJPuaZmmWsZm+DCFXHi3QrNhHSRjh55KkJ7N/sccTy1bYsU6XEfBzvbUNKicTjM2mem4 Vl2HVJZwp6bcDht9TTHmKK+z3M6A1psb3PkNKa4x55IJQNhcBVwbYU3XWMCFB3Ums0wa 76H1hUjcElAN7hnZ0lDPAR+0aTYkbGV9TySDmUKIntARfAS6m1u9IiBHBIu2fYP64Sla NjkQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=neutral (body hash did not verify) header.i=@gmail.com header.s=20161025 header.b=d4Bkz2DY; 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 o17si5613976wrv.515.2020.10.08.12.19.06; Thu, 08 Oct 2020 12:19:06 -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=20161025 header.b=d4Bkz2DY; 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 7205568B2D1; Thu, 8 Oct 2020 22:19:02 +0300 (EEST) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-wm1-f68.google.com (mail-wm1-f68.google.com [209.85.128.68]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 95ED968B768 for ; Thu, 8 Oct 2020 22:18:55 +0300 (EEST) Received: by mail-wm1-f68.google.com with SMTP id q5so7630793wmq.0 for ; Thu, 08 Oct 2020 12:18:55 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:reply-to:mime-version :content-transfer-encoding; bh=gtIKCgs0NyKWC7fUKMe/PWUdZGNhQ2qfJ7VtUkyfW1s=; b=d4Bkz2DYAAf3dwEGwfIOzhLvLbMLgPRa9CCjROkEDLVJF3IkLm0AqdXoQbrwgGPFKN svgtrShLYBOGA+CCL/ryOwsCAGP7bJjcAZqbyTkHjjE5c1KReSGq1Im0ZpqEutZs+HTG 27NPrUCSBXt4fIJT8Utezd84fZqGXnFKFz6GWAU8/Y9jq29Htka0nir4K9e7FL0kDFx2 8JSpg2avCKT8RIajkwTCfWrNTTnpMTQKXiUZveLFihbPrFpaeU7Gj24p52hXs7rNSqoO ZWzfbey+ratjf5mtTkyshWag4PRkAvVbDynzcAhRRRmJ8NMFgC0TAHJTIcANlwOWIYCd Ca6g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:reply-to :mime-version:content-transfer-encoding; bh=gtIKCgs0NyKWC7fUKMe/PWUdZGNhQ2qfJ7VtUkyfW1s=; b=arqv12qRBu0uVVUMSi1cWC+Y/OTcGpIyeedKuT24nzF9NaezgpER+VZ9rNHIg92JJB gcr4GqVO8z0WahJqHq1iFnrx2qijLXdPr3d+A9OjldEIQpEj35EONoiXMCYpTSYpsRH0 O2jjx9oggkMVrSfw83jFo+jW3C9TowofAyY1n16c/6NTu+ze9GrlBvzNXiywDxoJ1cVr ZGm3HrQfC9EPfShr/Lr2u0DSFDL1GdW/GBdMOwSIC3XRfFVbFDLpMlqa2lyqYbktPw9r 74+qytUANh4glkcMAV3yk48Exyu2AlRgjDg/0cm86uBTlQBwLm4IAofYqGlpOdWOXooo g7Zg== X-Gm-Message-State: AOAM530qlRcNAk9zAO60HGu5VZjAZT/Vh4RZXd4Kihxktcifsk0eo5TX x6O22w+519FB6wF08175mvlezi+B67c= X-Received: by 2002:a1c:6643:: with SMTP id a64mr10713086wmc.142.1602184734748; Thu, 08 Oct 2020 12:18:54 -0700 (PDT) Received: from sblaptop.fritz.box (ipbcc1aa4b.dynamic.kabel-deutschland.de. [188.193.170.75]) by smtp.gmail.com with ESMTPSA id u17sm9280316wri.45.2020.10.08.12.18.53 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 08 Oct 2020 12:18:54 -0700 (PDT) From: Andreas Rheinhardt To: ffmpeg-devel@ffmpeg.org Date: Thu, 8 Oct 2020 21:18:39 +0200 Message-Id: <20201008191842.385813-1-andreas.rheinhardt@gmail.com> X-Mailer: git-send-email 2.25.1 MIME-Version: 1.0 Subject: [FFmpeg-devel] [PATCH 1/4] avcodec/mjpegdec: Remove use_static from build_vlc() X-BeenThere: ffmpeg-devel@ffmpeg.org X-Mailman-Version: 2.1.20 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: Andreas Rheinhardt Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" X-TUID: H2VpT0eVUxsT Content-Length: 3380 It is always zero; it referred to the INIT_VLC_USE_STATIC flag which has been removed in 595324e143b57a52e2329eb47b84395c70f93087. Signed-off-by: Andreas Rheinhardt --- libavcodec/mjpegdec.c | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/libavcodec/mjpegdec.c b/libavcodec/mjpegdec.c index 0a5ef110d1..a56afc0fb7 100644 --- a/libavcodec/mjpegdec.c +++ b/libavcodec/mjpegdec.c @@ -67,7 +67,7 @@ static void build_huffman_codes(uint8_t *huff_size, uint16_t *huff_code, static int build_vlc(VLC *vlc, const uint8_t *bits_table, const uint8_t *val_table, int nb_codes, - int use_static, int is_ac) + int is_ac) { uint8_t huff_size[256] = { 0 }; uint16_t huff_code[256]; @@ -86,7 +86,7 @@ static int build_vlc(VLC *vlc, const uint8_t *bits_table, } return ff_init_vlc_sparse(vlc, 9, nb_codes, huff_size, 1, 1, - huff_code, 2, 2, huff_sym, 2, 2, use_static); + huff_code, 2, 2, huff_sym, 2, 2, 0); } static int init_default_huffman_tables(MJpegDecodeContext *s) @@ -116,7 +116,7 @@ static int init_default_huffman_tables(MJpegDecodeContext *s) for (i = 0; i < FF_ARRAY_ELEMS(ht); i++) { ret = build_vlc(&s->vlcs[ht[i].class][ht[i].index], ht[i].bits, ht[i].values, ht[i].length, - 0, ht[i].class == 1); + ht[i].class == 1); if (ret < 0) return ret; @@ -296,13 +296,13 @@ int ff_mjpeg_decode_dht(MJpegDecodeContext *s) av_log(s->avctx, AV_LOG_DEBUG, "class=%d index=%d nb_codes=%d\n", class, index, n); if ((ret = build_vlc(&s->vlcs[class][index], bits_table, val_table, - n, 0, class > 0)) < 0) + n, class > 0)) < 0) return ret; if (class > 0) { ff_free_vlc(&s->vlcs[2][index]); if ((ret = build_vlc(&s->vlcs[2][index], bits_table, val_table, - n, 0, 0)) < 0) + n, 0)) < 0) return ret; } From patchwork Thu Oct 8 19:18:40 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Andreas Rheinhardt X-Patchwork-Id: 22761 Return-Path: X-Original-To: patchwork@ffaux-bg.ffmpeg.org Delivered-To: patchwork@ffaux-bg.ffmpeg.org Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org [79.124.17.100]) by ffaux.localdomain (Postfix) with ESMTP id 5A0E044B18A for ; Thu, 8 Oct 2020 22:19:19 +0300 (EEST) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 3FF4A68B8F2; Thu, 8 Oct 2020 22:19:19 +0300 (EEST) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-wm1-f65.google.com (mail-wm1-f65.google.com [209.85.128.65]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id D4C5C68B755 for ; Thu, 8 Oct 2020 22:19:12 +0300 (EEST) Received: by mail-wm1-f65.google.com with SMTP id k18so7611478wmj.5 for ; Thu, 08 Oct 2020 12:19:12 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references:reply-to :mime-version:content-transfer-encoding; bh=yAk0sKotgIMsCldtcJmZnqEy7WEqMrEQY20LkHZvF80=; b=bF4iHfIaJDNB1KvnC8+oMAH7+Ui+j54XYjbSPhs44jHMZI/HQVludrxchceJSSHJ7L HmUxdmYMe06DC38UxtTkcYwvAxFhlGdXZ8fxeMyNbbP/DS1XbyFC1nJz2V7Etf5VytH3 OPyT8ZvkKBBEqfDqXO33ehse0QYbt4EzLdvS96CLW1qe0FDDGEFVuY7kVAfZZB/ONSgd 2G7KCwz1TIauQ/7XyCCW2PYWB/2nNL/hJaWPWBfUHJOiKwaUBD4WoIA8QIm6fsAD+gZx t4d0bT4gLgIEnptnobacnOXfXUXWJ8Wc1bhUFOaKvfpE6xIY1TUhmvyzUwy9/bxg8cUQ /4og== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:reply-to:mime-version:content-transfer-encoding; bh=yAk0sKotgIMsCldtcJmZnqEy7WEqMrEQY20LkHZvF80=; b=WQRJ1IMZqoWbwQx80xpsuy45hWh3h4xTFfnfduZCpxEcdtbXj1FTgzKF9sqlY5itiJ c85b55bYMRh8sFNkgj2cfE/yMakcILDxVHtLel8HaRj4/ndVbi05KSlrKBweF8duD7hi 0wSavd/xUSTb4swupUM/1RSiS/L48cb6ccwC1ZAAYrjzTUddeKYyq8EgcmfjZ0zsFWLH DyGH+OpjvQqJDjXBH/Fdrye5tlCIbc+fuEIyjo+Yia/yprRjKzOUzgCWz5lQfbyllUOi 98LgLRNNLXyy/T1ZvV0hnXWiWg19B/HzndlE9Hx61PDz8OI8/qTn7L7NlgZ/eM4Z48uz KdXQ== X-Gm-Message-State: AOAM531Xv8lwifgCG1hZYJVG+2VmNbQuQwcMGf5DqN6LkSG56uien1Rn 4Y4Rq7A+nV6CavgOf0keqqmevOmkXRI= X-Google-Smtp-Source: ABdhPJxuNX2w+m8JuI7zSgDWMfRbK5FXBFFI42xuQUiT3CViOm8+PfM2Y85/RXZHNU4sTx/uHi+QIw== X-Received: by 2002:a1c:f311:: with SMTP id q17mr11122646wmq.168.1602184752094; Thu, 08 Oct 2020 12:19:12 -0700 (PDT) Received: from sblaptop.fritz.box (ipbcc1aa4b.dynamic.kabel-deutschland.de. [188.193.170.75]) by smtp.gmail.com with ESMTPSA id u17sm9280316wri.45.2020.10.08.12.19.11 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 08 Oct 2020 12:19:11 -0700 (PDT) From: Andreas Rheinhardt To: ffmpeg-devel@ffmpeg.org Date: Thu, 8 Oct 2020 21:18:40 +0200 Message-Id: <20201008191842.385813-2-andreas.rheinhardt@gmail.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20201008191842.385813-1-andreas.rheinhardt@gmail.com> References: <20201008191842.385813-1-andreas.rheinhardt@gmail.com> MIME-Version: 1.0 Subject: [FFmpeg-devel] [PATCH 2/4] avcodec/mjpegdec: Remove redundant initialization X-BeenThere: ffmpeg-devel@ffmpeg.org X-Mailman-Version: 2.1.20 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: Andreas Rheinhardt Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" Now that the correct number of codes is used, it is no longer necessary to initialize the lengths of the codes at all any more as the length of the actually used codes is set later anyway. Signed-off-by: Andreas Rheinhardt --- libavcodec/mjpegdec.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/libavcodec/mjpegdec.c b/libavcodec/mjpegdec.c index a56afc0fb7..147dd819e5 100644 --- a/libavcodec/mjpegdec.c +++ b/libavcodec/mjpegdec.c @@ -69,7 +69,7 @@ static int build_vlc(VLC *vlc, const uint8_t *bits_table, const uint8_t *val_table, int nb_codes, int is_ac) { - uint8_t huff_size[256] = { 0 }; + uint8_t huff_size[256]; uint16_t huff_code[256]; uint16_t huff_sym[256]; int i; From patchwork Thu Oct 8 19:18:41 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Andreas Rheinhardt X-Patchwork-Id: 22762 Return-Path: X-Original-To: patchwork@ffaux-bg.ffmpeg.org Delivered-To: patchwork@ffaux-bg.ffmpeg.org Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org [79.124.17.100]) by ffaux.localdomain (Postfix) with ESMTP id 434D944B18A for ; Thu, 8 Oct 2020 22:19:20 +0300 (EEST) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 2C9D968B919; Thu, 8 Oct 2020 22:19:20 +0300 (EEST) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-wr1-f53.google.com (mail-wr1-f53.google.com [209.85.221.53]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 5143D68B919 for ; Thu, 8 Oct 2020 22:19:14 +0300 (EEST) Received: by mail-wr1-f53.google.com with SMTP id i1so1696864wro.1 for ; Thu, 08 Oct 2020 12:19:14 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references:reply-to :mime-version:content-transfer-encoding; bh=zir7mk8t6M4VQzvrpoyDeQxvrAPe/OxaMXrl6+9v50c=; b=siXEg12wj6ow7CvsOa9mMu98mPZYdxu7uNfy8RhY9KU+npQHfuScTDMbqVFnTUBxLS ooJxICHsDuKo6ejkhbpD35E5CzkJwXjkYhgcEkOxDoLYVc2ncrZnS0dwqbbUvQtSxQLX VoLwbeKsR4NzoLPDmQ4bH6/gWILX1i5Q86pg5NTgDovWJJZfb1b0crW52jt314Y3lJ8y hgXKf+xiHH5eEH5CSfch19oOGBb19PrlAAbiUKJghGiZkkrI4kTHeNicZeH4SVWi9GCT HCyyMRvFvrPT3IYJtXfNjZJE5IafYYqqSigo6uULZHcFa/nekFZZHalEQUdiUj1wHMhp twSw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:reply-to:mime-version:content-transfer-encoding; bh=zir7mk8t6M4VQzvrpoyDeQxvrAPe/OxaMXrl6+9v50c=; b=A9sP9EgBQd+PUtUUsMOU4SnZScYnupZcmfkIR3kaCif1D/bqq5nOmUMt5P3cVo8bY4 rqkRR2mk+tyBmYysVGkFfdJNrCjBUN+MG5QmDouQVrSnjqUOfuud7ODwXpezWR/1TBf+ rDgUVspw2QMmmNiNb2rH/adbPBsFBRpqoc2KEw38xU7XOZAp/eNlKCFOjqs7ZDVabY0+ QsqWtX/MDfQp4A8ilZ2kgj+G1Z363pGGtaKNwHhLzXWHW+GvDBJUG9m9Zg0q2a3RWreM PA4xcI0OjiotU744AiiknUybImkWtSeLeFGAP/Trx3hL2ST4u7YcvSZGLKq6E8t90fvr UUug== X-Gm-Message-State: AOAM530SO+jkUhKs7FMFYMkaMPNYEW2wRQSAnhjPbnGcaDJwSVrAranA NwpzVPDWJDuvtVtOd/rT7ipUQ57MpA0= X-Google-Smtp-Source: ABdhPJwxrcKgcTgmvMakGUK1qw2LzpSrlLFe9377QjW60/QxwXH07NtiOy0SsYW9P9l0dxyjnqsKMw== X-Received: by 2002:adf:9dd1:: with SMTP id q17mr4228695wre.317.1602184753205; Thu, 08 Oct 2020 12:19:13 -0700 (PDT) Received: from sblaptop.fritz.box (ipbcc1aa4b.dynamic.kabel-deutschland.de. [188.193.170.75]) by smtp.gmail.com with ESMTPSA id u17sm9280316wri.45.2020.10.08.12.19.12 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 08 Oct 2020 12:19:12 -0700 (PDT) From: Andreas Rheinhardt To: ffmpeg-devel@ffmpeg.org Date: Thu, 8 Oct 2020 21:18:41 +0200 Message-Id: <20201008191842.385813-3-andreas.rheinhardt@gmail.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20201008191842.385813-1-andreas.rheinhardt@gmail.com> References: <20201008191842.385813-1-andreas.rheinhardt@gmail.com> MIME-Version: 1.0 Subject: [FFmpeg-devel] [PATCH 3/4] avcodec/magicyuvenc: Avoid sorting Huffman table unnecessarily X-BeenThere: ffmpeg-devel@ffmpeg.org X-Mailman-Version: 2.1.20 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: Andreas Rheinhardt Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" Signed-off-by: Andreas Rheinhardt --- libavcodec/magicyuvenc.c | 41 ++++++++++++++-------------------------- 1 file changed, 14 insertions(+), 27 deletions(-) diff --git a/libavcodec/magicyuvenc.c b/libavcodec/magicyuvenc.c index 0bd6b8ef6a..1b8bb53114 100644 --- a/libavcodec/magicyuvenc.c +++ b/libavcodec/magicyuvenc.c @@ -40,7 +40,6 @@ typedef enum Prediction { } Prediction; typedef struct HuffEntry { - uint8_t sym; uint8_t len; uint32_t code; } HuffEntry; @@ -245,32 +244,18 @@ static av_cold int magy_encode_init(AVCodecContext *avctx) return 0; } -static int magy_huff_cmp_len(const void *a, const void *b) +static void calculate_codes(HuffEntry *he, uint16_t codes_count[33]) { - const HuffEntry *aa = a, *bb = b; - return (aa->len - bb->len) * 256 + aa->sym - bb->sym; -} - -static int huff_cmp_sym(const void *a, const void *b) -{ - const HuffEntry *aa = a, *bb = b; - return bb->sym - aa->sym; -} - -static void calculate_codes(HuffEntry *he) -{ - uint32_t code; - int i; - - AV_QSORT(he, 256, HuffEntry, magy_huff_cmp_len); - - code = 1; - for (i = 255; i >= 0; i--) { - he[i].code = code >> (32 - he[i].len); - code += 0x80000000u >> (he[i].len - 1); + for (unsigned i = 32, nb_codes = 0; i > 0; i--) { + uint16_t curr = codes_count[i]; // # of leafs of length i + codes_count[i] = nb_codes / 2; // # of non-leaf nodes on level i + nb_codes = codes_count[i] + curr; // # of nodes on level i } - AV_QSORT(he, 256, HuffEntry, huff_cmp_sym); + for (unsigned i = 0; i < 255; i++) { + he[i].code = codes_count[he[i].len]; + codes_count[he[i].len]++; + } } static void count_usage(uint8_t *src, int width, @@ -301,6 +286,7 @@ static int compare_by_prob(const void *a, const void *b) } static void magy_huffman_compute_bits(PTable *prob_table, HuffEntry *distincts, + uint16_t codes_counts[33], int size, int max_length) { PackageMergerList list_a, list_b, *to = &list_a, *from = &list_b, *temp; @@ -356,8 +342,8 @@ static void magy_huffman_compute_bits(PTable *prob_table, HuffEntry *distincts, } for (i = 0; i < size; i++) { - distincts[i].sym = i; distincts[i].len = nbits[i]; + codes_counts[nbits[i]]++; } } @@ -366,6 +352,7 @@ static int encode_table(AVCodecContext *avctx, uint8_t *dst, PutBitContext *pb, HuffEntry *he) { PTable counts[256] = { {0} }; + uint16_t codes_counts[33] = { 0 }; int i; count_usage(dst, width, height, counts); @@ -375,9 +362,9 @@ static int encode_table(AVCodecContext *avctx, uint8_t *dst, counts[i].value = 255 - i; } - magy_huffman_compute_bits(counts, he, 256, 12); + magy_huffman_compute_bits(counts, he, codes_counts, 256, 12); - calculate_codes(he); + calculate_codes(he, codes_counts); for (i = 0; i < 256; i++) { put_bits(pb, 1, 0); From patchwork Thu Oct 8 19:18:42 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Andreas Rheinhardt X-Patchwork-Id: 22763 Return-Path: X-Original-To: patchwork@ffaux-bg.ffmpeg.org Delivered-To: patchwork@ffaux-bg.ffmpeg.org Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org [79.124.17.100]) by ffaux.localdomain (Postfix) with ESMTP id 157BD44B18A for ; Thu, 8 Oct 2020 22:19:22 +0300 (EEST) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 00A8768B92A; Thu, 8 Oct 2020 22:19:22 +0300 (EEST) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-wm1-f65.google.com (mail-wm1-f65.google.com [209.85.128.65]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id E54AD68B90D for ; Thu, 8 Oct 2020 22:19:14 +0300 (EEST) Received: by mail-wm1-f65.google.com with SMTP id p15so7562793wmi.4 for ; Thu, 08 Oct 2020 12:19:14 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references:reply-to :mime-version:content-transfer-encoding; bh=p9QMqfkVBlXoylAf10fK17AGha4xz2sE42I73SfXf0w=; b=oHukVdvsiUzA82/OUfNKShP33AyuDqRJBRTLSvQCP0f00tRVAj1P8oLVpIaWGlNkea k4+JDJXSMInVdEUoTW0QbgZtze4YU1DhvXMvO1JiSA8aLtgHmMBQTC1D0oQPJS4hMi7C /XsDpdaD66Ks4vPpHlCFR5e9cEiUrF9juit/r9UwrlA0sNN3saEanadxBGsSPoN5fFTB yFiaMTZbCSAu/N0+MpPIzkFI/sQrgu434wjHqP15KeiWM1D1/A03hkEnh+panBPvm2Ay ZpqT1NLTrunUNMfb5oXckwRoqjZBN9E44/x0zLgQ2epuCvev8InszHVN/n+e61mtETvs O8kA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:reply-to:mime-version:content-transfer-encoding; bh=p9QMqfkVBlXoylAf10fK17AGha4xz2sE42I73SfXf0w=; b=uEsPEs+qA67oIhLRFDmXottnOSjD1w8u4JXVqbWCM4q3vnNL9DTEMiMJ/FWd6axMnY YvdZS5NKyQfHvSvGMtigAQ1n/mL4E9h+cTLPbAy1E8CKgqlD0fSuRakEVMgv7XuWLqsd 840x43Sxna7mWnBprKQhI9dJnfqOgHZtksAT1tAu2yoCqctf+yPXEi2V8Hu8z9aqqCTs LB8pZRsyny9IkblP3tV6Zl7zNiS/Vr6+tNrWZ1CGt+LZGY9CXfo3Nh6RDEq0H6A1QjOq hayLCKXLx/JFGtC2GD1CyMdokgHkfWbz0ihW47xxaq8FkZMkJKLZ8OAwkJKlO+3dPAgn 6dGw== X-Gm-Message-State: AOAM531HUX+KcRJY+P6vJQ336QCyFgyp8mb8isMvvuAN8+ulSTfgNtim 2RXDL7K1N8QKPI/evq+gqSa52lfH/+s= X-Google-Smtp-Source: ABdhPJyb0+irWX19E9RYy9R1EDKzhNhX/zwMRVaWL4wXhddv5dVeHYzK/KGs09f8MvwfOxstF6GUuA== X-Received: by 2002:a1c:9885:: with SMTP id a127mr10394705wme.8.1602184754216; Thu, 08 Oct 2020 12:19:14 -0700 (PDT) Received: from sblaptop.fritz.box (ipbcc1aa4b.dynamic.kabel-deutschland.de. [188.193.170.75]) by smtp.gmail.com with ESMTPSA id u17sm9280316wri.45.2020.10.08.12.19.13 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 08 Oct 2020 12:19:13 -0700 (PDT) From: Andreas Rheinhardt To: ffmpeg-devel@ffmpeg.org Date: Thu, 8 Oct 2020 21:18:42 +0200 Message-Id: <20201008191842.385813-4-andreas.rheinhardt@gmail.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20201008191842.385813-1-andreas.rheinhardt@gmail.com> References: <20201008191842.385813-1-andreas.rheinhardt@gmail.com> MIME-Version: 1.0 Subject: [FFmpeg-devel] [PATCH 4/4] avcodec/magicyuvenc: Use more correct cast in compare function X-BeenThere: ffmpeg-devel@ffmpeg.org X-Mailman-Version: 2.1.20 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: Andreas Rheinhardt Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" There is no need to cast const away (even if it was harmless) and to copy the object at all. Signed-off-by: Andreas Rheinhardt --- libavcodec/magicyuvenc.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/libavcodec/magicyuvenc.c b/libavcodec/magicyuvenc.c index 1b8bb53114..440b3514c3 100644 --- a/libavcodec/magicyuvenc.c +++ b/libavcodec/magicyuvenc.c @@ -280,9 +280,9 @@ typedef struct PackageMergerList { static int compare_by_prob(const void *a, const void *b) { - PTable a_val = *(PTable *)a; - PTable b_val = *(PTable *)b; - return a_val.prob - b_val.prob; + const PTable *a2 = a; + const PTable *b2 = b; + return a2->prob - b2->prob; } static void magy_huffman_compute_bits(PTable *prob_table, HuffEntry *distincts,