lavc/ccaption_dec: check for bprint completeness outside the loop
authorClément Bœsch <u@pkh.me>
Sat, 9 Jan 2016 11:40:28 +0000 (12:40 +0100)
committerClément Bœsch <u@pkh.me>
Sat, 9 Jan 2016 11:40:50 +0000 (12:40 +0100)
libavcodec/ccaption_dec.c

index e84c480..da7fb37 100644 (file)
@@ -283,7 +283,6 @@ static void roll_up(CCaptionSubContext *ctx)
 static int capture_screen(CCaptionSubContext *ctx)
 {
     int i;
-    int ret = 0;
     struct Screen *screen = ctx->screen + ctx->active_screen;
     enum cc_font prev_font = CCFONT_REGULAR;
     av_bprint_clear(&ctx->buffer);
@@ -330,25 +329,19 @@ static int capture_screen(CCaptionSubContext *ctx)
                     }
                 }
                 prev_font = font[j];
-
                 av_bprintf(&ctx->buffer, "%s%s%c", e_tag, s_tag, row[j]);
             }
-
             av_bprintf(&ctx->buffer, "\\N");
-            ret = av_bprint_is_complete(&ctx->buffer);
-            if (ret == 0) {
-                ret = AVERROR(ENOMEM);
-                break;
-            }
         }
-
     }
+    if (!av_bprint_is_complete(&ctx->buffer))
+        return AVERROR(ENOMEM);
     if (screen->row_used && ctx->buffer.len >= 2) {
         ctx->buffer.len -= 2;
         ctx->buffer.str[ctx->buffer.len] = 0;
     }
     ctx->buffer_changed = 1;
-    return ret;
+    return 0;
 }
 
 static int reap_screen(CCaptionSubContext *ctx, int64_t pts)