//
// Only bother doing MJPEG encoding if there are any connected clients
// that want the stream.
- if (httpd.get_num_connected_multicam_clients() > 0) {
+ if (httpd.get_num_connected_multicam_clients() > 0 ||
+ httpd.get_num_connected_siphon_clients(card_index) > 0) {
vector<int32_t> converted_samples = convert_audio_to_fixed32(audio_frame.data + audio_offset, num_samples, audio_format, 2);
lock_guard<mutex> lock(card_mutex);
if (card->new_raw_audio.empty()) {
master_card_index = output_card_index;
} else {
master_card_is_output = false;
- master_card_index = theme->map_signal(master_clock_channel);
+ master_card_index = theme->map_signal_to_card(master_clock_channel);
assert(master_card_index < num_cards + num_video_inputs);
}
last_received_neutral_color[card_index] = new_frame->neutral_color;
}
- if (new_frame->frame->data_copy != nullptr) {
- int mjpeg_card_index = mjpeg_encoder->get_mjpeg_stream_for_card(card_index);
- if (mjpeg_card_index != -1) {
- RGBTriplet neutral_color = theme->get_white_balance_for_signal(card_index);
- mjpeg_encoder->upload_frame(pts_int, mjpeg_card_index, new_frame->frame, new_frame->video_format, new_frame->y_offset, new_frame->cbcr_offset, move(raw_audio[card_index]), neutral_color);
- }
+ if (new_frame->frame->data_copy != nullptr && mjpeg_encoder->should_encode_mjpeg_for_card(card_index)) {
+ RGBTriplet neutral_color = theme->get_white_balance_for_signal(card_index);
+ mjpeg_encoder->upload_frame(pts_int, card_index, new_frame->frame, new_frame->video_format, new_frame->y_offset, new_frame->cbcr_offset, move(raw_audio[card_index]), neutral_color);
}
}
pair<string, string> Mixer::get_channels_json()
{
Channels ret;
- for (int channel_idx = 2; channel_idx < theme->get_num_channels(); ++channel_idx) {
+ for (int channel_idx = 0; channel_idx < theme->get_num_channels(); ++channel_idx) {
Channel *channel = ret.add_channel();
- channel->set_index(channel_idx);
- channel->set_name(theme->get_channel_name(channel_idx));
- channel->set_color(theme->get_channel_color(channel_idx));
+ channel->set_index(channel_idx + 2);
+ channel->set_name(theme->get_channel_name(channel_idx + 2));
+ channel->set_color(theme->get_channel_color(channel_idx + 2));
}
string contents;
google::protobuf::util::MessageToJsonString(ret, &contents); // Ignore any errors.