Граф коммитов

139 Коммитов

Автор SHA1 Сообщение Дата
Tsukasa Sugiura f210de35d5
Fix compile error for std::nothrow (#1560)
Fix C2039, and C2065
2021-04-09 11:51:22 +03:00
Tomoaki Teshima b033d2e552
Added NEON support where SSE is supported (#1150)
* Added NEON support where SSE is supported
* Adding Tests
* Fixed x86 flag
* Co-authored-by: Wes Barcalow <wesbarc@microsoft.com>
2020-04-13 13:43:25 -07:00
wes-b 2477f54992
Imu_ft is failing in automation (#1141)
Decouple IMU sample timing from image arrival:
2020-03-19 15:00:27 -07:00
wes-b 078e72194f
Imu sample timestamps off (#1139)
* Drops the first 10 samples waiting for depth and color camera to stabilize
* Turns off synchronized image only so that a depth or color image drop will not cause the entire test to pause and IMU data backup.
2020-03-18 21:48:22 -07:00
wes-b cb3cbba8ec
ARM64 now runs multi device tests (#1123)
But the max speed is 15FPS.
2020-03-11 21:26:40 -07:00
wes-b 8cae3cd2ff
IMU_FT: Added debug message (#1110)
* added debug message

* adding more debug info to message as I can't repro easily
2020-03-09 15:18:46 -07:00
wes-b 698190f14e
Turning test back on now that we have firmware fix (#1115) 2020-03-09 13:57:07 -07:00
wes-b 52cfb4a876
Latency (#1085)
* Latency Measuring test was added

* Latency Test Added

* Added Test to IMU_ft to ensure IMU and color device timestamps measured up

* updated

* Test speed up

* Remove useless EXPECT_EQ comparing the same 64ints

* Fixing Clang breaks

* Fixing Clang breaks

Co-authored-by: Paul McElroy <pcm1123@gmail.com>
2020-03-04 17:36:00 -08:00
wes-b 7fa290d4fd
Adding command line parameters to multi_sync_validation test (#1030)
* Updating test to allow command line overrides

* Cleaning up warning and error when 2 devices are not meeting the expected frame rate
2020-01-22 15:09:40 -08:00
Jacob Wirth a227f73b8c
Allow recording BGRA color, and add warning for slow disk speeds (#967)
* Allow recording BGRA color, and add warning for slow disk speeds

* Update docs around test case
2019-12-11 14:54:38 -08:00
wes-b 78fc33a447
test now called for platforms (#957) 2019-12-05 14:47:53 -08:00
wes-b b66e43056a
C++ for recorder (#912)
* header is compilable, needs comments, tests, and final review
* Updated Playback for custom tracks
* cleanup up interfaces to be consistent with k4a.h
* updated changelog.md
2019-12-03 15:23:59 -08:00
wes-b b489fa16fd
Updates for FW 1.6.107078014 (#929)
* Clean up delays in Multidevice test, update gain test for new default, add warning message to capture sync if too many images are being dropped.

* update

* added k4a.hpp back

* removed unneeded log

* Update tests/UnitTests/utcommon/inc/utcommon.h

Co-Authored-By: Matt Schulte <schultetwin1@gmail.com>

* Addressing feedback

* addressing feedback
2019-12-03 15:17:40 -08:00
wes-b 3b8d2ece25
Minor Fixes Error Messages, K4aViewer Button, Multi Device Tests (#876)
* 1) better error messages around multi device delay settings being wrong, 2) a random number generating function, 3) Code uses random number generating common function, adn 4) K4aViewer now has a button to refresh the color controls if they change via firmware state change.

* Fixing build break

* Fixing Build Breaks

* Update src/capturesync/capturesync.c

* Update src/capturesync/capturesync.c

* Update src/capturesync/capturesync.c

* fixed build breaks

* Enhanced debug output
2019-11-08 13:19:12 -08:00
wes-b a144b6fbe3
Use new firmware 1.6.104075014 (#824)
* ready

* cleaned up and works with released FW

* removed cmake verbose message

* cp

* added Multidevice tests

* updated NuGet package name

* Fix Linux build break

* address feedback and fixed build issue

* Fixed build break

* Fixed Master/Subordinate detection logic
2019-10-09 15:16:27 -07:00
Brent Allen 85f9b9217f
Enabled implicit stride in k4a_image_create (#819)
* Enabled implicit stride in k4a_image_create
* Added note on default parameters to standards.md
2019-10-08 11:29:26 -07:00
wes-b a8b1a8ad4e
Changes made to emphasize Depth Engine version and deemphasize plugin… (#802)
* Changes made to emphasize Depth Engine version and deemphasize plugin version. Added trace message to Windows and Linux to log path to loaded depth engine.

* removing unused _GNU_SOURCE

* switching plugin version to a single version and decoupling from depth engine version. Also attempting to make it clearing the number onthe depth engine binary is the plugin version not the depth engine version.

* Updating k4aplugin.h comments, and fixing plugin name length allocation.

* address PR feedback

* Updating NuGet version
2019-10-04 14:07:30 -07:00
Derek M 01b9e68c95
Fixing a typo in the Firmware Tests. (#814) 2019-10-03 13:25:46 -07:00
wes-b cc52b0161c
Expanded exposure tests to include checking image exposure (#794)
* expanded exposure tests to include checking image exposure
* updated comment
* rename variable to make GTEST output more readable
2019-10-02 14:29:17 -07:00
wes-b 05d97d1ac0
Depth loader thread safety (#766)
* fixed threading issue when starting multiple camera's at the same time.

* disabled parallel start on Linux and opened issue 769 to track
2019-09-17 10:18:17 -07:00
Matt Schulte 74c0c1c616
Properly Sets default visibility of functions (#763)
* Properly Sets default visibility of functions

* Export functions in dynlib unit tests

* Removed old macros

* Add documentation to the policy

* Fixed typo
2019-09-13 14:41:05 -07:00
Andrew Duan cca87fc36a Add comments and logs to clarify unsupported/deprecated calibration model (#757)
* Add comments and logs to clarify deprecated/unsupported calibration model

* Update tests

* Addressing comments

* clang format fix
2019-09-12 14:40:54 -07:00
wes-b 15b116708b
Dynamically link the C++ runtime (#730)
* green screen builds and runs in debug

* added opencv_example

* Removed MSVCStaticCrt.cmake, updated changelog.md

* changed CRT linking for libjpeg-turbo

* Cleaned up WITH_CRT_DLL directive in libjpeg-turbo

* fixed flush issues with streaming test and 1 off failures, all executable_ft tests dump logs, updated link in MD to point to Azure Kinect user voice
2019-09-09 16:17:52 -07:00
wes-b 467d8272fa
Green Screen tests should not run as part of functional tests (#729)
* Ready for automation

* address PR comments and cleaned up other MD files based on the feedback.
2019-09-06 14:47:44 -07:00
wes-b 32afd03684
Green Screen Test fails in low light, Adding Chessboard pattern (#736)
* Adding chessboard to the build, and increasing test reliability in now light.

* increase calibration timeout

* formatting build break
2019-09-06 13:06:53 -07:00
wes-b 3c47d45ddd
Error message cleanup (#695)
* Cleaning up error messages

* removed variable LIBUSB logging level

* Updating changelog.md

* Clang build fix
2019-09-03 16:03:54 -07:00
Steven Schulte ed6f22bf7d
Add Green Screen example (#619)
* Added beginnings of greenscreen example

* More progress, try/catch

* runs and sometimes gets all captures

* WIP, but closer.

* Single-camera greenscreen works! But it's slow

* it's getting closer to working now and that's cool

* further progress, not compiling

* Calibration runs, unclear if correct

* still WIP but coming along

* still not working- calibration may not even be necessary

* closer to working, sane results but not similar when moving calibration board

* Still not perfect but consistently good

* homogeneous matrix constructed reasonably

* Greening partially working

* CLeanup and fix averaging incorrectness

* Added fix for reversed calibration points bug

* Mostly comments

* Working on a refactor and adding lots of explanation

* Started refactor, fixed images desynchronizing

* Better debugging and not dropping as many frames

* debug commit

* fixed slowness, starting to come together

* More refactoring, mostly towards fewer vectors

* yet more refactoring

* Comment changes and made some long code a function

* Removed unnecessary try-catch

* More comments, cleanup, and less output params

* Less output parameters

* deleted extraneous function

* Refactor a function to not have output args

* another output param refactor

* reformat comments

* Added command-line options and fixed chessboard size issues

* Explain some constants

* Account for subordinate color-to-depth delay

* threshold now a command line arg

* Use Matx and factored transformation code mostly out

* Only use one configuration object for each

* Moved synchronization logic to MultiDeviceCapturer

* minor comment clarifications

* Cleaned up displaying a bit

* Improved greenscreening logic

* Calibration now uses many images

* Minor cleanup

* Fixed unclear indentation of comments

* It's 'green screen', not 'greenscreen'

* clangformat wants this, though it's not very clear

* Set background completely green

* Fixed incorrect usage of calibration

* Added WIP README that provides info + background

* Changed master-sub to main-backup in main to clarify purpose of devices

* Hopefully sets up OpenCV as a dependency properly

* Fixed typo in opencv install

* Pre-search was failing, so don't pre-search

* Construct new calibration object, not modify old

* Consistency in camera name ordering

* Fix out-of-date comment

* More explanatory comment on transformations

* Added copyright headers

* Backup to secondary, hopefully more clear

* Added more and better error messages

* Refactor to not have vector of devices exposed

* Remove GetOpt dependency, debug viz

* Fixed issues with the merge

* Attempt to get OpenCV conditionally required

* Fix up some CMake issues and installation issues

* Missed update to yaml

* Added OpenCV library folder

* Try to include opencv2 includes

* Should not use that include dir like that

* Install opencv from binaries on Windows attempt

* Install opencv, add to path, tell cmake

* Set env vars with logging commands

* Don't bother with OpenCV for x86 builds

* removed files that snuck in

* Don't get OpenCV unless it's a 64-bit OS

* Don't try OpenCV if we're building for x86

* no space

* fail when decoding fails

* Compile opencv example properly

* Modify build because we need to know target arch

* removed endif which causes compilation failure

* Fixed up warning

* Attempt to be able to use one or two cameras

* Should properly check arch now for installing OpenCV

* Needed quotes

* Attempt to clean up azure pipelines logic

* I don't actually know Azure Pipelines

* Attempted cmake config fix

* use variables better?

* Don't think I should use expressions there

* Another attempt to fix Azure Pipelines issues

* Fixed weird opencv error by using BGRA not MJPG

* One-device and two-device greenscreen modes work

* Fixed OpenCV example test

* Clarified comment

* Temporarily disable Linux testing until test infra updated

* attempt to fix occasional OpenCV download failures

* Need PS6 for retry options

* Don't install OpenCV unless specified. Fixes Linux build, hopefully

* Add options for calibration timeouts and greenscreen duration

* Now no longer assume OpenCV is required on Linux

* Added single and double camera greenscreen example tests

* Adjusted numbers in script for different calibration board in testing

* See if issue is PATH or similar

* Added better logging for error for functional unit tests

* install opencv on test machine

* Hopefully fix some of the issues with functional tests

* Factor out install of opencv into a script

* OpenCV-based tests should now not run unless OpenCV is installed

* Don't install OpenCV on test machine but make sure it's there

* typo

* Try again to install OpenCV on test

* Remove install opencv now that it's installed

* Fixed a lingering "checkerboard" to "chessboard"

* Use an Ubuntu 18.04 image and try to use the Ubuntu functional tests

* Properly add the OpenCV tests if it's available

* Don't bootstrap ubuntu because we have a docker image now

* Don't install OpenCV, it's already in the Docker container

* Remove confusing offset for devices in MultiDeviceCapturer

* Build with Clang

* No braces needed

* A few more fixes from not using a vector for configs

* More updates to README

* Workaround for debug version of OpenCV on Windows

* Explanations for the OpenCV LIBS issue and for green screen logic

* Re-expanded correct sync window until firmware is updated

* Greenscreen with background, not green

* More modern CMake

* No need to find package here

* Added findopencv so no need to specify -DOpenCV_DIR
2019-08-30 17:11:58 -07:00
Andrew Duan 6fdbcb0188
Add API to transform pixel from color image to depth image with searching on epipolar line (#696)
* Add API to transform pixel from color image to depth image with searching on epipolar line

* Fix linux build

* Fix clang build

* Addressing comments

* Remove extra header

* Fix clang

* Add C++ wrapper
2019-08-30 11:16:40 -07:00
wes-b 1c44e7276c
updating exposure tests to validate with both the cameras running and not running (#663) 2019-08-21 14:47:59 -07:00
Jacob Wirth 13e9c07308
Fix warnings on clang 8 / GCC 9 (#645)
* Fix warnings on clang 8 / GCC 9

* Fix clangformat

* Update src/record/internal/matroska_read.cpp

Co-Authored-By: Matt Schulte <schultetwin1@gmail.com>
2019-08-15 16:00:36 -04:00
Andrew Duan 1649dc3a7c
undistort example updates (#628)
* Undistort example updates

* More comments

* Renaming Enum

* Fix linux

* Addressing comments and explicitly store all 4 weights

* Fix ft
2019-08-12 16:13:05 -07:00
wes-b 7b73ef8595
Update Build Infrastructure to support multiple devices. (#546)
* Enabling the build system to remove the Connection Exercizer infavor of resetting the device(s)
azure-pipelines.yml is updated to not need the Connection Exercizer.
AzureKinectFirmwareTool(.exe) is updated to issue commands to multiple devices.
2019-08-09 16:52:10 -07:00
Yijie Wang 708987a90b Feature/support custom track record playback (#246)
* Add functionality to record custom track

Add the feature to the k4a recorder to allow users to record custom tracks defined by their own.
1. Add custom track recording code to recorder.cpp
2. Expose the custom track recording API through record.h
3. Create a simple example to showcase how the API can be used.
4. Add unit test for the custom track recording APIs.

* Add functionality to playback custom track (#196)

* Implement the basic functionality of the custom track playback

1. Add feature to query timestamp by frame index for any given track
2. Add unit test for custom track playback
3. Fix custom track playback/record API to take/output microsecond for the timestamps
4. Define data_block handle to access to custom track timestamp and data
5. Allow k4a_playback_get_previous_data_block/k4a_playback_get_next_data_block API to move non-custom tracks
6. Add comments to the recording API.

* Support legacy depth mode tag strings (#239)

The legacy depth mode tag strings are using lower letter 'x' for "NFOV_2X2BINNED" and "WFOV_2X2BINNED". Add support to be able to read the legacy depth mode tags.

* Fix build break caused by merge conflict

* Fix clangformat errors.

* Remove code to pre-scan the mkv file to get the index-timestamp map

* Fix small issues.

* Address comments

* Update track tags for custom track playback/record (#251)

* Update track tags to fix legacy file support
Revert change to next_child and fix upper_level check

* Fix build errors and clean up for PR review

* More build fixes

* Address comments

* Address comments

* Fix linux build break

* Remove track / attachment tags from public api
Restrict track names to A-Z, 0-9, -, _
Minor docs cleanup

* Add internal flag for high frequency data tracks

* Add track settings for subtitle track

* Fix merge error

* Change playback to use a track map for all tracks
Add get_track_count and get_track_name functions
Add more tests

* Update documentation

* More test updates

* Fix build on linux

* Change built-in track names to use #defines

* Code cleanup

* More review and code cleanup
Adjust test cases to cover a current bug in this branch

* Add timestamp estimation for high_freq option.

* Complete high_freq_data feature and update tests

* Add k4a_playback_track_is_builtin()

* PR review changes, fix linux build

* Remove unused variable from record context

* Document track / tag character limitations
Update record example

* Fix linux build warnings

* Fix PR comments

* Add new test for IMU start offset

* Update custom track recording to use device_timestamp on playback

* Minor documentaiton change around timestamps
2019-08-06 10:04:27 -07:00
Jacob Wirth 3b299f14bd
Convert all playback timestamps to use device time (#592)
* Convert all playback timestamps to use device time

* Add some extra documentation comments around seek_timestamp

* Rename last_timestamp_ns field to last_file_timestamp_ns
2019-08-05 15:45:17 -07:00
Brent Allen 0f82028001
Made image_create format aware (#594)
* Made image_create stride aware
2019-08-05 15:33:58 -07:00
wes-b 85cd9e2b0b
Logging is available for all K4A API's, not just after k4a_device_open is called (#537)
* Converted logger to initialize 1 time when module is loaded into memory. Removed logger_create/destroy API's and updated all callers as logging is now ready to go with the first API call to the SDK.

* fixing build break

* addressing feedback
2019-08-05 14:43:58 -07:00
Christian Makela 7f49a9ad2c Review changes 2019-07-31 15:02:23 -07:00
Christian Makela d89be5081a Merge fixes 2019-07-31 10:56:20 -07:00
Christian Makela 1a1da9e5be Merge branch 'develop' into feature/transformation-custom-image-support 2019-07-31 10:41:48 -07:00
Brent Allen 7a9237f88c
Change C# to using Memory<T> (#539)
* Made allocator hookable

* Plumbed public API for allocator

* C# hooks native allocator

* Update src/csharp/SDK/Device.cs

* Update src/csharp/SDK/Image.cs

Co-Authored-By: Derek M. <MsDerekMa@users.noreply.github.com>
2019-07-31 10:05:53 -07:00
Christian Makela a8592b5848 Fix issue with image format in csharp and throughput_perf 2019-07-30 17:20:50 -07:00
Christian Makela 56e03eed8b Transformation custom image support 2019-07-30 15:47:36 -07:00
wes-b 9afcd78957
Fix exposure settings2 (#515)
* Setting powerline to 60Hz

* Fixed Linux Break

* Added exposure mapping support for Linux and Windows

* updated comment

* minor cleanup

* Updated Throughput_perf to support exposure

* fixing build break on Linux with Clang

* fixed Linux Clang build break

* Fixed Linux Clang build break
2019-07-18 16:34:03 -07:00
Brent Allen b4b495aede
Added global init and rwlock (#475)
* Added rwlock
* Added global init
2019-07-11 15:48:52 -07:00
Steven Schulte dbe6c58897 Fixed hanging, failing unit tests (#472) 2019-07-09 13:05:44 -07:00
Steven Schulte 5065d3fd70 Make examples test cases (#426)
* "example" is now "sample" so examples can be tests

Renamed example to "sample" because the existing examples will become
tests.

* Starting work for adding example tests

* Should now work on Windows

* clangformat

* Abstracting cross-platform (WIP)

* fastpointcloud hacky but tests on linux

* fastpointcloud test works on windows

* less memory usage so it doesn't segfault anymore

* Made declaration static

* clangformat

* tried to fix up testing issues

* factored out a chunk of code

* Added SetUp so the testing dir is only made once

* Added calibration test

* Should work on Windows now

* Disable the logging for examples test

We want to be able to test the output of the examples without dealing with the logging

* loosened regex checker strictness

* removed strict assertion

* Added an enumerate test

* Transformation example better supports Linux

* Added a transformation feature test

* Add simple opencv compat test

* Added a basic test for the streaming example

This test enforces that at least one of 20 captures has both IR and color data

* Added a simple undistort test case

* Removed remnants of moved streaming

* Cleaned up code as suggested

* Backslashes for windows commands

* Factor out getting path to binary

* clangformat

* Factored out some ifdefs

* Fixed for Windows

* Cleanup and flush

* Renamed examples test to executables test

This definition better specifies what exactly is tested, and we can test other executables that aren't examples

* Modified the working directory for CTest (Linux)

* Revert "Modified the working directory for CTest (Linux)"

This reverts commit f43c4112dd.

* Fixed the binary paths but keep Windows backslash

* Attempt to fix python script to run properly

* Actually use, not just print, that change

* flush instead of endl because no need for newline

* Factored assertions out of functions

In Google Test, ASSERT_* clauses can cause the function to exit- however,
because we had nested functions, the function was continuing in a very
questionable state.

* Added explanatory comment for regex test function

* Re-named example test as example

* Pass parameters by pointers rather than by reference
2019-07-09 12:25:18 -07:00
Wes Barcalow 6ee5a47dcb Added validation and documentation that a device being configured for master mode must also enable the color camera 2019-06-25 11:11:01 -07:00
Steven Schulte 24304371b1 commmon -> common 2019-06-18 12:40:44 -07:00
wes-b 640f16b933
Throughput subordinate delay off master usec (#399)
* added subordinate_delay_off_master_usec command flag

* Fixed non-error being report: ERROR LibUSB transfer status of 00000000 unexpected

* Added no_startup_flush and exposure

* fixing build break
2019-06-12 11:26:53 -07:00
wes-b 3a7edce9a2
Added k4a_image_get/set_system_timestamp_nsec (#350)
* Added k4a_image_get_system_timestamp_nsec and k4a_image_set_system_timestamp_nsec.
libuvc is now a forked repo with patches applied to Azure-Kinect branch.
Updated libuvc so it can report capture_time

* Addressing feedback from PR

* Addressing PR feedback

* Update include/k4ainternal/common.h

Co-Authored-By: Matt Schulte <schultetwin1@gmail.com>

* Fixing PR feedback

* Fixing Clang format error

* Removing __typeof__
2019-05-31 08:59:54 -07:00