int stream_reciver::test() { static long la = getCurrentTime(); while(1) { data_pack * tmp = rec(); if (getCurrentTime() - la > 1000000) { printf("timeout"); reset(tmp); } proc_frame(tmp); delete tmp; la = getCurrentTime(); } return 0; }
static void indexer_dv_proc_frame(anim_index_builder *idx, unsigned char *buffer, int UNUSED(data_size), struct anim_index_entry *entry) { int isPAL; indexer_dv_context *This = (indexer_dv_context *) idx->private_data; isPAL = (buffer[3] & 0x80); This->got_record_date = FALSE; This->got_record_time = FALSE; parse_frame(This, buffer, isPAL); proc_frame(This, buffer, isPAL); if (This->curr_frame >= 0) { write_index(This, entry); inc_frame(&This->curr_frame, &This->ref_time_read, isPAL); } else { This->backbuffer[This->fsize++] = *entry; if (This->fsize >= 31) { int i; fprintf(stderr, "indexer_dv::indexer_dv_proc_frame: " "backbuffer overrun, emergency flush"); for (i = 0; i < This->fsize; i++) { write_index(This, This->backbuffer + i); } This->fsize = 0; } } }