[FFmpeg-devel] [PATCH] avformat/subtitles: ignore extra '\r' at line endings
Clément Bœsch
u at pkh.me
Sat Apr 27 13:05:25 EEST 2019
On Thu, Apr 25, 2019 at 11:22:47PM +0200, Paul B Mahol wrote:
> Signed-off-by: Paul B Mahol <onemda at gmail.com>
> ---
> libavformat/microdvddec.c | 2 ++
> libavformat/subtitles.c | 2 +-
> libavformat/subtitles.h | 2 +-
> 3 files changed, 4 insertions(+), 2 deletions(-)
>
> diff --git a/libavformat/microdvddec.c b/libavformat/microdvddec.c
> index ef6bcfbc73..598093309c 100644
> --- a/libavformat/microdvddec.c
> +++ b/libavformat/microdvddec.c
> @@ -130,6 +130,8 @@ static int microdvd_read_header(AVFormatContext *s)
> continue; \
> } \
> p++
> + if (!*p)
> + continue;
> SKIP_FRAME_ID;
> SKIP_FRAME_ID;
> if (!*p)
This looks unrelated and should probably be much earlier (just after `p =
line`?)
> diff --git a/libavformat/subtitles.c b/libavformat/subtitles.c
> index 93c9ef05cf..659c99d1cf 100644
> --- a/libavformat/subtitles.c
> +++ b/libavformat/subtitles.c
> @@ -417,7 +417,7 @@ ptrdiff_t ff_subtitles_read_line(FFTextReader *tr, char *buf, size_t size)
> buf[cur++] = c;
> buf[cur] = '\0';
> }
> - if (ff_text_peek_r8(tr) == '\r')
> + while (ff_text_peek_r8(tr) == '\r')
> ff_text_r8(tr);
> if (ff_text_peek_r8(tr) == '\n')
> ff_text_r8(tr);
> diff --git a/libavformat/subtitles.h b/libavformat/subtitles.h
> index ca78db224d..6b418e3621 100644
> --- a/libavformat/subtitles.h
> +++ b/libavformat/subtitles.h
> @@ -188,7 +188,7 @@ static av_always_inline int ff_subtitles_next_line(const char *ptr)
> {
> int n = strcspn(ptr, "\r\n");
> ptr += n;
> - if (*ptr == '\r') {
> + while (*ptr == '\r') {
> ptr++;
> n++;
Rest should be fine if it passes FATE.
--
Clément B.
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 488 bytes
Desc: not available
URL: <http://ffmpeg.org/pipermail/ffmpeg-devel/attachments/20190427/90a550c8/attachment.sig>
More information about the ffmpeg-devel
mailing list