void IDeckLinkInputCallback.VideoInputFormatChanged(_BMDVideoInputFormatChangedEvents notificationEvents, IDeckLinkDisplayMode newDisplayMode, _BMDDetectedVideoInputFormatFlags detectedSignalFlags) { // Restart capture with the new video mode if told to if (!m_applyDetectedInputMode) { return; } var pixelFormat = _BMDPixelFormat.bmdFormat8BitYUV; if (detectedSignalFlags.HasFlag(_BMDDetectedVideoInputFormatFlags.bmdDetectedVideoInputRGB444)) { pixelFormat = _BMDPixelFormat.bmdFormat8BitBGRA; } // Stop the capture m_deckLinkInput.StopStreams(); var displayMode = newDisplayMode.GetDisplayMode(); // Set the video input mode m_deckLinkInput.EnableVideoInput(displayMode, pixelFormat, _BMDVideoInputFlags.bmdVideoInputEnableFormatDetection); // Start the capture m_deckLinkInput.StartStreams(); // Register input format changed event var handler = InputFormatChangedHandler; // Check whether there are any subscribers to InputFormatChangedHandler if (handler != null) { handler(this, new DeckLinkInputFormatChangedEventArgs(notificationEvents, displayMode, pixelFormat)); } }
void IDeckLinkInputCallback.VideoInputFormatChanged(_BMDVideoInputFormatChangedEvents notificationEvents, IDeckLinkDisplayMode newDisplayMode, _BMDDetectedVideoInputFormatFlags detectedSignalFlags) { // Restart capture with the new video mode if told to if (!m_applyDetectedInputMode) { return; } var pixelFormat = _BMDPixelFormat.bmdFormat10BitYUV; if (detectedSignalFlags.HasFlag(_BMDDetectedVideoInputFormatFlags.bmdDetectedVideoInputRGB444)) { pixelFormat = _BMDPixelFormat.bmdFormat10BitRGB; } // Stop the capture m_deckLinkInput.StopStreams(); // Set the video input mode m_deckLinkInput.EnableVideoInput(newDisplayMode.GetDisplayMode(), pixelFormat, _BMDVideoInputFlags.bmdVideoInputEnableFormatDetection); // Start the capture m_deckLinkInput.StartStreams(); InputFormatChanged(newDisplayMode); }
void IDeckLinkInputCallback.VideoInputFormatChanged(_BMDVideoInputFormatChangedEvents notificationEvents, IDeckLinkDisplayMode newDisplayMode, _BMDDetectedVideoInputFormatFlags detectedSignalFlags) { // Restart capture with the new video mode if told to if (!m_applyDetectedInputMode) { return; } var pixelFormat = _BMDPixelFormat.bmdFormat10BitYUV; if (detectedSignalFlags.HasFlag(_BMDDetectedVideoInputFormatFlags.bmdDetectedVideoInputRGB444)) { m_pxFormat = "10 bit RGB"; pixelFormat = _BMDPixelFormat.bmdFormat10BitRGB; } if (detectedSignalFlags.HasFlag(_BMDDetectedVideoInputFormatFlags.bmdDetectedVideoInputYCbCr422)) { m_pxFormat = "10 bit YUV"; pixelFormat = _BMDPixelFormat.bmdFormat10BitYUV; } if (detectedSignalFlags.HasFlag(_BMDDetectedVideoInputFormatFlags.bmdDetectedVideoInputDualStream3D)) { m_pxFormat = "Dual Stream 3D"; pixelFormat = _BMDPixelFormat.bmdFormat10BitYUV; } // Stop the capture m_deckLinkInput.StopStreams(); // Set the video input mode //For upload to GPU we need 8bitYUV // m_deckLinkInput.EnableVideoInput(newDisplayMode.GetDisplayMode(), pixelFormat, _BMDVideoInputFlags.bmdVideoInputEnableFormatDetection); m_deckLinkInput.EnableVideoInput(newDisplayMode.GetDisplayMode(), _BMDPixelFormat.bmdFormat8BitYUV, _BMDVideoInputFlags.bmdVideoInputEnableFormatDetection); m_deckLinkInput.EnableAudioInput(_BMDAudioSampleRate.bmdAudioSampleRate48kHz, _BMDAudioSampleType.bmdAudioSampleType16bitInteger, 16); // Start the capture m_deckLinkInput.StartStreams(); InputFormatChanged(newDisplayMode); }