[FFmpeg-cvslog] [ffmpeg] branch master updated. 1d06e8ddcd avfilter/af_whisper: fix broken output for multibyte character

ffmpeg-git at ffmpeg.org ffmpeg-git at ffmpeg.org
Sat Aug 16 16:58:58 EEST 2025


The branch, master has been updated
       via  1d06e8ddcd8c14232d0a3c2b1c21e50b232549b4 (commit)
      from  30e695692041888d727159c6279f433540453c3f (commit)


- Log -----------------------------------------------------------------
commit 1d06e8ddcd8c14232d0a3c2b1c21e50b232549b4
Author:     Zhao Zhili <quinkblack at foxmail.com>
AuthorDate: Fri Aug 15 20:39:49 2025 +0800
Commit:     michaelni <michael at niedermayer.cc>
CommitDate: Sat Aug 16 13:58:14 2025 +0000

    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.

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);

-----------------------------------------------------------------------

Summary of changes:
 libavfilter/af_whisper.c | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)


hooks/post-receive
-- 



More information about the ffmpeg-cvslog mailing list