- BMDTimeValue pts = frame->pts;
- BMDTimeValue duration = frame->duration;
- HRESULT res = output->ScheduleVideoFrame(frame.get(), pts, duration, TIMEBASE);
- lock_guard<mutex> lock(frame_queue_mutex);
- if (res == S_OK) {
- scheduled_frames.insert(frame.release()); // Owned by the driver now.
- ++metric_decklink_output_inflight_frames;
- } else {
- fprintf(stderr, "Could not schedule video frame! (error=0x%08x)\n", res);
+ if (is_master_card) {
+ BMDTimeValue pts = frame->pts;
+ BMDTimeValue duration = frame->duration;
+ HRESULT res = output->ScheduleVideoFrame(frame.get(), pts, duration, TIMEBASE);
+ lock_guard<mutex> lock(frame_queue_mutex);
+ if (res == S_OK) {
+ scheduled_frames.insert(frame.release()); // Owned by the driver now.
+ ++metric_decklink_output_inflight_frames;
+ } else {
+ fprintf(stderr, "Could not schedule video frame! (error=0x%08x)\n", res);