diff mbox series

[FFmpeg-devel,5/6] avcodec/movtextenc: Remove redundant byte count

Message ID AM7PR03MB6660582A6236966FF5B0CE8E8F679@AM7PR03MB6660.eurprd03.prod.outlook.com
State Accepted
Commit c4c9d096ae11535dc16e5f61e062b9bda056db3d
Headers show
Series [FFmpeg-devel,1/6] avcodec/movtextenc: Fix infinite loop due to variable truncation | expand

Checks

Context Check Description
andriy/make_x86 success Make finished
andriy/make_fate_x86 success Make fate finished
andriy/make_ppc success Make finished
andriy/make_fate_ppc success Make fate finished

Commit Message

Andreas Rheinhardt Nov. 30, 2021, 10:50 a.m. UTC
Use the AVBPrint's len instead.

Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
---
 libavcodec/movtextenc.c | 8 ++------
 1 file changed, 2 insertions(+), 6 deletions(-)
diff mbox series

Patch

diff --git a/libavcodec/movtextenc.c b/libavcodec/movtextenc.c
index 52e51503d6..112af41093 100644
--- a/libavcodec/movtextenc.c
+++ b/libavcodec/movtextenc.c
@@ -84,7 +84,6 @@  typedef struct {
     uint8_t box_flags;
     StyleBox d;
     uint16_t text_pos;
-    unsigned byte_count;
     char **fonts;
     int font_count;
     double font_scale_factor;
@@ -611,7 +610,6 @@  static void mov_text_text_cb(void *priv, const char *text, int len)
     av_bprint_append_data(&s->buffer, text, len);
     // If it's not utf-8, just use the byte length
     s->text_pos += utf8_len ? utf8_len : len;
-    s->byte_count += len;
 }
 
 static void mov_text_new_line_cb(void *priv, int forced)
@@ -619,7 +617,6 @@  static void mov_text_new_line_cb(void *priv, int forced)
     MovTextContext *s = priv;
     av_bprint_append_data(&s->buffer, "\n", 1);
     s->text_pos += 1;
-    s->byte_count += 1;
 }
 
 static const ASSCodesCallbacks mov_text_callbacks = {
@@ -641,7 +638,6 @@  static int mov_text_encode_frame(AVCodecContext *avctx, unsigned char *buf,
     ASSDialog *dialog;
     int i, length;
 
-    s->byte_count = 0;
     s->text_pos = 0;
     s->count = 0;
     s->box_flags = 0;
@@ -662,9 +658,9 @@  static int mov_text_encode_frame(AVCodecContext *avctx, unsigned char *buf,
         ff_ass_free_dialog(&dialog);
     }
 
-    if (s->byte_count > UINT16_MAX)
+    if (s->buffer.len > UINT16_MAX)
         return AVERROR(ERANGE);
-    AV_WB16(buf, s->byte_count);
+    AV_WB16(buf, s->buffer.len);
     buf += 2;
 
     for (size_t j = 0; j < box_count; j++)