Differential D25097 Diff 72666 multimedia/obs-studio/files/patch-plugins_decklink_decklink-output.cpp
Changeset View
Changeset View
Standalone View
Standalone View
multimedia/obs-studio/files/patch-plugins_decklink_decklink-output.cpp
- This file was added.
--- plugins/decklink/decklink-output.cpp.orig 2020-04-26 23:47:36 UTC | |||||
+++ plugins/decklink/decklink-output.cpp | |||||
@@ -9,6 +9,7 @@ | |||||
#include "decklink-devices.hpp" | |||||
#include "../../libobs/media-io/video-scaler.h" | |||||
+#include "../../libobs/util/util_uint64.h" | |||||
static void decklink_output_destroy(void *data) | |||||
{ | |||||
@@ -127,8 +128,8 @@ static bool prepare_audio(DeckLinkOutput *decklink, | |||||
*output = *frame; | |||||
if (frame->timestamp < decklink->start_timestamp) { | |||||
- uint64_t duration = (uint64_t)frame->frames * 1000000000 / | |||||
- (uint64_t)decklink->audio_samplerate; | |||||
+ uint64_t duration = util_mul_div64(frame->frames, 1000000000ULL, | |||||
+ decklink->audio_samplerate); | |||||
uint64_t end_ts = frame->timestamp + duration; | |||||
uint64_t cutoff; | |||||
@@ -138,7 +139,8 @@ static bool prepare_audio(DeckLinkOutput *decklink, | |||||
cutoff = decklink->start_timestamp - frame->timestamp; | |||||
output->timestamp += cutoff; | |||||
- cutoff *= (uint64_t)decklink->audio_samplerate / 1000000000; | |||||
+ cutoff = util_mul_div64(cutoff, decklink->audio_samplerate, | |||||
+ 1000000000ULL); | |||||
for (size_t i = 0; i < decklink->audio_planes; i++) | |||||
output->data[i] += |