diff options
Diffstat (limited to 'libhb/common.c')
-rw-r--r-- | libhb/common.c | 20 |
1 files changed, 20 insertions, 0 deletions
diff --git a/libhb/common.c b/libhb/common.c index 47f1b26f9..3e91635be 100644 --- a/libhb/common.c +++ b/libhb/common.c @@ -694,6 +694,26 @@ const hb_rate_t* hb_video_framerate_get_next(const hb_rate_t *last) return ((hb_rate_internal_t*)last)->next; } +int hb_video_framerate_get_close(hb_rational_t *framerate, double thresh) +{ + double fps_in; + const hb_rate_t * rate = NULL; + int result = -1; + double closest = thresh; + + fps_in = (double)framerate->num / framerate->den; + while ((rate = hb_video_framerate_get_next(rate)) != NULL) + { + double fps = (double)hb_video_rate_clock / rate->rate; + if (ABS(fps - fps_in) < closest) + { + result = rate->rate; + closest = ABS(fps - fps_in); + } + } + return result; +} + int hb_audio_samplerate_get_best(uint32_t codec, int samplerate, int *sr_shift) { int best_samplerate; |