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 C22234E81E for <ffmpegdev@gitmailbox.com>; Wed, 7 May 2025 23:58:44 +0000 (UTC) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 9801C68C023; Thu, 8 May 2025 02:58:38 +0300 (EEST) Received: from mail-wm1-f41.google.com (mail-wm1-f41.google.com [209.85.128.41]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 0EBF9687DC6 for <ffmpeg-devel@ffmpeg.org>; Thu, 8 May 2025 02:58:32 +0300 (EEST) Received: by mail-wm1-f41.google.com with SMTP id 5b1f17b1804b1-441d437cfaaso2722705e9.1 for <ffmpeg-devel@ffmpeg.org>; Wed, 07 May 2025 16:58:32 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1746662311; x=1747267111; 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=xICjfu8ffkYjDuYmeyI1wbR2bkp2+72sIZmiGhUt4mk=; b=j/yX0EyzhNLUJ17WEEvttLrlM7J6LcfabHyr0qJBa9I59ZB1pbz7kwuOIEHKrzQLsY wzCTPQ1YyDtuqvHdMauc5ccjP3eor2uh/aN5f5425yVQzhG995baAI3qQarhgmF6FH/O 6L9WhrwB0BI3+xbcvcY5THwxUZfcCPXQbJ1ir93xkwEylQcj80TH8VFofJkDUUZWsxAe J6J1Mu5YsmQvtN0H9TjglWb0e771NCeSFijilonNzaVycLnfACPOH/4+A+M1PCwbZV/o YUqd3vezqE4N27gYjXvZvjoseKevoba+XFsruHUjYyVB8rIm59v0LMCFznNWIMKJn4E/ f3eg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1746662311; x=1747267111; 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=xICjfu8ffkYjDuYmeyI1wbR2bkp2+72sIZmiGhUt4mk=; b=I0x4ER/AtXCdWQ5WGN2YN5Qo2BO6pIyGji/CkMYRGVRs3+RJMbxuQwMSxRyV6gJA1z l8H+WXN46Uy+pLHEaHP0uN+HbzM1TkXFwfH44F9O3M3ODosVzsgy91S1b5kLJRSfsLEY xWOnmWEh0rURruD5NXUAynZX/F2WxkR47jmDuwwn4xVWJXLbK6xn/m6s8kQxyh5tIPtc R119vzA0z0PQpRYVw5rQ7+QA997cfHqRmmNiHAxhWOB4KYn3Pzc7aH1nKVXuV9Xqsuwl x2SQg8nv4M4PVFQfY4bxfyrw/5i6vCDtWA977cu8LIYY442W+DurR86yfu4SPk2wHOU7 kMgw== X-Gm-Message-State: AOJu0Yx4R+39XN3pdiXL/e/wI726pu7zDWXF4iF5u7oUYU5SLpwHrtDK AVUmx4UdxrKHf7UwrYzcio+AtDSUfW607ZJ1Mvlu6DwUQjA8zvuNpFg2Gg== X-Gm-Gg: ASbGncv+xKPDKJ3n+BihcsHwnhmFkgcu1xzkT+tXYoPGJELf/KOKE6EgIhTNKsw1mlz TBQMi6620aG7bQtCNN9L2g5qjlUAPzUr/w6DaAwlKxb3rVqawfqeVkBGNLWLwvnSxFQJkoe5Jgq /9mJIUgOJj6ANV/v2bD5a/DReotQpPgS4ZY+PE+2FdA9MjDBiFcKmmkABmRfoVzWRh6ebnpCbYO vBhzueBFK6UnFN+Mog3Ge8P3Jmgn/BHYicilD8E+CF5z8JDy3J//MfiLI5zKyyvim0AM5GSIa7O ovnkrV+GXQbZ6rrgxs/sYdoeGYWno17oVKMdBHH1OclvsFAZD8o5jMdV7QPs1sPtew+c2HE2kgk hCLb3 X-Google-Smtp-Source: AGHT+IEe2mKt9QGh/8ImH+Ae4ijC7V8WzJESfrwbp3qE1DziYlm+TXiAMjdgY2FxKKssW39HbdFk/g== X-Received: by 2002:a05:6000:40e0:b0:3a0:9f24:7742 with SMTP id ffacd0b85a97d-3a0b4a4b4d7mr4059342f8f.41.1746662310868; Wed, 07 May 2025 16:58:30 -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 ffacd0b85a97d-3a0bc05b7f1sm194050f8f.101.2025.05.07.16.58.29 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 07 May 2025 16:58:30 -0700 (PDT) Received: by mariano (Postfix, from userid 1000) id 90336BFCE8; Thu, 8 May 2025 01:58:28 +0200 (CEST) Date: Thu, 8 May 2025 01:58:28 +0200 From: Stefano Sabatini <stefasab@gmail.com> To: FFmpeg development discussions and patches <ffmpeg-devel@ffmpeg.org> Message-ID: <aBvzpO4eLdK+kwxO@mariano> Mail-Followup-To: FFmpeg development discussions and patches <ffmpeg-devel@ffmpeg.org>, softworkz <softworkz-at-hotmail.com@ffmpeg.org> References: <pull.66.v9.ffstaging.FFmpeg.1746260565.ffmpegagent@gmail.com> <pull.66.v10.ffstaging.FFmpeg.1746327446.ffmpegagent@gmail.com> <26af65e6f2f513b9bdee8fe5d924cab83dc26450.1746327446.git.ffmpegagent@gmail.com> MIME-Version: 1.0 Content-Disposition: inline In-Reply-To: <26af65e6f2f513b9bdee8fe5d924cab83dc26450.1746327446.git.ffmpegagent@gmail.com> User-Agent: Mutt/2.1.4 (2021-12-11) Subject: Re: [FFmpeg-devel] [PATCH v10 05/15] 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/aBvzpO4eLdK+kwxO@mariano/> List-Archive: <https://master.gitmailbox.com/ffmpegdev/> List-Post: <mailto:ffmpegdev@gitmailbox.com> On date Sunday 2025-05-04 02:57:16 +0000, softworkz wrote: > From: softworkz <softworkz@hotmail.com> > > Instead of initializing a new BPrint in each iteration of > the loop, a new BPrint in case of UTF decode error > re-use the same BPrint struct and just clear it > for each iteration. > > Signed-off-by: softworkz <softworkz@hotmail.com> > --- > fftools/textformat/avtextformat.c | 23 ++++++++++++++--------- > 1 file changed, 14 insertions(+), 9 deletions(-) > > diff --git a/fftools/textformat/avtextformat.c b/fftools/textformat/avtextformat.c > index 1cd9555ca8..b2c3aa3fc7 100644 > --- a/fftools/textformat/avtextformat.c > +++ b/fftools/textformat/avtextformat.c > @@ -311,24 +311,28 @@ 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_invalid_seq; nit: you can discard bp_ for consistency with dstbuf > int invalid_chars_nb = 0, ret = 0; > > + *dstp = NULL; > av_bprint_init(&dstbuf, 0, AV_BPRINT_SIZE_UNLIMITED); > + av_bprint_init(&bp_invalid_seq, 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_invalid_seq); > + > + bprint_bytes(&bp_invalid_seq, p0, p - p0); > + > + av_log(tctx, AV_LOG_DEBUG, "Invalid UTF-8 sequence %s found in string '%s'\n", bp_invalid_seq.str, src); while at it, also quote the invalid string > invalid = 1; > } > > @@ -358,6 +362,7 @@ static inline int validate_string(AVTextFormatContext *tctx, char **dstp, const > > end: > av_bprint_finalize(&dstbuf, dstp); > + av_bprint_finalize(&bp_invalid_seq, NULL); > return ret; > } Should be good otherwise. _______________________________________________ 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".