Merge pull request #2657 from hselasky/improvement

libobs: Implement and use better scaling function for 64-bit integers
This commit is contained in:
Jim
2020-05-21 18:07:53 -07:00
committed by GitHub
22 changed files with 97 additions and 57 deletions

View File

@@ -1,5 +1,6 @@
#include <obs-module.h>
#include <util/circlebuf.h>
#include <util/util_uint64.h>
#ifndef SEC_TO_NSEC
#define SEC_TO_NSEC 1000000000ULL
@@ -199,7 +200,8 @@ async_delay_filter_audio(void *data, struct obs_audio_data *audio)
filter->last_audio_ts = audio->timestamp;
duration = (uint64_t)audio->frames * SEC_TO_NSEC / filter->samplerate;
duration =
util_mul_div64(audio->frames, SEC_TO_NSEC, filter->samplerate);
end_ts = audio->timestamp + duration;
for (size_t i = 0; i < MAX_AV_PLANES; i++) {

View File

@@ -1,5 +1,6 @@
#include <obs-module.h>
#include <util/circlebuf.h>
#include <util/util_uint64.h>
#define S_DELAY_MS "delay_ms"
#define T_DELAY_MS obs_module_text("DelayMs")
@@ -90,8 +91,7 @@ static inline void check_interval(struct gpu_delay_filter_data *f)
obs_get_video_info(&ovi);
interval_ns =
(uint64_t)ovi.fps_den * 1000000000ULL / (uint64_t)ovi.fps_num;
interval_ns = util_mul_div64(ovi.fps_den, 1000000000ULL, ovi.fps_num);
if (interval_ns != f->interval_ns)
update_interval(f, interval_ns);