From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org [79.124.17.100]) by master.gitmailbox.com (Postfix) with ESMTP id C3C274464E for ; Fri, 21 Oct 2022 12:43:02 +0000 (UTC) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id B566368BE7C; Fri, 21 Oct 2022 15:42:59 +0300 (EEST) Received: from mail-ot1-f43.google.com (mail-ot1-f43.google.com [209.85.210.43]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id AABE768BD18 for ; Fri, 21 Oct 2022 15:42:53 +0300 (EEST) Received: by mail-ot1-f43.google.com with SMTP id d18-20020a05683025d200b00661c6f1b6a4so1742052otu.1 for ; Fri, 21 Oct 2022 05:42:53 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=content-transfer-encoding:in-reply-to:from:content-language :references:to:subject:user-agent:mime-version:date:message-id:from :to:cc:subject:date:message-id:reply-to; bh=r3Cv5cZhhocwPoxyj2QdgZMEiE57GqhfddpusgXyu3g=; b=jZYphHjSTEuE7aTpUgvqchJ5Dgjgx0eBvePmj0EPV0ppc5DLxOxGWn7yu8Zb+m0T0J hrjB1w/zFn0WsTlXZ2FOm4LFUiBYnR7Flph0EJlUsKcSH8xRRDqspsj9dPYMC1cwQaJS AP8UFazya486imWEGdkbhiy7cQQAIXb/dNSXIRhkCtvKxLGbwiVaogXc2dYvWokwSTus ouDpvMISD4bOdcrWSkB/DFHt7hGUkdFAoaHZ8Cqxw2Vi4m4f7oEMbjWLw1K7eFXrHCsl l+kKERwvftNb63pbruW5CVBdQBcAxm3a4Jc45Y/wbQC+cseNA4caSUPn336P1zAXo3f8 6EWw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=content-transfer-encoding:in-reply-to:from:content-language :references:to:subject:user-agent:mime-version:date:message-id :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=r3Cv5cZhhocwPoxyj2QdgZMEiE57GqhfddpusgXyu3g=; b=HUGRGE7psx7B/U0MrD5JYCprXDZTKITcDSk7xxg1H0l/DZVPgydqcYO21BliDjynFt AhOeUeXDaLXALqXuRDVeJyGedxoisDTzhw/QLO/e9E+bXI9iZx+0LxidQFGF7B9BMWIG BV3mz7XOpoa1cVGCUfCF8xLHgJ2RqFULQ2N2FZdmeuZlU3f5bwHM8BZdJQMuUISdxN1o uM1q/CmRiZDMQk0r2SG8nAkliA6Gr1TMcOci8GLWJhyy6PeY8H5tA/5jpJRNKCX5pe55 TlujQ8NcIuIaxO+QTl6SZwPY7Wpfm0y5kRL1L+nXJ8ZY8JPGvFTyKQaxSJzKGIcnYXie 91zQ== X-Gm-Message-State: ACrzQf2S6fYRvswPBA4AOD+yx8Z43Ft/jTSSaTBGp4d9vB+vHZOPYCCO 5hdh8HHYE40RqH9L7zGsNTDnQGuJlZA= X-Google-Smtp-Source: AMsMyM7Qbn5KN+nV771E+eU/A47MdTyHKubYdhFufYjurAEvRRCduxAD6v9L5Iw3XXXYIIO9073Uww== X-Received: by 2002:a9d:6943:0:b0:661:9dd1:b646 with SMTP id p3-20020a9d6943000000b006619dd1b646mr10062097oto.204.1666356171559; Fri, 21 Oct 2022 05:42:51 -0700 (PDT) Received: from [192.168.0.13] ([191.97.187.183]) by smtp.gmail.com with ESMTPSA id c24-20020aca1c18000000b0035474ff66b3sm1030209oic.35.2022.10.21.05.42.50 for (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Fri, 21 Oct 2022 05:42:51 -0700 (PDT) Message-ID: Date: Fri, 21 Oct 2022 09:42:52 -0300 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:102.0) Gecko/20100101 Thunderbird/102.4.0 To: ffmpeg-devel@ffmpeg.org References: <9eb483c2-4802-f013-0fcf-b2b073c9afe3@gmail.com> <20221021083036.17264-1-anton@khirnov.net> Content-Language: en-US From: James Almer In-Reply-To: <20221021083036.17264-1-anton@khirnov.net> Subject: Re: [FFmpeg-devel] [PATCH] tools: add an AV_CODEC_CAP_ENCODER_RECON_FRAME test tool 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 Content-Transfer-Encoding: 7bit Content-Type: text/plain; charset="us-ascii"; Format="flowed" Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" Archived-At: List-Archive: List-Post: On 10/21/2022 5:30 AM, Anton Khirnov wrote: > +static int frame_hash(FrameChecksum **pc, size_t *nb_c, int64_t ts, > + const AVFrame *frame) > +{ > + FrameChecksum *c; > + int shift_h, shift_v; > + > + c = av_realloc_array(*pc, *nb_c + 1, sizeof(*c)); Use av_fast_realloc(), or the size_t replacement if it's pushed before this. Or maybe port this to AVFifo with auto grow. Either case will reduce the amount of reallocations considerably. > + if (!c) > + return AVERROR(ENOMEM); > + *pc = c; > + (*nb_c)++; > + > + c += *nb_c - 1; > + memset(c, 0, sizeof(*c)); > + > + av_pix_fmt_get_chroma_sub_sample(frame->format, &shift_h, &shift_v); > + > + c->ts = ts; > + for (int p = 0; frame->data[p]; p++) { > + const uint8_t *data = frame->data[p]; > + int linesize = av_image_get_linesize(frame->format, frame->width, p); > + uint32_t checksum = 0; > + > + for (int j = 0; j < frame->height >> shift_v; j++) { Isn't the shift meant for the chroma planes only? > + checksum = av_adler32_update(checksum, data, linesize); > + data += frame->linesize[p]; > + } > + > + c->checksum[p] = checksum; > + } > + > + return 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".