EducationalTestingService / Confero

Eye-tracking, Screen and Event Capturing System for Windows. A web application running on a separate PC allows for real time monitoring of the users actions.
GNU General Public License v3.0
9 stars 1 forks source link

videvt2ssa no output when gaze event time is larger than the initial video frame end time #106

Closed garyfeng closed 8 years ago

garyfeng commented 8 years ago

videvt2ssa.py sometimes fail to output the SSA file when everything else seems to work. In a particular case, I have identified a bug as the follows.

At around line 400 of the file, we have code:

                if evt_time >= fstart_time:
                    if evt_time < fend_time:
                        event_count += 1
                        video_frame_events[frame_num].append((
                            vi, frame_num, fstart_time/1000.0,
                            e['time'], e[X_COL], e[Y_COL], e['status']))
                    else:
                        # garyfeng
                        if PRINT_VERBOSE:
                            if(video_frame_events[frame_num]):
                                printf("        ", video_frame_events[frame_num])
                        # garyfeng
                        # if the evt_time is larger than the current fend_time
                        # we need to FF the frames until they match. 

This ensures that evt_time is larger than fstart_time. If evt_time > fend_time, though, the current code will

The result of advancing both is that some times you never catch up.

The solution is to advance the frame_num until the fend_time eventually catches up with the evt_time. This is fixed with adding a while() block to advance the frame_num.

while(evt_time > fend_time):

This fixed the problem. Similar problem may have occurred in the past that resulted false missing data. One user reported having recovered significant amount of data after this fix.