]> git.sesse.net Git - nageru/blobdiff - nageru/mixer.cpp
Rescale the pts/dts properly in the MJPEG encoder (matters only if we switch mux...
[nageru] / nageru / mixer.cpp
index 9e28d4c25c5abfd3ef622646bcc8dbfe0606cf67..367094cfeb08c35af2a9dfb9fdd1c5a0ae2d4892 100644 (file)
@@ -779,12 +779,12 @@ void Mixer::bm_frame(unsigned card_index, uint16_t timecode,
 
                bool success;
                do {
-                       success = audio_mixer->add_silence(device, silence_samples, dropped_frames, frame_length);
+                       success = audio_mixer->add_silence(device, silence_samples, dropped_frames);
                } while (!success);
        }
 
        if (num_samples > 0) {
-               audio_mixer->add_audio(device, audio_frame.data + audio_offset, num_samples, audio_format, frame_length, audio_frame.received_timestamp);
+               audio_mixer->add_audio(device, audio_frame.data + audio_offset, num_samples, audio_format, audio_frame.received_timestamp);
        }
 
        // Done with the audio, so release it.
@@ -865,6 +865,7 @@ void Mixer::bm_frame(unsigned card_index, uint16_t timecode,
                }
                frame_upload_start = steady_clock::now();
        }
+       assert(userdata != nullptr);
        userdata->last_interlaced = video_format.interlaced;
        userdata->last_has_signal = video_format.has_signal;
        userdata->last_is_connected = video_format.is_connected;
@@ -1081,7 +1082,7 @@ void Mixer::thread_func()
                        }
 
                        // Only bother doing MJPEG encoding if there are any connected clients
-                       // that want the stream.
+                       // that want the stream. FIXME: We should also stop memcpy-ing if there are none!
                        if (httpd.get_num_connected_multicam_clients() > 0) {
                                auto stream_it = global_flags.card_to_mjpeg_stream_export.find(card_index);
                                if (stream_it != global_flags.card_to_mjpeg_stream_export.end()) {