Signed-off-by: Michael Niedermayer <michaelni@gmx.at>tags/n2.2-rc1
| @@ -15,6 +15,9 @@ libavutil: 2012-10-22 | |||||
| API changes, most recent first: | API changes, most recent first: | ||||
| 2014-01-04 - xxxxxxx - lavu 52.60.100 - mathematics.h | |||||
| Add av_add_stable() function. | |||||
| 2013-12-22 - xxxxxxx - lavu 52.59.100 - avstring.h | 2013-12-22 - xxxxxxx - lavu 52.59.100 - avstring.h | ||||
| Add av_strnlen() function. | Add av_strnlen() function. | ||||
| @@ -174,3 +174,17 @@ simple_round: | |||||
| return av_rescale_q(this, fs_tb, out_tb); | return av_rescale_q(this, fs_tb, out_tb); | ||||
| } | } | ||||
| int64_t av_add_stable(AVRational ts_tb, int64_t ts, AVRational inc_tb, int64_t inc) | |||||
| { | |||||
| AVRational step = av_mul_q(inc_tb, (AVRational) {inc, 1}); | |||||
| if (av_cmp_q(step, ts_tb) < 0) { | |||||
| //increase step is too small for even 1 step to be representable | |||||
| return ts; | |||||
| } else { | |||||
| int64_t old = av_rescale_q(ts, ts_tb, step); | |||||
| int64_t old_ts = av_rescale_q(old, step, ts_tb); | |||||
| return av_rescale_q(old + 1, step, ts_tb) + (ts - old_ts); | |||||
| } | |||||
| } | |||||
| @@ -141,6 +141,20 @@ int64_t av_compare_mod(uint64_t a, uint64_t b, uint64_t mod); | |||||
| int64_t av_rescale_delta(AVRational in_tb, int64_t in_ts, AVRational fs_tb, int duration, int64_t *last, AVRational out_tb); | int64_t av_rescale_delta(AVRational in_tb, int64_t in_ts, AVRational fs_tb, int duration, int64_t *last, AVRational out_tb); | ||||
| /** | /** | ||||
| * Add a value to a timestamp. | |||||
| * | |||||
| * This function gurantees that when the same value is repeatly added that | |||||
| * no accumulation of rounding errors occurs. | |||||
| * | |||||
| * @param ts Input timestamp | |||||
| * @param ts_tb Input timestamp timebase | |||||
| * @param inc value to add to ts | |||||
| * @param inc_tb inc timebase | |||||
| */ | |||||
| int64_t av_add_stable(AVRational ts_tb, int64_t ts, AVRational inc_tb, int64_t inc); | |||||
| /** | |||||
| * @} | * @} | ||||
| */ | */ | ||||
| @@ -56,7 +56,7 @@ | |||||
| */ | */ | ||||
| #define LIBAVUTIL_VERSION_MAJOR 52 | #define LIBAVUTIL_VERSION_MAJOR 52 | ||||
| #define LIBAVUTIL_VERSION_MINOR 59 | |||||
| #define LIBAVUTIL_VERSION_MINOR 60 | |||||
| #define LIBAVUTIL_VERSION_MICRO 100 | #define LIBAVUTIL_VERSION_MICRO 100 | ||||
| #define LIBAVUTIL_VERSION_INT AV_VERSION_INT(LIBAVUTIL_VERSION_MAJOR, \ | #define LIBAVUTIL_VERSION_INT AV_VERSION_INT(LIBAVUTIL_VERSION_MAJOR, \ | ||||