[FFmpeg-devel] [PATCH] Set loglevel with strings in ffmpeg.c.
Stefano Sabatini
stefano.sabatini-lala
Mon Jun 15 00:20:27 CEST 2009
On date Friday 2009-06-12 00:46:12 +0200, Michael Niedermayer encoded:
> On Fri, Jun 12, 2009 at 12:27:18AM +0200, Stefano Sabatini wrote:
> > On date Thursday 2009-06-11 18:48:59 -0300, Ramiro Polla encoded:
> > > On Thu, Jun 11, 2009 at 6:30 PM, Michael Niedermayer<michaelni at gmx.at> wrote:
> > > > On Thu, Jun 11, 2009 at 02:08:41PM -0300, Ramiro Polla wrote:
> > > >> $subj makes it more user-friendly, i.e.:
> > > >> ffmpeg -loglevel info -i input output
> > > >>
> > > >> Ramiro Polla
> > > >
> > > >> ?ffmpeg.c | ? 34 ++++++++++++++++++++++++++++++++--
> > > >> ?1 file changed, 32 insertions(+), 2 deletions(-)
> > > >> b69c3b8cd2469ff83024c20d90ce7b5da1fe5117 ?loglevel.diff
> > > >
> > > > iam not sure if this is worth it but i am sure ffmpeg.c is the wrong place
> > > > ffplay & ffserver should also support that
> > >
> > > libavutil/options.c maybe?
> >
> > In order to set an AVOption, that option needs to correspond to a
> > field of a context with an AVClass, which is not the case, so
> > cmdutils.[hc] is the place.
>
> exactly
>
>
> >
> > > I don't want to spend much more time on this patch, but maybe Stefano
> > > wants to pick it up =)
> >
> > I always enjoy to improve the interface and move code from apps to
> > utils code ;-), check attached.
>
> i sometimes feel that you enjoy driving me crazy ;)
That's not intentional, but looks like I'm very talented for it ;-).
> anyway the patch is ok when you split it into cosmetic move
> and functional changes also minor comment below
Yep.
> [...]
> > Index: cmdutils.c
> > ===================================================================
> > --- cmdutils.c (revision 19156)
> > +++ cmdutils.c (working copy)
> > @@ -213,6 +213,42 @@
> > return 0;
> > }
> >
> > +int opt_loglevel(const char *opt, const char *arg)
> > +{
> > + const struct { const char *name; int level; } const log_levels[] = {
> > + { "quiet" , AV_LOG_QUIET },
> > + { "panic" , AV_LOG_PANIC },
> > + { "fatal" , AV_LOG_FATAL },
> > + { "error" , AV_LOG_ERROR },
> > + { "warning", AV_LOG_WARNING },
> > + { "info" , AV_LOG_INFO },
> > + { "verbose", AV_LOG_VERBOSE },
> > + { "debug" , AV_LOG_DEBUG },
> > + };
> > + char *endptr;
> > + int i, level;
> > +
> > + for (i = 0; i < FF_ARRAY_ELEMS(log_levels); i++) {
> > + if (!strcmp(log_levels[i].name, arg)) {
> > + level = log_levels[i].level;
> > + goto set_log_level;
> > + }
> > + }
> > +
> > + level = strtol(arg, &endptr, 10);
> > + if (*endptr) {
> > + fprintf(stderr, "Invalid loglevel \"%s\". "
> > + "Possible levels are numbers or:\n", arg);
> > + for (i = 0; i < FF_ARRAY_ELEMS(log_levels); i++)
> > + fprintf(stderr, "\"%s\"\n", log_levels[i].name);
> > + exit(1);
> > + }
> > +
> > +set_log_level:
> > + av_log_set_level(level);
> > + return 0;
> > +}
>
> as much as i like gotos, this one can be done by just replacing the
> goto with the 2 lines without increasing the number of lines at all
Check attached.
--
FFmpeg = Fast and Freak Mega Prodigious Extravagant Goblin
-------------- next part --------------
A non-text attachment was scrubbed...
Name: ffmpeg-loglevel.patch
Type: text/x-diff
Size: 2425 bytes
Desc: not available
URL: <http://lists.mplayerhq.hu/pipermail/ffmpeg-devel/attachments/20090615/714766f8/attachment.patch>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: move-loglevel-to-cmdutils.patch
Type: text/x-diff
Size: 3519 bytes
Desc: not available
URL: <http://lists.mplayerhq.hu/pipermail/ffmpeg-devel/attachments/20090615/714766f8/attachment-0001.patch>
More information about the ffmpeg-devel
mailing list