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 05D834DC34 for <ffmpegdev@gitmailbox.com>; Wed, 23 Apr 2025 22:46:04 +0000 (UTC) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id E2E4B68B329; Thu, 24 Apr 2025 01:45:59 +0300 (EEST) Received: from mail-ed1-f51.google.com (mail-ed1-f51.google.com [209.85.208.51]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id E6946687DDC for <ffmpeg-devel@ffmpeg.org>; Thu, 24 Apr 2025 01:45:52 +0300 (EEST) Received: by mail-ed1-f51.google.com with SMTP id 4fb4d7f45d1cf-5f63ac6ef0fso830049a12.1 for <ffmpeg-devel@ffmpeg.org>; Wed, 23 Apr 2025 15:45:52 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1745448352; x=1746053152; darn=ffmpeg.org; h=user-agent:in-reply-to:content-disposition:mime-version:references :mail-followup-to:message-id:subject:cc:to:from:date:from:to:cc :subject:date:message-id:reply-to; bh=WQRvPJ0BNN35EfFrr4yBG7lP+5gXe5hcfoMvj0abO68=; b=P7PC/kBJo+1m4HUcevxZHUVgE5HRZSUab0B9i+2G4gPECiWHNrxEEtlSwBbpaulrE+ hR0OrIB6Clxgnt4R16pS+FzXx/jtcJ0kqsflMtL7RWbwLamT5Zc/NxE2eh6UVFLpKF5e PZ+A1OPQJSrkKNfw1a91X7ymksR21vkSqIznWC/aikk/knpFyK+RfCxyuOuO0v6kKoAk 859xm4nVOcCXyinKYhvVvlPLVtYHGSh03Af8PUng8+yYdVmRtWOB8kA0q8VDGvFbvYXf f6++3nLfa5+A4djXn4lQcaSDuznQT47Fi6DUgqREXPmJZygp62QpaKuwZZQ8Fc88Djum OtjQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1745448352; x=1746053152; h=user-agent:in-reply-to:content-disposition:mime-version:references :mail-followup-to:message-id:subject:cc:to:from:date :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=WQRvPJ0BNN35EfFrr4yBG7lP+5gXe5hcfoMvj0abO68=; b=dJWFmnvY5/4fR3RQROvia4DJKWmbqomY8nVp0pm/IxhhMZ70IjcfRSAeoBlLZbbxmh aJSGf0CBL4BPGInLT7m0qL9RwCHv7qfLavZj51RvoiquQE8LtsXH+ezrQDzgBUqulMJL Mo1BWAKB+gg+zjzV3GyTjkM4vWtSVRQSvAVx1mU8FLgBNuquCDIlETHlxRWUXxsyIE4j lplk1r0zBarjJvlIstPCrcuiDZN2xwwO30Sy02zRwfjvT6Mwx74YfXISweAIN8W58MCN UbVHK6IEotadjdqn2mWFDl9s4g227CmkELA63V2nwAhD0TWVEZZlq8lnZSsF8WZWOGdR sLCw== X-Gm-Message-State: AOJu0YxUzvU9j6B3S+LadIqATEiXVQYXiEa65Afk8IlNhsFxUh1/YGT1 uCSTXZ7cOI1iqKdQXbiwW5DvCJmtkLSJy1PUvFBsC70+IPz2SPN1zHYm4Q== X-Gm-Gg: ASbGncsBGClMrrvxbUVgTQtGVqiWS0tVLzcTOrboUMyKvjbSLUtt6olePoJqZbQoMUd Ffnx/MaURsxFHLIntIMmY+sh4/VeX5oaUrfMwJKTbg0pU6Yo+YKDvARDocF86ow3/hIJfNalmn0 tU8FCWBAL2XonW/D4+GbGqme6bWJmvAylkMlGBhJnun93z9TL22NLjpQAYWC9pzjye4QLtNi5sa IQtwx8XDxDdZNfjdSEEn+hBXpT24q1hIYIR3Muv+7ftJXeW8JY6mICHFib3pFKk//HAw5PDuNIR Qj6GB4fu2a+zf8ugk1+Qkt29pBgUsJauNuwdhuGHeqoVIkbudFjEM0IiN+vz4cxzkwf10YxF+e2 jFVeP X-Google-Smtp-Source: AGHT+IHkbLOqW0edj+YTF4JTGiyjYhssEO1OmWvlcJrxT2v+3JDGRWCC6bDn0JTwlJoRbXIgN8sgAg== X-Received: by 2002:a05:6402:84c:b0:5f6:d57c:f23d with SMTP id 4fb4d7f45d1cf-5f6ef1f1672mr90103a12.17.1745448351849; Wed, 23 Apr 2025 15:45:51 -0700 (PDT) Received: from mariano (dynamic-adsl-84-220-189-10.clienti.tiscali.it. [84.220.189.10]) by smtp.gmail.com with ESMTPSA id 4fb4d7f45d1cf-5f6eb43e1casm215074a12.17.2025.04.23.15.45.50 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 23 Apr 2025 15:45:51 -0700 (PDT) Received: by mariano (Postfix, from userid 1000) id 985CFBFCE8; Thu, 24 Apr 2025 00:45:49 +0200 (CEST) Date: Thu, 24 Apr 2025 00:45:49 +0200 From: Stefano Sabatini <stefasab@gmail.com> To: FFmpeg development discussions and patches <ffmpeg-devel@ffmpeg.org> Message-ID: <aAltnTW5e35yOaKB@mariano> Mail-Followup-To: FFmpeg development discussions and patches <ffmpeg-devel@ffmpeg.org>, softworkz <softworkz-at-hotmail.com@ffmpeg.org> References: <pull.66.v4.ffstaging.FFmpeg.1745189954.ffmpegagent@gmail.com> <pull.66.v5.ffstaging.FFmpeg.1745358943.ffmpegagent@gmail.com> <c71836fce01816ef8a83e3e63745012a7acb4bce.1745358943.git.ffmpegagent@gmail.com> MIME-Version: 1.0 Content-Disposition: inline In-Reply-To: <c71836fce01816ef8a83e3e63745012a7acb4bce.1745358943.git.ffmpegagent@gmail.com> User-Agent: Mutt/2.1.4 (2021-12-11) Subject: Re: [FFmpeg-devel] [PATCH v5 03/14] fftools/avtextformat: Re-use BPrint in loop 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> Cc: softworkz <softworkz@hotmail.com> 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/aAltnTW5e35yOaKB@mariano/> List-Archive: <https://master.gitmailbox.com/ffmpegdev/> List-Post: <mailto:ffmpegdev@gitmailbox.com> On date Tuesday 2025-04-22 21:55:32 +0000, softworkz wrote: > From: softworkz <softworkz@hotmail.com> > > Instead of initializing a new BPrint in each iteration of > the loop, re-use the same BPrint struct and just clear it > for each iteration. > > Signed-off-by: softworkz <softworkz@hotmail.com> > --- > fftools/textformat/avtextformat.c | 22 ++++++++++++---------- > 1 file changed, 12 insertions(+), 10 deletions(-) > > diff --git a/fftools/textformat/avtextformat.c b/fftools/textformat/avtextformat.c > index 1939a1f739..0a221f4a9a 100644 > --- a/fftools/textformat/avtextformat.c > +++ b/fftools/textformat/avtextformat.c > @@ -308,24 +308,25 @@ void avtext_print_integer(AVTextFormatContext *tctx, const char *key, int64_t va > > static inline int validate_string(AVTextFormatContext *tctx, char **dstp, const char *src) > { > - const uint8_t *p, *endp; > + const uint8_t *p, *endp, *srcp = (const uint8_t *)src; > AVBPrint dstbuf; > + AVBPrint bp; > int invalid_chars_nb = 0, ret = 0; > > + *dstp = NULL; > av_bprint_init(&dstbuf, 0, AV_BPRINT_SIZE_UNLIMITED); > + av_bprint_init(&bp, 0, AV_BPRINT_SIZE_UNLIMITED); > > - endp = src + strlen(src); > - for (p = src; *p;) { > - uint32_t code; > + endp = srcp + strlen(src); > + for (p = srcp; *p;) { > + int32_t code; > int invalid = 0; > const uint8_t *p0 = p; > > if (av_utf8_decode(&code, &p, endp, tctx->string_validation_utf8_flags) < 0) { > - AVBPrint bp; > - av_bprint_init(&bp, 0, AV_BPRINT_SIZE_AUTOMATIC); > - bprint_bytes(&bp, p0, p-p0); > - av_log(tctx, AV_LOG_DEBUG, > - "Invalid UTF-8 sequence %s found in string '%s'\n", bp.str, src); > + av_bprint_clear(&bp); > + bprint_bytes(&bp, p0, p - p0); cosmetical - let's keep it separated to avoid complicating the diff > + av_log(tctx, AV_LOG_DEBUG, "Invalid UTF-8 sequence %s found in string '%s'\n", bp.str, src); I'm not convinced this is really needed, note that the bp is stored in the stack and is only initialized in case of decode error. We can theoretically have more than one error in a string, but still there should be no need to use UNLIMITED and uninit. Also if we want to use a function scope for bp, it's best to use a more descriptive name (e.g. bp_invalid_sequence). > invalid = 1; > } > > @@ -345,7 +346,7 @@ static inline int validate_string(AVTextFormatContext *tctx, char **dstp, const > } > > if (!invalid || tctx->string_validation == AV_TEXTFORMAT_STRING_VALIDATION_IGNORE) > - av_bprint_append_data(&dstbuf, p0, p-p0); > + av_bprint_append_data(&dstbuf, (const char *)p0, p - p0); unrelated _______________________________________________ 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".