X-Git-Url: https://git.sesse.net/?a=blobdiff_plain;f=decklink_output.cpp;fp=decklink_output.cpp;h=a826dfe22ee95c5588f86edebec1c2ad1ce64ed3;hb=134f9d70a4cd03dc1105d9d94b6003fedcef4760;hp=b3c4c85457dedef75fd1a115fa9b82689ac27599;hpb=5ad8ae0b4287ae6f43f7f7a8d30d69165cc80f99;p=nageru diff --git a/decklink_output.cpp b/decklink_output.cpp index b3c4c85..a826dfe 100644 --- a/decklink_output.cpp +++ b/decklink_output.cpp @@ -242,7 +242,7 @@ void DeckLinkOutput::send_audio(int64_t pts, const std::vector &samples) } } -void DeckLinkOutput::wait_for_frame(int64_t pts, int *dropped_frames, int64_t *frame_duration) +void DeckLinkOutput::wait_for_frame(int64_t pts, int *dropped_frames, int64_t *frame_duration, bool *is_preroll) { assert(!should_quit); @@ -255,9 +255,12 @@ void DeckLinkOutput::wait_for_frame(int64_t pts, int *dropped_frames, int64_t *f // While prerolling, we send out frames as quickly as we can. if (target_time < base_pts) { + *is_preroll = true; return; } + *is_preroll = !playback_started; + if (!playback_started) { if (output->EndAudioPreroll() != S_OK) { fprintf(stderr, "Could not end audio preroll\n");