On Fri, 23 Oct 2015 00:10:20 +0100
Derek Buitenhuis <[email protected]> wrote:
> On 10/22/2015 11:04 PM, Tinglin Liu wrote:
> > + } else if (data_type == 23 && str_size >= 4) { // BE float32
> > + union av_intfloat32 val;
> > + val.i = avio_rb32(pb);
>
> I found we have a function to to this: av_int2float().
>
> > + if (snprintf(str, str_size_alloc, "%f", val.f) >=
> > str_size_alloc) {
>
> snprintf can never return a value greater than the length passed to it, so
> just == is fine.
Wrong, snprintf() always returns the number of characters the string
would have been, even if the buffer size is smaller.
Also, str_size_alloc is unsigned, so in theory this catches cases when
snprintf fails (negative return value) too. But probably doesn't matter
here.
Also, shouldn't this use some av_ wrapper? What about locale issues?
Some locales won't print a "." but a ",".
_______________________________________________
ffmpeg-devel mailing list
[email protected]
http://ffmpeg.org/mailman/listinfo/ffmpeg-devel