if (config.output->stop)
config.output->stop();
- debug(3, "Shutting down timing, control and audio threads");
+ debug(2, "Cancelling timing, control and audio threads");
pthread_cancel(rtp_timing_thread);
- pthread_join(rtp_timing_thread, NULL);
pthread_cancel(rtp_control_thread);
- pthread_join(rtp_control_thread, NULL);
pthread_cancel(rtp_audio_thread);
+ debug(2, "Joining terminated threads.");
+ pthread_join(rtp_timing_thread, NULL);
+ debug(2, "Timing thread terminated.");
+ pthread_join(rtp_control_thread, NULL);
+ debug(2, "Control thread terminated.");
pthread_join(rtp_audio_thread, NULL);
+ debug(2, "Audio thread terminated.");
clear_reference_timestamp(conn);
conn->rtp_running = 0;
- debug(3, "Freeing audio buffers and decoders.");
+ debug(2, "Freeing audio buffers and decoders.");
free_audio_buffers(conn);
terminate_decoders(conn);
void rtp_audio_receiver_cleanup_handler(void *arg) {
rtsp_conn_info *conn = (rtsp_conn_info *)arg;
close(conn->audio_socket);
+ debug(3,"Audio Receiver Cleanup Successful.");
}
void *rtp_audio_receiver(void *arg) {
void rtp_control_handler_cleanup_handler(void *arg) {
rtsp_conn_info *conn = (rtsp_conn_info *)arg;
close(conn->control_socket);
+ debug(3,"Control Receiver Cleanup Successful.");
}
void *rtp_control_receiver(void *arg) {
pthread_cancel(timer_requester);
pthread_join(timer_requester, NULL);
close(conn->timing_socket);
+ debug(3,"Timing Receiver Cleanup Successful.");
}
void *rtp_timing_receiver(void *arg) {