Ticket #921: 0001-correct-reporting-of-2GB-file-sizes.patch

File 0001-correct-reporting-of-2GB-file-sizes.patch, 2.4 KB (added by Adam Clarke, 14 years ago)

[PATCH] correct reporting of +2GB file sizes

  • ffprobe.c

    From 59de2aaee0154420801f279cc976f0a2cc4b1a15 Mon Sep 17 00:00:00 2001
    From: Adam Clarke <aclarke@worldplay.tv>
    Date: Tue, 17 Jan 2012 13:00:44 -0800
    Subject: [PATCH] correct reporting of +2GB file sizes
    
    ---
     ffprobe.c |   14 +++++++-------
     1 files changed, 7 insertions(+), 7 deletions(-)
    
    diff --git a/ffprobe.c b/ffprobe.c
    index 61c66ae..bb1cbb0 100644
    a b void av_noreturn exit_program(int ret)  
    7777}
    7878
    7979struct unit_value {
    80     union { double d; int i; } val;
     80    union { double d; int64_t i; } val;
    8181    const char *unit;
    8282};
    8383
    static char *value_string(char *buf, int buf_size, struct unit_value uv)  
    104104        snprintf(buf, buf_size, "%d:%02d:%09.6f", hours, mins, secs);
    105105    } else if (use_value_prefix) {
    106106        const char *prefix_string;
    107         int index, l;
     107        int64_t index, l;
    108108
    109109        if (uv.unit == unit_byte_str && use_byte_value_binary_prefix) {
    110             index = (int) (log(vald)/log(2)) / 10;
     110            index = (int64_t) (log(vald)/log(2)) / 10;
    111111            index = av_clip(index, 0, FF_ARRAY_ELEMS(binary_unit_prefixes) -1);
    112112            vald /= pow(2, index*10);
    113113            prefix_string = binary_unit_prefixes[index];
    114114        } else {
    115             index = (int) (log10(vald)) / 3;
     115            index = (int64_t) (log10(vald)) / 3;
    116116            index = av_clip(index, 0, FF_ARRAY_ELEMS(decimal_unit_prefixes) -1);
    117117            vald /= pow(10, index*3);
    118118            prefix_string = decimal_unit_prefixes[index];
    119119        }
    120120
    121         if (show_float || vald != (int)vald) l = snprintf(buf, buf_size, "%.3f", vald);
    122         else                                 l = snprintf(buf, buf_size, "%d",   (int)vald);
     121        if (show_float || vald != (int64_t)vald) l = snprintf(buf, buf_size, "%.3f", vald);
     122        else                                 l = snprintf(buf, buf_size, "%ld",   (int64_t)vald);
    123123        snprintf(buf+l, buf_size-l, "%s%s%s", prefix_string || show_value_unit ? " " : "",
    124124                 prefix_string, show_value_unit ? uv.unit : "");
    125125    } else {
    126126        int l;
    127127
    128128        if (show_float) l = snprintf(buf, buf_size, "%.3f", vald);
    129         else            l = snprintf(buf, buf_size, "%d",   (int)vald);
     129        else            l = snprintf(buf, buf_size, "%ld",   (int64_t)vald);
    130130        snprintf(buf+l, buf_size-l, "%s%s", show_value_unit ? " " : "",
    131131                 show_value_unit ? uv.unit : "");
    132132    }