[FFmpeg-devel] [PATCH] Implement read_file() cmdutils.c option
Stefano Sabatini
stefano.sabatini-lala
Wed Mar 31 22:06:33 CEST 2010
On date Tuesday 2010-03-30 15:22:54 +0200, Michael Niedermayer encoded:
> On Tue, Mar 30, 2010 at 01:38:02AM +0200, Stefano Sabatini wrote:
> [...]> diff --git a/cmdutils.c b/cmdutils.c
> > index 1ffe2e8..f561316 100644
> > --- a/cmdutils.c
> > +++ b/cmdutils.c
> > @@ -639,3 +639,26 @@ int read_yesno(void)
> >
> > return yesno;
> > }
> > +
>
> > +int read_file(const char *filename, char **bufptr, int *size)
>
> int is the wrong type for an array size
Yes, size_t looks more correct, that's also what is returned by fread().
>
> > +{
> > + FILE *f = fopen(filename, "r");
> > +
> > + if (!f) {
> > + fprintf(stderr, "Cannot read file '%s': %s\n", filename, strerror(errno));
> > + return AVERROR(errno);
> > + }
> > + fseek(f, 0, SEEK_END);
>
> > - size = ftell(f);
> > + *size = ftell(f) + 1;
>
> you mess +-1 up
Well like this or either I don't care.
> [...]
> > diff --git a/cmdutils.h b/cmdutils.h
> > index 9190a81..6d12a97 100644
> > --- a/cmdutils.h
> > +++ b/cmdutils.h
> > @@ -200,4 +200,15 @@ void show_pix_fmts(void);
> > */
> > int read_yesno(void);
> >
> > +/**
> > + * Reads the file with name filename, and puts its content in a newly
> > + * allocated 0-terminated buffer.
> > + *
> > + * @param bufptr puts here the pointer to the newly allocated buffer
> > + * @param size puts here the size of the newly allocated buffer
> > + * @return 0 in case of success, a negative value corresponding to an
> > + * AVERROR error code in case of failure.
>
> why not return the size?
size_t is unsigned, returning a negative error code looks nicer and
easier to integrate.
Regards.
--
FFmpeg = Fierce Formidable Maxi Proud Ephemeral Guru
More information about the ffmpeg-devel
mailing list