diff --git a/libavutil/log.c b/libavutil/log.c
index a4111f62746cded4a34734f39a220dc5d965cc64..29ad2d0c280302a1d75ebbb7f874a10a9cf09efa 100644
--- a/libavutil/log.c
+++ b/libavutil/log.c
@@ -190,8 +190,10 @@ static void format_line(void *ptr, int level, const char *fmt, va_list vl,
 
     vsnprintf(part[2], part_size, fmt, vl);
 
-    if(*part[0] || *part[1] || *part[2])
-        *print_prefix = strlen(part[2]) && part[2][strlen(part[2]) - 1] == '\n';
+    if(*part[0] || *part[1] || *part[2]) {
+        char lastc = strlen(part[2]) ? part[2][strlen(part[2]) - 1] : 0;
+        *print_prefix = lastc == '\n' || lastc == '\r';
+    }
 }
 
 void av_log_format_line(void *ptr, int level, const char *fmt, va_list vl,