Changes between Version 1 and Version 2 of UfoCameraTest150422


Ignore:
Timestamp:
Apr 22, 2015, 8:51:45 PM (10 years ago)
Author:
Suren A. Chilingaryan
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • UfoCameraTest150422

    v1 v2  
    1616}}}
    1717* With both 10 and 12 bit modes, asynchronous streaming does not work work.
     18
     19== Analysis ==
     20 * Failures
     21{{{
     22The streaming fails due to the following.
     231) You can't first start streaming and then call pcilib_start. First
     24camera should be started, then, streaming call is allowed. I have
     25changed 'uca_ufo_camera_start_recording' on ipecamera4 to fix the
     26procedure.
     272) On multicore, if the variable can be changed by other thread, you
     28should declare it 'volatile' to avoid gcc optimizations. I have modified
     29declaration of 'n_acquired_frames' in 'grab_frames_async' to
     30        volatile guint n_acquired_frames = 0;
     31
     32
     33I can't reproduce the problems with software triggering in 10bit mode on
     34ipecamera4:
     35ipecamera4:~ # uca-benchmark --num-runs=1 --num-frames=1000
     36--test-software ufo
     37[  sync ] [     auto ]    61.55 Hz    492.42 MB/s
     38[  sync ] [ software ]    85.63 Hz    685.03 MB/s
     39
     40However, there is another bug in UCA which may cause it while switching
     41between sync and async modes. It seems you never clear 'async' mode. So
     42if after async test the sync test will be called, the grab_frames_sync
     43will start asynchronous reading thread and will try to call grab
     44synchronously as well. I.e. you need to clear asynchronous mode. I don't
     45know how you planed to do it, so I have not fixed it.
     46
     47Also, I noticed that in "[ async ] [ software ]" and "[ async ] [
     48external ]" modes, you actually calling sync variant. As I have not seen
     49any software triggering code in grab_async, I guess this is just not
     50implemented yet. But it is quite confused and better complain that mode
     51is not implemented when give sync results instead.
     52}}}
     53 * Low performance is actually due to frame corruption in the hardware explained in [ticket:239]