]> git.sesse.net Git - nageru/blobdiff - nageru/mixer.cpp
Give the theme access to basic audio information.
[nageru] / nageru / mixer.cpp
index 9a86682daa91ca19b2325e3858093f55e80a0a27..d2133346f33d005d87bf392c58e9589914b293b7 100644 (file)
@@ -801,7 +801,8 @@ void Mixer::bm_frame(unsigned card_index, uint16_t timecode,
                //
                // 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()) {
@@ -1137,12 +1138,9 @@ void Mixer::thread_func()
                                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);
                        }
 
                }