static void *status_thread(void *arg) { Capture *p = ((thread_arg_t*)arg)->obj; GeneralStats gen; RecordStats rec; while (1) { p->get_general_stats(&gen); if (term) { MT_mvprintw(4,0,"INPUT: video %s audio %s", gen.video_ok ? "OK " : "BAD", gen.audio_ok ? "OK " : "BAD"); } else { printf("INPUT: video %s audio %s\n", gen.video_ok ? "OK " : "BAD", gen.audio_ok ? "OK " : "BAD"); } if (gen.recording) { p->get_record_stats(&rec); if (term) { MT_mvprintw(5,0," : recording: state=%d framecount=%d filesize=%llu\n", rec.record_state, rec.current_framecount, rec.file_size); } else { printf(" recording: state=%d framecount=%d filesize=%llu\n", rec.record_state, rec.current_framecount, rec.file_size); } } else { if (term) MT_mvprintw(5,0," : not recording "); } if (term) usleep(100 * 1000); // every 100 ms else usleep(1000 * 1000); // every second } }