if (video_frame) {
video_format.has_signal = !(video_frame->GetFlags() & bmdFrameHasNoInputSource);
- int width = video_frame->GetWidth();
- int height = video_frame->GetHeight();
+ const int width = video_frame->GetWidth();
+ const int height = video_frame->GetHeight();
const int stride = video_frame->GetRowBytes();
const BMDPixelFormat format = video_frame->GetPixelFormat();
assert(format == pixel_format_to_bmd(current_pixel_format));
void DeckLinkCapture::set_video_mode(uint32_t video_mode_id)
{
- if (input->PauseStreams() != S_OK) {
- fprintf(stderr, "PauseStreams failed\n");
- exit(1);
- }
- if (input->FlushStreams() != S_OK) {
- fprintf(stderr, "FlushStreams failed\n");
- exit(1);
+ if (running) {
+ if (input->PauseStreams() != S_OK) {
+ fprintf(stderr, "PauseStreams failed\n");
+ exit(1);
+ }
+ if (input->FlushStreams() != S_OK) {
+ fprintf(stderr, "FlushStreams failed\n");
+ exit(1);
+ }
}
set_video_mode_no_restart(video_mode_id);
- if (input->StartStreams() != S_OK) {
- fprintf(stderr, "StartStreams failed\n");
- exit(1);
+ if (running) {
+ if (input->StartStreams() != S_OK) {
+ fprintf(stderr, "StartStreams failed\n");
+ exit(1);
+ }
}
}