mirror of
https://git.videolan.org/git/ffmpeg.git
synced 2024-08-20 00:05:06 +02:00
avcodec/movtextdec: Skip empty styles
They would either lead to unnecessary ASS tags being emitted (namely tags that are reset immediately thereafter) or would lead to problems when parsing: e.g. if a zero-length style immediately follows another style, the current code will end the preceding style and set the zero-length style as the next potentially active style, but it is only tested for activation when the next character is parsed at which point the current offset is already greater than both the starting as well as the end offset of the empty style. It will therefore neither be opened nor closed and all subsequent styles will be ignored. Reviewed-by: Philip Langdale <philipl@overt.org> Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@gmail.com>
This commit is contained in:
parent
94ad68ee17
commit
40c16907bb
@ -302,6 +302,14 @@ static int decode_styl(const uint8_t *tsmb, MovTextContext *m, AVPacket *avpkt)
|
|||||||
}
|
}
|
||||||
|
|
||||||
tsmb += 2;
|
tsmb += 2;
|
||||||
|
if (style->style_start == style->style_end) {
|
||||||
|
/* Skip this style as it applies to no character */
|
||||||
|
tsmb += 8;
|
||||||
|
m->style_entries--;
|
||||||
|
i--;
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
style->style_fontID = AV_RB16(tsmb);
|
style->style_fontID = AV_RB16(tsmb);
|
||||||
tsmb += 2;
|
tsmb += 2;
|
||||||
style->style_flag = AV_RB8(tsmb);
|
style->style_flag = AV_RB8(tsmb);
|
||||||
|
Loading…
Reference in New Issue
Block a user