RidgeRun / gst-shark

GstShark is a front-end for GStreamer traces
GNU Lesser General Public License v2.1
94 stars 45 forks source link

gstshark-plot error: framerate_process: A(I,J,...) = X: dimensions mismatch #41

Open j1elo opened 5 years ago

j1elo commented 5 years ago

Issue: Trying to run the "combined result comparison" of cpuusage and framerate tracers, as indicated in the Result comparison section of the documentation:

cd gst-shark/scripts/graphics/

GST_DEBUG="GST_TRACER:7" GST_TRACERS="cpuusage;framerate" \
  gst-launch-1.0 videotestsrc num-buffers=900 \
  ! 'video/x-raw, format=(string)YUY2, width=(int)640, height=(int)480, framerate=(fraction)30/1' \
  ! videorate max-rate=30 ! videoconvert ! queue ! avenc_h263p ! queue ! avimux \
  ! fakesink sync=true

./gstshark-plot "gstshark_2018-11-22_18:04:13"

Generates an error message:

./gstshark-plot "gstshark_2018-11-22_18:04:13"
Loading proctime events...
Loading interlatency events...
Loading scheduling events...
Loading cpuusage events...
Loading framerate events...
Processing proctime...
Processing interlatency...
Processing framerate...
error: framerate_process: A(I,J,...) = X: dimensions mismatch
error: called from
    framerate_process at line 70 column 40
    ./gstshark-plot.m at line 29 column 13

Tried with a much simpler pipeline:

GST_DEBUG="GST_TRACER:7" GST_TRACERS="cpuusage;framerate" \
  gst-launch-1.0 videotestsrc ! videorate max-rate=15 ! fakesink

But the error happens, with exactly the same message:

error: framerate_process: A(I,J,...) = X: dimensions mismatch
j1elo commented 5 years ago

Just to give more info, the data in file framerate_values.mat has this form:

[07:00:27.326206000] "rtpsession1_send_rtcp_src", 2
[07:00:27.326239000] "decodebin0_src_0", 16
[07:00:27.326264000] "bin0_src_0", 20
[07:00:27.326282000] "rtpsession3_recv_rtp_src", 34
[07:00:27.326304000] "srtp_encoder_rtcp_src_1", 2
[07:00:27.326316000] "manager_send_rtcp_src_1", 1

I've checked the code of file framerate_process.m. I'm not surprised it doesn't work! The framerate_process.m tries to scanf() the first field as a float value!

In this line:

[val, count] = fscanf(fileID,'%f,',1);

Which seems wrong...

But changing %f to %s still won't work, I think it's because value_mat is a numeric matrix, not a cell array, so the assignment doesn't work as expected.

rrcarlosrodriguez commented 5 years ago

Hi @j1elo,

Could you please give it a try to the latest changes added to Gst-Shark? We released a new version some days ago mainly focused on fixing the plotting functionality