Skip to content
Snippets Groups Projects
utils.c 92.4 KiB
Newer Older
  • Learn to ignore specific revisions
  •             if (brk[1] == ':' && port_ptr)
                    *port_ptr = atoi(brk + 2);
            } else if ((col = strchr(p, ':')) && col < ls) {
                av_strlcpy(hostname, p,
                           FFMIN(col + 1 - p, hostname_size));
                if (port_ptr) *port_ptr = atoi(col + 1);
            } else
                av_strlcpy(hostname, p,
                           FFMIN(ls + 1 - p, hostname_size));
    
    void av_set_pts_info(AVStream *s, int pts_wrap_bits,
    
    Fabrice Bellard's avatar
    Fabrice Bellard committed
                         int pts_num, int pts_den)
    {
        s->pts_wrap_bits = pts_wrap_bits;
    
        s->time_base.num = pts_num;
        s->time_base.den = pts_den;
    
    Fabrice Bellard's avatar
    Fabrice Bellard committed
    }
    
    /* fraction handling */
    
    /**
    
     * f = val + (num / den) + 0.5.
     *
     * 'num' is normalized so that it is such as 0 <= num < den.
    
    Fabrice Bellard's avatar
    Fabrice Bellard committed
     *
     * @param f fractional number
     * @param val integer value
     * @param num must be >= 0
    
     * @param den must be >= 1
    
    static void av_frac_init(AVFrac *f, int64_t val, int64_t num, int64_t den)
    
    Fabrice Bellard's avatar
    Fabrice Bellard committed
    {
        num += (den >> 1);
        if (num >= den) {
            val += num / den;
            num = num % den;
        }
        f->val = val;
        f->num = num;
        f->den = den;
    }
    
    /**
    
     * 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;
    }