From patchwork Sat Oct 17 18:22:46 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Andreas Rheinhardt X-Patchwork-Id: 23049 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 9CBAB44B29E for ; Sat, 17 Oct 2020 21:23:31 +0300 (EEST) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 8511168BB6A; Sat, 17 Oct 2020 21:23:31 +0300 (EEST) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-wm1-f66.google.com (mail-wm1-f66.google.com [209.85.128.66]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 3756668BB53 for ; Sat, 17 Oct 2020 21:23:23 +0300 (EEST) Received: by mail-wm1-f66.google.com with SMTP id j136so8779170wmj.2 for ; Sat, 17 Oct 2020 11:23:23 -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 :mime-version:content-transfer-encoding; bh=Dm/+dCftEHISWKL9CjU5Dh5EY5E9n4hO+bIZzRnKMO4=; b=svxNltdoteoKqWdrvP4nkw39qfQ7koUqoh3DN2tljYJcre5/d7ItZ5oVSdXeNRv5Yc AnD18x4YrnVpBnBrF9GvQh3J/Vgq0+0Z6K4Q5RXt5vqYKidUq1WZFM91dm+yDbVtjy36 IxocRu5IFH0JYViCyOWGm6RFFVY+JIYSf1RbuoT2JjntIB5K0VlSOg+LwdEoTiHrFgXH itVfFlEDxjN5ute/HxnOGIjVcOARHhgjifxJgrzGGn9KPHgI8tkEKsVFeHj1Jq/rYYAd y2od0K53f62JhURqd8J6QESKE9mXrLNL2QAcVcS5yD0jUVaLNrELbPEH1vzVQpsh5IfB sYFw== 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:mime-version:content-transfer-encoding; bh=Dm/+dCftEHISWKL9CjU5Dh5EY5E9n4hO+bIZzRnKMO4=; b=KmIjNaSGtHv/C47B+NChagNwZiIaBcZMOt7PIitKamJGDcfkppo+YsjGpXa8SQUlSQ 2VZdYvQ+XhYWAF9mjj+Lcmhl0dQ2rPTdGoIRfGGBmskfgytEwbQGmhsgZUAEOQuJ3/CZ 8wMts1fF2gsBdjoh7L2RQmnzWEHZxgyJ8GnCgHhcpPBPZse9TxnQr1Kdf38zyiBxAPsP 8nr8+BbO+VSBzxCVJb3yixN/EDbS4+0nv4NDYLrSP4kJ9PzgKFpuI95q8TvfTXxm5bbJ ngM6kc9Dv/5+gAuyEyb/dzhAdwz4W3Lg3dkz2Gy1ruDqSHjwtkjNUXUq6cVBAUcRj2ym 73kw== X-Gm-Message-State: AOAM532cOgrqUepKi2nFbyh5J5XSpbEbkun+01tdB9cPo/h2QQVPfEbI WHXGmCbF6//1x2M9IBhaxrKiSCAM9fo= X-Google-Smtp-Source: ABdhPJwIrnZWdqjPfgcXFSUY17UVxb114VT69RySzQ8qI5mZDO4bZGS4oYdCATe7WOxQqmQ2WYvlfA== X-Received: by 2002:a1c:5641:: with SMTP id k62mr9146386wmb.108.1602959002284; Sat, 17 Oct 2020 11:23:22 -0700 (PDT) Received: from sblaptop.fritz.box (ipbcc1aa4b.dynamic.kabel-deutschland.de. [188.193.170.75]) by smtp.gmail.com with ESMTPSA id d20sm10440688wra.38.2020.10.17.11.23.21 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sat, 17 Oct 2020 11:23:21 -0700 (PDT) From: Andreas Rheinhardt To: ffmpeg-devel@ffmpeg.org Date: Sat, 17 Oct 2020 20:22:46 +0200 Message-Id: <20201017182248.577108-9-andreas.rheinhardt@gmail.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20201017182248.577108-1-andreas.rheinhardt@gmail.com> References: <20201017182248.577108-1-andreas.rheinhardt@gmail.com> MIME-Version: 1.0 Subject: [FFmpeg-devel] [PATCH 09/11] avcodec/movtextdec: Avoid loop when writing UTF-8 character to AVBPrint 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/movtextdec.c | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/libavcodec/movtextdec.c b/libavcodec/movtextdec.c index 1bfca8b79d..e5ce58a184 100644 --- a/libavcodec/movtextdec.c +++ b/libavcodec/movtextdec.c @@ -430,7 +430,6 @@ static int text_to_ass(AVBPrint *buf, const char *text, const char *text_end, av_log(avctx, AV_LOG_ERROR, "invalid UTF-8 byte in subtitle\n"); len = 1; } - for (i = 0; i < len; i++) { switch (*text) { case '\r': break; @@ -438,11 +437,10 @@ static int text_to_ass(AVBPrint *buf, const char *text, const char *text_end, av_bprintf(buf, "\\N"); break; default: - av_bprint_chars(buf, *text, 1); + av_bprint_append_data(buf, text, len); break; } - text++; - } + text += len; text_pos++; }