Browse Source

avutil: add av_rescale_q_rnd() to allow different rounding

tags/n0.11
Justin Ruggles 13 years ago
parent
commit
0b42a9388c
4 changed files with 19 additions and 3 deletions
  1. +3
    -0
      doc/APIchanges
  2. +1
    -1
      libavutil/avutil.h
  3. +9
    -2
      libavutil/mathematics.c
  4. +6
    -0
      libavutil/mathematics.h

+ 3
- 0
doc/APIchanges View File

@@ -13,6 +13,9 @@ libavutil: 2011-04-18

API changes, most recent first:

2012-02-xx - xxxxxxx - lavu 51.23.1 - mathematics.h
Add av_rescale_q_rnd()

2012-02-xx - xxxxxxx - lavu 51.22.1 - pixdesc.h
Add PIX_FMT_PSEUDOPAL flag.



+ 1
- 1
libavutil/avutil.h View File

@@ -154,7 +154,7 @@
*/

#define LIBAVUTIL_VERSION_MAJOR 51
#define LIBAVUTIL_VERSION_MINOR 22
#define LIBAVUTIL_VERSION_MINOR 23
#define LIBAVUTIL_VERSION_MICRO 1

#define LIBAVUTIL_VERSION_INT AV_VERSION_INT(LIBAVUTIL_VERSION_MAJOR, \


+ 9
- 2
libavutil/mathematics.c View File

@@ -130,10 +130,17 @@ int64_t av_rescale(int64_t a, int64_t b, int64_t c){
return av_rescale_rnd(a, b, c, AV_ROUND_NEAR_INF);
}

int64_t av_rescale_q(int64_t a, AVRational bq, AVRational cq){
int64_t av_rescale_q_rnd(int64_t a, AVRational bq, AVRational cq,
enum AVRounding rnd)
{
int64_t b= bq.num * (int64_t)cq.den;
int64_t c= cq.num * (int64_t)bq.den;
return av_rescale_rnd(a, b, c, AV_ROUND_NEAR_INF);
return av_rescale_rnd(a, b, c, rnd);
}

int64_t av_rescale_q(int64_t a, AVRational bq, AVRational cq)
{
return av_rescale_q_rnd(a, bq, cq, AV_ROUND_NEAR_INF);
}

int av_compare_ts(int64_t ts_a, AVRational tb_a, int64_t ts_b, AVRational tb_b){


+ 6
- 0
libavutil/mathematics.h View File

@@ -95,6 +95,12 @@ int64_t av_rescale_rnd(int64_t a, int64_t b, int64_t c, enum AVRounding) av_cons
*/
int64_t av_rescale_q(int64_t a, AVRational bq, AVRational cq) av_const;

/**
* Rescale a 64-bit integer by 2 rational numbers with specified rounding.
*/
int64_t av_rescale_q_rnd(int64_t a, AVRational bq, AVRational cq,
enum AVRounding) av_const;

/**
* Compare 2 timestamps each in its own timebases.
* The result of the function is undefined if one of the timestamps


Loading…
Cancel
Save