X-Git-Url: https://git.sesse.net/?a=blobdiff_plain;f=decklink_output.cpp;fp=decklink_output.cpp;h=a3d220b37c98bb96834415af5a277c47424b83cb;hb=3fd3a00f3f70d28377c4d876746e1a8849e422bd;hp=091e1b769018026af491d34b4d0df63bd7f2b5c0;hpb=27af21bd4b1d1638841a580d6a61608da08a8229;p=nageru diff --git a/decklink_output.cpp b/decklink_output.cpp index 091e1b7..a3d220b 100644 --- a/decklink_output.cpp +++ b/decklink_output.cpp @@ -82,17 +82,17 @@ DeckLinkOutput::DeckLinkOutput(ResourcePool *resource_pool, QSurface *surface, u }); } -void DeckLinkOutput::set_device(IDeckLink *decklink) +bool DeckLinkOutput::set_device(IDeckLink *decklink) { if (decklink->QueryInterface(IID_IDeckLinkOutput, (void**)&output) != S_OK) { - fprintf(stderr, "Card %u has no outputs\n", card_index); - exit(1); + fprintf(stderr, "Warning: Card %u has no outputs\n", card_index); + return false; } IDeckLinkDisplayModeIterator *mode_it; if (output->GetDisplayModeIterator(&mode_it) != S_OK) { - fprintf(stderr, "Failed to enumerate output display modes for card %u\n", card_index); - exit(1); + fprintf(stderr, "Warning: Failed to enumerate output display modes for card %u\n", card_index); + return false; } video_modes.clear(); @@ -118,6 +118,7 @@ void DeckLinkOutput::set_device(IDeckLink *decklink) // if they exist. We're not very likely to need analog outputs, so we don't need a way // to change beyond that. video_connection = pick_default_video_connection(decklink, BMDDeckLinkVideoOutputConnections, card_index); + return true; } void DeckLinkOutput::start_output(uint32_t mode, int64_t base_pts)