[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