62 lines
1.9 KiB
Mathematica
62 lines
1.9 KiB
Mathematica
|
function plotTimingTest(filename)
|
||
|
fid=fopen(filename);
|
||
|
|
||
|
%DEBUG ; ( 9:53:33:859 | 0) VIDEO:-1 ; 7132; Stochastic test 1
|
||
|
%DEBUG ; ( 9:53:33:859 | 0) VIDEO CODING:-1 ; 7132; Frame decoded: timeStamp=3000 decTime=10 at 10012
|
||
|
%DEBUG ; ( 9:53:33:859 | 0) VIDEO:-1 ; 7132; timeStamp=3000 clock=10037 maxWaitTime=0
|
||
|
%DEBUG ; ( 9:53:33:859 | 0) VIDEO:-1 ; 7132; timeStampMs=33 renderTime=54
|
||
|
line = fgetl(fid);
|
||
|
decTime = [];
|
||
|
waitTime = [];
|
||
|
renderTime = [];
|
||
|
foundStart = 0;
|
||
|
testName = 'Stochastic test 1';
|
||
|
while ischar(line)
|
||
|
if length(line) == 0
|
||
|
line = fgetl(fid);
|
||
|
continue;
|
||
|
end
|
||
|
lineOrig = line;
|
||
|
line = line(72:end);
|
||
|
if ~foundStart
|
||
|
if strncmp(line, testName, length(testName))
|
||
|
foundStart = 1;
|
||
|
end
|
||
|
line = fgetl(fid);
|
||
|
continue;
|
||
|
end
|
||
|
[p, count] = sscanf(line, 'Frame decoded: timeStamp=%lu decTime=%d maxDecTime=%d, at %lu');
|
||
|
if count == 4
|
||
|
decTime = [decTime; p'];
|
||
|
line = fgetl(fid);
|
||
|
continue;
|
||
|
end
|
||
|
[p, count] = sscanf(line, 'timeStamp=%u clock=%u maxWaitTime=%u');
|
||
|
if count == 3
|
||
|
waitTime = [waitTime; p'];
|
||
|
line = fgetl(fid);
|
||
|
continue;
|
||
|
end
|
||
|
[p, count] = sscanf(line, 'timeStamp=%u renderTime=%u');
|
||
|
if count == 2
|
||
|
renderTime = [renderTime; p'];
|
||
|
line = fgetl(fid);
|
||
|
continue;
|
||
|
end
|
||
|
line = fgetl(fid);
|
||
|
end
|
||
|
fclose(fid);
|
||
|
|
||
|
% Compensate for wrap arounds and start counting from zero.
|
||
|
timeStamps = waitTime(:, 1);
|
||
|
tsDiff = diff(timeStamps);
|
||
|
wrapIdx = find(tsDiff < 0);
|
||
|
timeStamps(wrapIdx+1:end) = hex2dec('ffffffff') + timeStamps(wrapIdx+1:end);
|
||
|
timeStamps = timeStamps - timeStamps(1);
|
||
|
|
||
|
figure;
|
||
|
hold on;
|
||
|
plot(timeStamps, decTime(:, 2), 'r');
|
||
|
plot(timeStamps, waitTime(:, 3), 'g');
|
||
|
plot(timeStamps(2:end), diff(renderTime(:, 2)), 'b');
|
||
|
legend('Decode time', 'Max wait time', 'Render time diff');
|