57 Commits

Author SHA1 Message Date
Joshua M. Doe
3d10570a8e niimaqsrc: handle latency query and drop unneeded get_times method 2014-01-24 10:02:59 -05:00
Joshua M. Doe
d6fe385cb9 niimaqsrc: add avoid copy mode
Unfortunately IMAQ only lets you examine one buffer at a time, and elements
like queue store up multiple buffers, so avoid-copy=TRUE can only be used in
pipelines without queues or other such elements.

Also, make property strings static.
2014-01-24 10:02:59 -05:00
Joshua M. Doe
ad240b0ae3 niimaq: try to improve accuracy of timestamping
By reducing instructions in callback, and adjusting for base time. This last
part needs testing however.
2014-01-24 10:02:58 -05:00
Joshua M. Doe
4fa97a4290 niimaq: cleanup, remove unused property, organize code 2014-01-24 10:02:58 -05:00
Joshua M. Doe
1b6b14d225 niimaq: organize and cleanup 2014-01-24 10:02:58 -05:00
Joshua M. Doe
07fe523680 niimaq: slightly better debug message for depth/bpp 2014-01-24 10:02:57 -05:00
Joshua M. Doe
9002eb1f70 niimaq: handle byte alignment during copying
Previously if the row stride wasn't a multiple of 4, display would not work
correctly. Rely on NI-IMAQ to fix the byte alignment for us. This hasn't
been thoroughly tested yet however.
2014-01-24 10:02:57 -05:00
Joshua M. Doe
865b416cd0 niimaq: fix buffer offset end 2014-01-24 10:02:57 -05:00
Joshua M. Doe
05cd4f3438 niimaq: use pad_alloc_buffer instead of g_malloc 2014-01-24 10:02:57 -05:00
Joshua M. Doe
48ea4b565d niimaq: more cleanup, rely more on base and video libraries 2014-01-24 10:02:57 -05:00
Joshua M. Doe
7c251fa83a niimaq: use standard video caps
Even though NI-IMAQ can specify 10-, 12-, or 14-bit images, no other standard
element supports it, and in 0.11/1.0 caps are simplified to be gray8/gray16.
We can always add back custom caps if there is a real need for it.
2014-01-24 10:02:56 -05:00
Joshua M. Doe
fa883c1ca1 niimaq: make sure timelist exists before modifying it
Caused seg fault unless delay was introduced (e.g. with debugging messages
on). Still need to investigate why we don't get a timestamp before the
first frame.
2014-01-24 10:02:56 -05:00
Joshua M. Doe
b64d8a18a5 phoenix: remove unused i18n localization functions 2014-01-24 10:02:55 -05:00
Joshua M. Doe
7a904c8f5d niimaq: use video lib caps 2014-01-24 10:02:55 -05:00
Joshua M. Doe
c705237e2e niimaq: add some debug statements and FIXME 2014-01-24 10:02:54 -05:00
Joshua M. Doe
d5409fca8a niimaq: send DateTime tag event 2014-01-24 10:02:53 -05:00
Joshua M. Doe
18f3e03c7e niimaq: fix some bugs regarding valid clocks, etc. 2014-01-24 10:02:53 -05:00
Joshua M. Doe
e5a4257891 niimaq: simplify caps format handling 2014-01-24 10:02:53 -05:00
Joshua M. Doe
2296c487ae style: run gst-indent 2014-01-24 10:02:53 -05:00
Joshua M. Doe
6efc1eb913 Avoid critical error unreffing structure 2014-01-24 10:02:52 -05:00
Joshua M. Doe
13dbcbb0e2 Fix memory leaks 2014-01-24 10:02:52 -05:00
Joshua M. Doe
db54d20753 Add more debugging statements 2014-01-24 10:02:51 -05:00
Joshua M. Doe
cca79973df phoenix: more accurate timestamps, duration and dropped frame count
Timestamp and duration now set using Phoenix timer, recorded at frame start and end (FVAL high then low).

Only more than one dropped frame can be reliably detected.
2014-01-24 10:00:29 -05:00
Joshua M. Doe
9ebfbe4c7d phoenix: add property for number of capture buffers 2014-01-24 10:00:29 -05:00
Joshua M. Doe
c3f3f9897d phoenix: count dropped frames, optimize copying
Dropped frame indicator isn't very accurate, maybe take max of frame_start and frame_end?
2014-01-24 10:00:29 -05:00
Joshua M. Doe
5aece979c5 phoenix: use callbacks to count buffers and detect errors
This way we can detect dropped frames
2014-01-24 10:00:28 -05:00
Joshua M. Doe
6ae2b319c8 phoenix: Initial commit of Active Silicon Phoenix source
Just barely works, no checking for lost/dropped frames, no accurate timestamping, etc.
2014-01-24 10:00:28 -05:00
Joshua M. Doe
35b06f1217 build: only build plugins if dependencies are available 2014-01-24 10:00:28 -05:00
Joshua M. Doe
f3084e002e iotechdaqx: Initial commit
Element works, but not configurable or thoroughly tested.
2014-01-24 10:00:28 -05:00
Joshua M. Doe
390ad794e0 euresys: Show warning if frames have been dropped 2014-01-24 10:00:27 -05:00
Joshua M. Doe
4645490fa1 euresys: Remove unused GstBaseSrc methods, fixing caps negotiation in the process
Removing negotiate() fixed caps handling so we can now display live video.
2014-01-24 10:00:27 -05:00
Joshua M. Doe
d788b025f9 euresys: Fixes to get element working with filesink
Caps aren't correct, but I can correctly save camera output to file.

Many printfs are sprinkled about as I'm having trouble with gst-debug, will remove later.
2014-01-24 10:00:27 -05:00
Joshua M. Doe
8549479892 euresys: Add new plugin for Euresys MultiCam driver (broken)
Untested, but compiles without error.
2014-01-24 10:00:26 -05:00
Joshua M. Doe
eccdfc2703 niimaqsrc: Move into subfolder of sys 2014-01-24 10:00:26 -05:00
Joshua M. Doe
8a2badb718 Reorganized videolevels into separate plugin 2014-01-24 09:58:49 -05:00
Joshua M. Doe
97b2e8be4c niimaqsrc: Timestamp buffers based on time from callback on FRAME_START line
This timestamp should be much more accurate than the time retrieved in GstPushSrc.create, as there should be no latency (or very little).
2014-01-24 09:22:56 -05:00
Joshua M. Doe
4c7e2e9165 niimaqsrc: Timestamp buffers based on time from callback on FRAME_START line
This timestamp should be much more accurate than the time retrieved in GstPushSrc.create, as there should be no latency (or very little).
2014-01-24 09:22:55 -05:00
Joshua M. Doe
1935a8b86e niimaqsrc: Add additional metadata to buffers (offset, duration, timestamp) 2014-01-24 09:22:55 -05:00
Joshua M. Doe
763b869063 niimaqsrc: Refactor pointer to GstNiImaqSrc to niimaqsrc 2014-01-24 09:22:55 -05:00
Joshua M. Doe
666edbe598 niimaqsrc: always return valid caps in get_caps
Return template caps if actual camera caps aren't known yet. Previously resulted in an assertion.
2014-01-24 09:22:55 -05:00
Joshua M. Doe
9b78e8c0f9 niimaqsrc: Report on IMAQ error strings
This should probably be done as a #DEFINE GST_IMAQ_DEBUG or something instead of as a function.
2014-01-24 09:22:54 -05:00
Joshua M. Doe
bfdbf89aa8 niimaqsrc: Output caps supports both actual bpp and bpp=16
The src caps now have two structures, the first contains the actual bpp of the camera, (10, 12, or 14), and the second has the standard bpp=16. This enables the element to be used both with ffmpegcolorspace (and other elements which only accept bpp=16) but also with our elements like videolevels.
2014-01-24 09:22:54 -05:00
Joshua M. Doe
9566ebc6e8 niimaqsrc: Refactor class and function names from niimaq to niimaqsrc 2014-01-24 09:22:54 -05:00
Joshua M. Doe
2fd940a13e niimaqsrc: Move start of acquisition to GstBaseSrc.create from GstBaseSrc.start
This ensures that we can immediately push out buffers.
2014-01-24 09:22:53 -05:00
Joshua M. Doe
1a8eaf552c niimaqsrc: Use IMAQ copyBufferByNumber instead of examineBuffer, memcpy and releaseBuffer
Reduces code and possibly faster.
2014-01-24 09:22:53 -05:00
Joshua M. Doe
45df5409ec niimaqsrc: Add more inline documentation 2014-01-24 09:22:53 -05:00
Joshua M. Doe
af25506097 niimaqsrc: Fix caps negotiation
Set caps to src pad during GstBaseSrc.start.
Use static pad templates instead of dynamically generating caps.
Force bpp to 16 even if IMAQ says 10, 12, 14 (to be fixed in the future by implementing GstBaseSrc.negotiate).
2014-01-24 09:22:51 -05:00
Joshua M. Doe
c380bdfd7c niimaqsrc: remove unused variables 2014-01-24 09:19:30 -05:00
Joshua M. Doe
bc1b73b0ee niimaqsrc: minor formatting changes and doc updates 2014-01-24 09:19:30 -05:00
Joshua M. Doe
91a8ce057e untabify 2014-01-24 09:19:28 -05:00