@ -1225,7 +1225,8 @@ static int draw_glyphs(DrawTextContext *s, AVFrame *frame,
for ( i = 0 , p = text ; * p ; i + + ) {
FT_Bitmap bitmap ;
Glyph dummy = { 0 } ;
GET_UTF8 ( code , * p + + , continue ; ) ;
GET_UTF8 ( code , * p + + , code = 0xfffd ; goto continue_on_invalid ; ) ;
continue_on_invalid :
/* skip new line chars, just go to new line */
if ( code = = ' \n ' | | code = = ' \r ' | | code = = ' \t ' )
@ -1363,7 +1364,8 @@ static int draw_text(AVFilterContext *ctx, AVFrame *frame,
/* load and cache glyphs */
for ( i = 0 , p = text ; * p ; i + + ) {
GET_UTF8 ( code , * p + + , continue ; ) ;
GET_UTF8 ( code , * p + + , code = 0xfffd ; goto continue_on_invalid ; ) ;
continue_on_invalid :
/* get glyph */
dummy . code = code ;
@ -1386,7 +1388,8 @@ static int draw_text(AVFilterContext *ctx, AVFrame *frame,
/* compute and save position for each glyph */
glyph = NULL ;
for ( i = 0 , p = text ; * p ; i + + ) {
GET_UTF8 ( code , * p + + , continue ; ) ;
GET_UTF8 ( code , * p + + , code = 0xfffd ; goto continue_on_invalid2 ; ) ;
continue_on_invalid2 :
/* skip the \n in the sequence \r\n */
if ( prev_code = = ' \r ' & & code = = ' \n ' )