[FFmpeg-devel] [PATCH] avfilter/af_whisper: fix broken output for multibyte character (PR #20244)
Zhao Zhili
code at ffmpeg.org
Fri Aug 15 16:05:05 EEST 2025
PR #20244 opened by Zhao Zhili (quink)
URL: https://code.ffmpeg.org/FFmpeg/FFmpeg/pulls/20244
Patch URL: https://code.ffmpeg.org/FFmpeg/FFmpeg/pulls/20244.patch
text + 1 can break a multibyte character, e.g., Chinese in UTF-8.
There is no space at the beginning in this case.
From 7d007b6b7650baf4eaeb2f6833f1ba1fc40a03c0 Mon Sep 17 00:00:00 2001
From: Zhao Zhili <zhilizhao at tencent.com>
Date: Fri, 15 Aug 2025 20:39:49 +0800
Subject: [PATCH] avfilter/af_whisper: fix broken output for multibyte
character
text + 1 can break a multibyte character, e.g., Chinese in UTF-8.
There is no space at the beginning in this case.
---
libavfilter/af_whisper.c | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)
diff --git a/libavfilter/af_whisper.c b/libavfilter/af_whisper.c
index 186b624504..bd145d6d1d 100644
--- a/libavfilter/af_whisper.c
+++ b/libavfilter/af_whisper.c
@@ -215,7 +215,9 @@ static void run_transcription(AVFilterContext *ctx, AVFrame *frame, int samples)
for (int i = 0; i < n_segments; ++i) {
const char *text = whisper_full_get_segment_text(wctx->ctx_wsp, i);
- char *text_cleaned = av_strireplace(text + 1, "[BLANK_AUDIO]", "");
+ if (av_isspace(text[0]))
+ text++;
+ char *text_cleaned = av_strireplace(text, "[BLANK_AUDIO]", "");
if (av_strnlen(text_cleaned, 1) == 0) {
av_freep(&text_cleaned);
--
2.49.1
More information about the ffmpeg-devel
mailing list