[FFmpeg-devel] [PATCH] lavf/aviobuf: add ff_get_line2() variant
Michael Niedermayer
michael at niedermayer.cc
Fri Oct 21 02:18:51 EEST 2016
On Thu, Oct 20, 2016 at 04:05:07PM +0200, Stefano Sabatini wrote:
> On date Tuesday 2016-10-18 16:48:02 +0200, Michael Niedermayer encoded:
> > On Tue, Oct 18, 2016 at 01:32:12PM +0200, Stefano Sabatini wrote:
> [...]
> > > aviobuf.c | 18 +++++++++++++++---
> > > internal.h | 14 ++++++++++++++
> > > 2 files changed, 29 insertions(+), 3 deletions(-)
> > > 19b979c45f087997ac69fba2caf5504c933acfc8 0001-lavf-aviobuf-add-ff_get_line2-variant.patch
> > > From 58c1cad434447d48246e153e3a1a391d72d23c7b Mon Sep 17 00:00:00 2001
> > > From: Stefano Sabatini <stefasab at gmail.com>
> > > Date: Thu, 13 Oct 2016 16:36:30 +0200
> > > Subject: [PATCH] lavf/aviobuf: add ff_get_line2() variant
> > >
> > > This allows to probe if the read line was partially discarded.
> > > ---
> > > libavformat/aviobuf.c | 18 +++++++++++++++---
> > > libavformat/internal.h | 14 ++++++++++++++
> > > 2 files changed, 29 insertions(+), 3 deletions(-)
> > >
> > > diff --git a/libavformat/aviobuf.c b/libavformat/aviobuf.c
> > > index 134d627..29bcf1e 100644
> > > --- a/libavformat/aviobuf.c
> > > +++ b/libavformat/aviobuf.c
> > > @@ -764,18 +764,30 @@ unsigned int avio_rb32(AVIOContext *s)
> > >
> > > int ff_get_line(AVIOContext *s, char *buf, int maxlen)
> > > {
> > > - int i = 0;
> > > + return ff_get_line2(s, buf, maxlen, NULL);
> > > +}
> > > +
> > > +int ff_get_line2(AVIOContext *s, char *buf, int maxlen, int *readlen)
> > > +{
> > > + int i = 0, j = 0;
> > > char c;
> > >
> > > + while (1) {
> > > c = avio_r8(s);
> > > if (c && i < maxlen-1)
> > > buf[i++] = c;
> > > + if (c != '\n' && c != '\r' && c) {
> > > + j++;
> > > + } else {
> > > + break;
> > > + }
> > > + }
> >
> > a string like "\n"
> > would have a strlen of 1
> > but readlen of 0
> > while a string like "X" would have a strlen and readlen of 1
> >
> > is this difference intended ?
> > or maybe i misread the code
>
> You're right, I was confused.
>
> Updated patch in attachment, thanks.
> --
> FFmpeg = Frightening and Fierce Moronic Power Elected Geisha
> aviobuf.c | 16 +++++++++++++---
> internal.h | 14 ++++++++++++++
> 2 files changed, 27 insertions(+), 3 deletions(-)
> ff84236587ab1ebec44e4b835a734757c59fd614 0001-lavf-aviobuf-add-ff_get_line2-variant.patch
> From 54a5d3469d4d9a3f17f45e7577da6c46cb7e969e Mon Sep 17 00:00:00 2001
> From: Stefano Sabatini <stefasab at gmail.com>
> Date: Thu, 13 Oct 2016 16:36:30 +0200
> Subject: [PATCH] lavf/aviobuf: add ff_get_line2() variant
>
> This allows to probe if the read line was partially discarded.
> ---
> libavformat/aviobuf.c | 16 +++++++++++++---
> libavformat/internal.h | 14 ++++++++++++++
> 2 files changed, 27 insertions(+), 3 deletions(-)
LGTM
thx
[...]
--
Michael GnuPG fingerprint: 9FF2128B147EF6730BADF133611EC787040B0FAB
If you fake or manipulate statistics in a paper in physics you will never
get a job again.
If you fake or manipulate statistics in a paper in medicin you will get
a job for life at the pharma industry.
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 181 bytes
Desc: Digital signature
URL: <http://ffmpeg.org/pipermail/ffmpeg-devel/attachments/20161021/677a983c/attachment.sig>
More information about the ffmpeg-devel
mailing list