Skip to content
Snippets Groups Projects
utils.c 91.2 KiB
Newer Older
  • Learn to ignore specific revisions
  •  * Fractionnal addition to f: f = f + (incr / f->den).
    
    Fabrice Bellard's avatar
    Fabrice Bellard committed
     *
     * @param f fractional number
     * @param incr increment, can be positive or negative
     */
    
    static void av_frac_add(AVFrac *f, int64_t incr)
    
        int64_t num, den;
    
    Fabrice Bellard's avatar
    Fabrice Bellard committed
    
        num = f->num + incr;
        den = f->den;
        if (num < 0) {
            f->val += num / den;
            num = num % den;
            if (num < 0) {
                num += den;
                f->val--;
            }
        } else if (num >= den) {
            f->val += num / den;
            num = num % den;
        }
        f->num = num;
    }