1470e71d3649f6cac4688e83819640b012b5d38bbniklase@google.comfunction plotTimingTest(filename) 2470e71d3649f6cac4688e83819640b012b5d38bbniklase@google.comfid=fopen(filename); 3470e71d3649f6cac4688e83819640b012b5d38bbniklase@google.com 4470e71d3649f6cac4688e83819640b012b5d38bbniklase@google.com%DEBUG ; ( 9:53:33:859 | 0) VIDEO:-1 ; 7132; Stochastic test 1 5470e71d3649f6cac4688e83819640b012b5d38bbniklase@google.com%DEBUG ; ( 9:53:33:859 | 0) VIDEO CODING:-1 ; 7132; Frame decoded: timeStamp=3000 decTime=10 at 10012 6470e71d3649f6cac4688e83819640b012b5d38bbniklase@google.com%DEBUG ; ( 9:53:33:859 | 0) VIDEO:-1 ; 7132; timeStamp=3000 clock=10037 maxWaitTime=0 7470e71d3649f6cac4688e83819640b012b5d38bbniklase@google.com%DEBUG ; ( 9:53:33:859 | 0) VIDEO:-1 ; 7132; timeStampMs=33 renderTime=54 8470e71d3649f6cac4688e83819640b012b5d38bbniklase@google.comline = fgetl(fid); 9470e71d3649f6cac4688e83819640b012b5d38bbniklase@google.comdecTime = []; 10470e71d3649f6cac4688e83819640b012b5d38bbniklase@google.comwaitTime = []; 11470e71d3649f6cac4688e83819640b012b5d38bbniklase@google.comrenderTime = []; 12470e71d3649f6cac4688e83819640b012b5d38bbniklase@google.comfoundStart = 0; 13470e71d3649f6cac4688e83819640b012b5d38bbniklase@google.comtestName = 'Stochastic test 1'; 14470e71d3649f6cac4688e83819640b012b5d38bbniklase@google.comwhile ischar(line) 15470e71d3649f6cac4688e83819640b012b5d38bbniklase@google.com if length(line) == 0 16470e71d3649f6cac4688e83819640b012b5d38bbniklase@google.com line = fgetl(fid); 17470e71d3649f6cac4688e83819640b012b5d38bbniklase@google.com continue; 18470e71d3649f6cac4688e83819640b012b5d38bbniklase@google.com end 19470e71d3649f6cac4688e83819640b012b5d38bbniklase@google.com lineOrig = line; 20470e71d3649f6cac4688e83819640b012b5d38bbniklase@google.com line = line(72:end); 21470e71d3649f6cac4688e83819640b012b5d38bbniklase@google.com if ~foundStart 22470e71d3649f6cac4688e83819640b012b5d38bbniklase@google.com if strncmp(line, testName, length(testName)) 23470e71d3649f6cac4688e83819640b012b5d38bbniklase@google.com foundStart = 1; 24470e71d3649f6cac4688e83819640b012b5d38bbniklase@google.com end 25470e71d3649f6cac4688e83819640b012b5d38bbniklase@google.com line = fgetl(fid); 26470e71d3649f6cac4688e83819640b012b5d38bbniklase@google.com continue; 27470e71d3649f6cac4688e83819640b012b5d38bbniklase@google.com end 28470e71d3649f6cac4688e83819640b012b5d38bbniklase@google.com [p, count] = sscanf(line, 'Frame decoded: timeStamp=%lu decTime=%d maxDecTime=%d, at %lu'); 29470e71d3649f6cac4688e83819640b012b5d38bbniklase@google.com if count == 4 30470e71d3649f6cac4688e83819640b012b5d38bbniklase@google.com decTime = [decTime; p']; 31470e71d3649f6cac4688e83819640b012b5d38bbniklase@google.com line = fgetl(fid); 32470e71d3649f6cac4688e83819640b012b5d38bbniklase@google.com continue; 33470e71d3649f6cac4688e83819640b012b5d38bbniklase@google.com end 34470e71d3649f6cac4688e83819640b012b5d38bbniklase@google.com [p, count] = sscanf(line, 'timeStamp=%u clock=%u maxWaitTime=%u'); 35470e71d3649f6cac4688e83819640b012b5d38bbniklase@google.com if count == 3 36470e71d3649f6cac4688e83819640b012b5d38bbniklase@google.com waitTime = [waitTime; p']; 37470e71d3649f6cac4688e83819640b012b5d38bbniklase@google.com line = fgetl(fid); 38470e71d3649f6cac4688e83819640b012b5d38bbniklase@google.com continue; 39470e71d3649f6cac4688e83819640b012b5d38bbniklase@google.com end 40470e71d3649f6cac4688e83819640b012b5d38bbniklase@google.com [p, count] = sscanf(line, 'timeStamp=%u renderTime=%u'); 41470e71d3649f6cac4688e83819640b012b5d38bbniklase@google.com if count == 2 42470e71d3649f6cac4688e83819640b012b5d38bbniklase@google.com renderTime = [renderTime; p']; 43470e71d3649f6cac4688e83819640b012b5d38bbniklase@google.com line = fgetl(fid); 44470e71d3649f6cac4688e83819640b012b5d38bbniklase@google.com continue; 45470e71d3649f6cac4688e83819640b012b5d38bbniklase@google.com end 46470e71d3649f6cac4688e83819640b012b5d38bbniklase@google.com line = fgetl(fid); 47470e71d3649f6cac4688e83819640b012b5d38bbniklase@google.comend 48470e71d3649f6cac4688e83819640b012b5d38bbniklase@google.comfclose(fid); 49470e71d3649f6cac4688e83819640b012b5d38bbniklase@google.com 50470e71d3649f6cac4688e83819640b012b5d38bbniklase@google.com% Compensate for wrap arounds and start counting from zero. 51470e71d3649f6cac4688e83819640b012b5d38bbniklase@google.comtimeStamps = waitTime(:, 1); 52470e71d3649f6cac4688e83819640b012b5d38bbniklase@google.comtsDiff = diff(timeStamps); 53470e71d3649f6cac4688e83819640b012b5d38bbniklase@google.comwrapIdx = find(tsDiff < 0); 54470e71d3649f6cac4688e83819640b012b5d38bbniklase@google.comtimeStamps(wrapIdx+1:end) = hex2dec('ffffffff') + timeStamps(wrapIdx+1:end); 55470e71d3649f6cac4688e83819640b012b5d38bbniklase@google.comtimeStamps = timeStamps - timeStamps(1); 56470e71d3649f6cac4688e83819640b012b5d38bbniklase@google.com 57470e71d3649f6cac4688e83819640b012b5d38bbniklase@google.comfigure; 58470e71d3649f6cac4688e83819640b012b5d38bbniklase@google.comhold on; 59470e71d3649f6cac4688e83819640b012b5d38bbniklase@google.complot(timeStamps, decTime(:, 2), 'r'); 60470e71d3649f6cac4688e83819640b012b5d38bbniklase@google.complot(timeStamps, waitTime(:, 3), 'g'); 61470e71d3649f6cac4688e83819640b012b5d38bbniklase@google.complot(timeStamps(2:end), diff(renderTime(:, 2)), 'b'); 62470e71d3649f6cac4688e83819640b012b5d38bbniklase@google.comlegend('Decode time', 'Max wait time', 'Render time diff');