- unsigned long decklinkVideoFormat = GetDecklinkVideoFormat(format_desc.format);\r
- if(decklinkVideoFormat == ULONG_MAX) \r
- BOOST_THROW_EXCEPTION(caspar_exception() << msg_info(narrow(print()) + " Card does not support requested videoformat."));\r
-\r
- d_mode_ = get_display_mode((BMDDisplayMode)decklinkVideoFormat);\r
- if(d_mode_ == nullptr) \r
- BOOST_THROW_EXCEPTION(caspar_exception() << msg_info(narrow(print()) + " Card does not support requested videoformat."));\r
-\r
- BMDDisplayModeSupport displayModeSupport;\r
- if(FAILED(input_->DoesSupportVideoMode((BMDDisplayMode)decklinkVideoFormat, bmdFormat8BitYUV, bmdVideoOutputFlagDefault, &displayModeSupport, nullptr)))\r
- BOOST_THROW_EXCEPTION(caspar_exception() << msg_info(narrow(print()) + " Card does not support requested videoformat."));\r
-\r
- // NOTE: bmdFormat8BitARGB does not seem to work with Decklink HD Extreme 3D\r
- if(FAILED(input_->EnableVideoInput((BMDDisplayMode)decklinkVideoFormat, bmdFormat8BitYUV, 0))) \r
- BOOST_THROW_EXCEPTION(caspar_exception() << msg_info(narrow(print()) + " Could not enable video input."));\r
-\r
- if(FAILED(input_->EnableAudioInput(bmdAudioSampleRate48kHz, bmdAudioSampleType16bitInteger, 2))) \r
- BOOST_THROW_EXCEPTION(caspar_exception() << msg_info(narrow(print()) + " Could not enable audio input."));\r
+ auto display_mode = get_display_mode(input_, format_desc_.format, bmdFormat8BitYUV, bmdVideoInputFlagDefault);\r
+ \r
+ // NOTE: bmdFormat8BitARGB is currently not supported by any decklink card. (2011-05-08)\r
+ if(FAILED(input_->EnableVideoInput(display_mode, bmdFormat8BitYUV, 0))) \r
+ BOOST_THROW_EXCEPTION(caspar_exception() \r
+ << msg_info(narrow(print()) + " Could not enable video input.")\r
+ << boost::errinfo_api_function("EnableVideoInput"));\r
+\r
+ if(FAILED(input_->EnableAudioInput(bmdAudioSampleRate48kHz, bmdAudioSampleType32bitInteger, format_desc_.audio_channels))) \r
+ BOOST_THROW_EXCEPTION(caspar_exception() \r
+ << msg_info(narrow(print()) + " Could not enable audio input.")\r
+ << boost::errinfo_api_function("EnableAudioInput"));\r