aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorZhao Zhili <zhilizhao@tencent.com>2025-08-15 20:39:49 +0800
committermichaelni <michael@niedermayer.cc>2025-08-16 13:58:14 +0000
commit1d06e8ddcd8c14232d0a3c2b1c21e50b232549b4 (patch)
tree04e8187ac79ab209ff82daf8ebc567fda86cd3d0
parent30e695692041888d727159c6279f433540453c3f (diff)
downloadffmpeg-1d06e8ddcd8c14232d0a3c2b1c21e50b232549b4.tar.gz
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.
-rw-r--r--libavfilter/af_whisper.c4
1 files changed, 3 insertions, 1 deletions
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);