[FFmpeg-devel] avformat/lrcdec: fix losing opening bracket
Michael Niedermayer
michael at niedermayer.cc
Sat Jul 14 18:07:29 EEST 2018
On Fri, Jul 13, 2018 at 01:34:47PM +0530, Umair Khan wrote:
> On Wed, Jul 11, 2018 at 11:07 PM Michael Niedermayer
> <michael at niedermayer.cc> wrote:
> >
> > On Tue, Jul 10, 2018 at 08:10:00PM +0530, Umair Khan wrote:
> > > Hi,
> > >
> > > Patch attached.
> > >
> > > -Umair
> >
> > > lrcdec.c | 3 +++
> > > 1 file changed, 3 insertions(+)
> > > 6782b07bfa45139361c15527ee5fb78e5893b9ba 0001-avformat-lrcdec-fix-losing-opening-bracket.patch
> > > From 95a5d2e5575c5f895e4251775a48f7deb4c86124 Mon Sep 17 00:00:00 2001
> > > From: Umair Khan <omerjerk at gmail.com>
> > > Date: Tue, 10 Jul 2018 19:51:41 +0530
> > > Subject: [PATCH 1/1] avformat/lrcdec: fix losing opening bracket
> > >
> > > Fixes #7255
> > >
> > > Signed-off-by: Umair Khan <omerjerk at gmail.com>
> > > ---
> > > libavformat/lrcdec.c | 3 +++
> > > 1 file changed, 3 insertions(+)
> > >
> > > diff --git a/libavformat/lrcdec.c b/libavformat/lrcdec.c
> > > index f4e9a4efa9..d1e28aff87 100644
> > > --- a/libavformat/lrcdec.c
> > > +++ b/libavformat/lrcdec.c
> > > @@ -68,6 +68,9 @@ static int64_t count_ts(const char *p)
> > > (p[offset] >= '0' && p[offset] <= '9'))) {
> > > offset++;
> > > } else {
> > > + if (in_brackets) {
> > > + --offset;
> > > + }
> > > break;
> >
> > this is probably ok but it doesnt fix this completely
> >
> > consider 2 [[
> > or a [123
> >
> > The code should probably remember the last position after a correctly
> > parsed timestamp or maybe use sscanf() to parse these timestamps
>
> The new attached patch takes care of these cases.
>
> > Also it seems the code doesnt handle timestamps in the middle of lines
> > (not related to your patch though)
>
> I can handle this case if you can give me an example of what case you
> are talking about exactly.
>
> -Umair
> lrcdec.c | 7 ++++---
> 1 file changed, 4 insertions(+), 3 deletions(-)
> 72feffd56541236991001caaa92e533382b98b53 0001-avformat-lrcdec-fix-losing-opening-bracket.patch
> From 81c2e13aa0a7559886502cfb69f788bd0de7a64a Mon Sep 17 00:00:00 2001
> From: Umair Khan <omerjerk at gmail.com>
> Date: Fri, 13 Jul 2018 13:24:51 +0530
> Subject: [PATCH 1/1] avformat/lrcdec: fix losing opening bracket
>
> ---
> libavformat/lrcdec.c | 7 ++++---
> 1 file changed, 4 insertions(+), 3 deletions(-)
>
> diff --git a/libavformat/lrcdec.c b/libavformat/lrcdec.c
> index f4e9a4efa9..4093cbdf10 100644
> --- a/libavformat/lrcdec.c
> +++ b/libavformat/lrcdec.c
> @@ -60,14 +60,15 @@ static int64_t count_ts(const char *p)
> } else if(p[offset] == '[') {
> offset++;
> in_brackets++;
> - } else if (p[offset] == ']' && in_brackets) {
> - offset++;
> - in_brackets--;
> } else if(in_brackets &&
> (p[offset] == ':' || p[offset] == '.' || p[offset] == '-' ||
> (p[offset] >= '0' && p[offset] <= '9'))) {
> offset++;
> } else {
> + if (p[offset] == ']' && in_brackets) {
> + offset++;
> + in_brackets--;
> + }
> break;
This breaks multiple times like:
[00:35.62][00:35.63][00:35.64][[[[123 is a number
this should be interpreted as 3 occurances of "[[[[123 is a number" IIUC
[...]
--
Michael GnuPG fingerprint: 9FF2128B147EF6730BADF133611EC787040B0FAB
The educated differ from the uneducated as much as the living from the
dead. -- Aristotle
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 181 bytes
Desc: not available
URL: <http://ffmpeg.org/pipermail/ffmpeg-devel/attachments/20180714/3bc40714/attachment.sig>
More information about the ffmpeg-devel
mailing list