From: Steinar H. Gunderson Date: Tue, 24 Jan 2017 23:03:57 +0000 (+0100) Subject: Fix transitioning into having no HDMI/SDI output (output_card_index=1). X-Git-Tag: 1.5.0~61 X-Git-Url: https://git.sesse.net/?a=commitdiff_plain;h=709f37d4b7a6be426782b3afb1bbc32cdec8f076;p=nageru Fix transitioning into having no HDMI/SDI output (output_card_index=1). --- diff --git a/mixer.cpp b/mixer.cpp index 855a73f..b5311a3 100644 --- a/mixer.cpp +++ b/mixer.cpp @@ -281,18 +281,19 @@ void Mixer::set_output_card(int card_index) old_card->is_fake_capture = false; old_card->capture->start_bm_capture(); } - - CaptureCard *card = &cards[card_index]; - bmusb::CaptureInterface *capture = card->capture.get(); - lock.unlock(); - capture->stop_dequeue_thread(); - lock.lock(); - card->parked_capture = move(card->capture); - bmusb::CaptureInterface *fake_capture = new FakeCapture(global_flags.width, global_flags.height, FAKE_FPS, OUTPUT_FREQUENCY, card_index, global_flags.fake_cards_audio); - configure_card(card_index, fake_capture, /*is_fake_capture=*/true, card->output.release()); - card->queue_length_policy.reset(card_index); - card->capture->start_bm_capture(); - card->output->start_output(bmdModeHD720p5994, pts_int); // FIXME + if (card_index != -1) { + CaptureCard *card = &cards[card_index]; + bmusb::CaptureInterface *capture = card->capture.get(); + lock.unlock(); + capture->stop_dequeue_thread(); + lock.lock(); + card->parked_capture = move(card->capture); + bmusb::CaptureInterface *fake_capture = new FakeCapture(global_flags.width, global_flags.height, FAKE_FPS, OUTPUT_FREQUENCY, card_index, global_flags.fake_cards_audio); + configure_card(card_index, fake_capture, /*is_fake_capture=*/true, card->output.release()); + card->queue_length_policy.reset(card_index); + card->capture->start_bm_capture(); + card->output->start_output(bmdModeHD720p5994, pts_int); // FIXME + } output_card_index = card_index; }