[FFmpeg-devel] [PATCH] ffprobe: print non-time values like integer if they have no decimal part

Michael Niedermayer michaelni at gmx.at
Sun Nov 6 15:02:57 CET 2011


On Sun, Nov 06, 2011 at 02:07:10PM +0100, Stefano Sabatini wrote:
> On date Monday 2011-10-24 04:10:31 +0200, Michael Niedermayer encoded:
> > On Mon, Oct 24, 2011 at 02:40:02AM +0200, Stefano Sabatini wrote:
> > > Prettify, simplify parsing for integer values.
> > > ---
> > >  ffprobe.c |   16 ++++++++++++----
> > >  1 files changed, 12 insertions(+), 4 deletions(-)
> > > 
> > > diff --git a/ffprobe.c b/ffprobe.c
> > > index 5913d60..c21c57c 100644
> > > --- a/ffprobe.c
> > > +++ b/ffprobe.c
> > > @@ -90,11 +90,19 @@ static char *value_string(char *buf, int buf_size, double val, const char *unit)
> > >              prefix_string = decimal_unit_prefixes[index];
> > >          }
> > >  
> > > -        snprintf(buf, buf_size, "%.3f%s%s%s", val, prefix_string || show_value_unit ? " " : "",
> > > -                 prefix_string, show_value_unit ? unit : "");
> > > +        if (val != (int)val)
> > 
> > i think this can crash with nan/inf
> 
> According to C spec:
> 
> 6.3.1.4 Real floating and integer
> 1 When a finite value of real floating type is converted to an integer type other than _Bool,
>   the fractional part is discarded (i.e., the value is truncated toward zero). If the value of
>   the integral part cannot be represented by the integer type, the behavior is undefined.

1 undefined behavior
  behavior, upon use of a nonportable or erroneous program construct or of erroneous data,
  for which this International Standard imposes no requirements
2 NOTE Possible undefined behavior ranges from ignoring the situation completely with unpredictable
  results, to behaving during translation or program execution in a documented manner characteristic of the
  environment (with or without the issuance of a diagnostic message), to terminating a translation or
                                                                      ^^^^^^^^^^^^^^
  execution (with the issuance of a diagnostic message).
  ^^^^^^^^^

[...]
-- 
Michael     GnuPG fingerprint: 9FF2128B147EF6730BADF133611EC787040B0FAB

I am the wisest man alive, for I know one thing, and that is that I know
nothing. -- Socrates
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 198 bytes
Desc: Digital signature
URL: <http://ffmpeg.org/pipermail/ffmpeg-devel/attachments/20111106/f4fa0707/attachment.asc>


More information about the ffmpeg-devel mailing list