From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from fllnx210.ext.ti.com (fllnx210.ext.ti.com [198.47.19.17]) by arago-project.org (Postfix) with ESMTPS id 0AAFD5299A for ; Tue, 28 Mar 2017 17:56:34 +0000 (UTC) Received: from dflxv15.itg.ti.com ([128.247.5.124]) by fllnx210.ext.ti.com (8.15.1/8.15.1) with ESMTP id v2SHuYa0020874 for ; Tue, 28 Mar 2017 12:56:34 -0500 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=ti.com; s=ti-com-17Q1; t=1490723794; bh=bEhCh7X1IYJfctXgPNFdL6zlsdGfuU4KVFYooXCnx1g=; h=Date:From:To:CC:Subject:References:In-Reply-To; b=HDj4mHYUBWt5wcn53EEzB6tQte4yL0je0pZAftRo6bO2tTJYFTex4HEdEbGGoIOS1 tuF6XX7dwofOMgaPx7ygvaHMcvU1JbSfFlH/yrMK03/XxFs0zd7pBcJT5juDKhitHp Yb0uATjYxthZaaFyhShUTNSa5T0TBzg+IWAARbKc= Received: from DLEE70.ent.ti.com (dlee70.ent.ti.com [157.170.170.113]) by dflxv15.itg.ti.com (8.14.3/8.13.8) with ESMTP id v2SHuY5Y027878 for ; Tue, 28 Mar 2017 12:56:34 -0500 Received: from dflp32.itg.ti.com (10.64.6.15) by DLEE70.ent.ti.com (157.170.170.113) with Microsoft SMTP Server id 14.3.294.0; Tue, 28 Mar 2017 12:56:34 -0500 Received: from localhost (ileax41-snat.itg.ti.com [10.172.224.153]) by dflp32.itg.ti.com (8.14.3/8.13.8) with ESMTP id v2SHuYE7025862; Tue, 28 Mar 2017 12:56:34 -0500 Date: Tue, 28 Mar 2017 13:56:34 -0400 From: Denys Dmytriyenko To: Hongmei Gou Message-ID: <20170328175633.GL29187@edge> References: <1490644585-13703-1-git-send-email-h-gou@ti.com> <20170328173027.GK29187@edge> MIME-Version: 1.0 In-Reply-To: <20170328173027.GK29187@edge> User-Agent: Mutt/1.5.20 (2009-06-14) Cc: meta-arago@arago-project.org, Djordje Senicic Subject: Re: [morty/krogoth][PATCH 1/4 v5] voxelsdk: add version 0.6.8 X-BeenThere: meta-arago@arago-project.org X-Mailman-Version: 2.1.12 Precedence: list List-Id: Arago metadata layer for TI SDKs - OE-Core/Yocto compatible List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 28 Mar 2017 17:56:35 -0000 Content-Type: text/plain; charset="us-ascii" Content-Disposition: inline Here's the log, as I'll be reverting it for now: ERROR: Nothing RPROVIDES 'voxelsdk' (but .../matrix-gui-machinevision-demos_2.0.bb RDEPENDS on or otherwise requires it) ERROR: voxelsdk was skipped: incompatible with machine k2e-evm (not in COMPATIBLE_MACHINE) -- Denys On Tue, Mar 28, 2017 at 01:30:28PM -0400, Denys Dmytriyenko wrote: > Hongmei, > > I merged the patchset into morty-next branch and it breaks all Keystone > builds. Can you please take a look - it probably requires extra condition. > > -- > Denys > > > On Mon, Mar 27, 2017 at 03:56:25PM -0400, Hongmei Gou wrote: > > Signed-off-by: Djordje Senicic > > Signed-off-by: Hongmei Gou > > --- > > V5 changes: > > * Use ${sysconfdir} for /etc and not listing all hierarchy levels > > > > .../voxelsdk/0001-PLSDK-AM437x-update.patch | 73 +++++ > > .../voxelsdk/voxelsdk/0002-Fix-SWIG-support.patch | 37 +++ > > ...mmand-line-options-and-move-OpenCV-render.patch | 324 +++++++++++++++++++++ > > ...004-Platform-specific-op_clk_freq-setting.patch | 41 +++ > > .../recipes-apps/voxelsdk/voxelsdk_git.bb | 54 ++++ > > 5 files changed, 529 insertions(+) > > create mode 100644 meta-arago-extras/recipes-apps/voxelsdk/voxelsdk/0001-PLSDK-AM437x-update.patch > > create mode 100644 meta-arago-extras/recipes-apps/voxelsdk/voxelsdk/0002-Fix-SWIG-support.patch > > create mode 100644 meta-arago-extras/recipes-apps/voxelsdk/voxelsdk/0003-Add-more-command-line-options-and-move-OpenCV-render.patch > > create mode 100644 meta-arago-extras/recipes-apps/voxelsdk/voxelsdk/0004-Platform-specific-op_clk_freq-setting.patch > > create mode 100644 meta-arago-extras/recipes-apps/voxelsdk/voxelsdk_git.bb > > > > diff --git a/meta-arago-extras/recipes-apps/voxelsdk/voxelsdk/0001-PLSDK-AM437x-update.patch b/meta-arago-extras/recipes-apps/voxelsdk/voxelsdk/0001-PLSDK-AM437x-update.patch > > new file mode 100644 > > index 0000000..2e1e740 > > --- /dev/null > > +++ b/meta-arago-extras/recipes-apps/voxelsdk/voxelsdk/0001-PLSDK-AM437x-update.patch > > @@ -0,0 +1,73 @@ > > +From 9ef95f0defcd7215b3d514e7fb7321cd299882cd Mon Sep 17 00:00:00 2001 > > +From: Djordje Senicic > > +Date: Wed, 22 Feb 2017 12:21:07 -0500 > > +Subject: [PATCH] PLSDK AM437x update > > + > > +Signed-off-by: Djordje Senicic > > +--- > > + CMakeLists.txt | 11 ++++++++++- > > + Voxel/CMakeLists.txt | 2 +- > > + Voxel/SWIG/standard_container.i | 5 +++-- > > + 3 files changed, 14 insertions(+), 4 deletions(-) > > + > > +diff --git a/CMakeLists.txt b/CMakeLists.txt > > +index ed7a015..a187c96 100644 > > +--- a/CMakeLists.txt > > ++++ b/CMakeLists.txt > > +@@ -26,9 +26,18 @@ if(CMAKE_SYSTEM_NAME STREQUAL "Linux") > > + SET(ARM_PLATFORM 1) > > + > > + if(ARM_PLATFORM) > > +- add_definitions(-mtune=arm7 -mfpu=neon-vfpv4 -mfloat-abi=hard -pthread -std=c++11 -fPIC -ffast-math) > > ++# add_definitions(-mtune=arm7 -mfpu=neon-vfpv4 -mfloat-abi=hard -pthread -std=c++11 -fPIC -ffast-math) > > + #-DARM_OPT to enable arm optimizaions > > + ADD_DEFINITIONS(-DARM_OPT) > > ++#OK: > > ++#add_definitions(-mtune=arm7 -mfloat-abi=hard -pthread -std=c++11 -fPIC -ffast-math) > > ++#OK: > > ++#add_definitions(-ffast-math -mcpu=cortex-a9 -mfloat-abi=hard -mfpu=neon-fp16 -fPIC -pthread -std=c++11) > > ++#OK: > > ++#add_definitions(-ffast-math -mcpu=cortex-a9 -mfloat-abi=hard -mfpu=neon -fPIC -pthread -std=c++11) > > ++ > > ++add_definitions(-mtune=arm7 -mfpu=neon -mfloat-abi=hard -pthread -std=c++11 -fPIC -ffast-math) > > ++ > > + ADD_DEFINITIONS(-DCOMMON_OPT) > > + > > + else() > > +diff --git a/Voxel/CMakeLists.txt b/Voxel/CMakeLists.txt > > +index ae98e81..74528d8 100644 > > +--- a/Voxel/CMakeLists.txt > > ++++ b/Voxel/CMakeLists.txt > > +@@ -149,7 +149,7 @@ install(FILES > > + COMPONENT voxel_dev > > + ) > > + > > +-#add_subdirectory(SWIG) > > ++add_subdirectory(SWIG) > > + > > + IF(LINUX) > > + set(CPACK_COMPONENTS_ALL voxel) > > +diff --git a/Voxel/SWIG/standard_container.i b/Voxel/SWIG/standard_container.i > > +index f61e342..1d2cb66 100644 > > +--- a/Voxel/SWIG/standard_container.i > > ++++ b/Voxel/SWIG/standard_container.i > > +@@ -113,7 +113,7 @@ > > + > > + %enddef > > + > > +- > > ++#if SWIG_VERSION < 0x030008 > > + // > > + // Ignore member methods for Type with no default constructor > > + // > > +@@ -124,4 +124,5 @@ > > + %feature("ignore") std::deque::resize(size_type size); > > + %feature("ignore") std::list::list(size_type size); > > + %feature("ignore") std::list::resize(size_type size); > > +-%enddef > > +\ No newline at end of file > > ++%enddef > > ++#endif > > +-- > > +1.9.1 > > + > > diff --git a/meta-arago-extras/recipes-apps/voxelsdk/voxelsdk/0002-Fix-SWIG-support.patch b/meta-arago-extras/recipes-apps/voxelsdk/voxelsdk/0002-Fix-SWIG-support.patch > > new file mode 100644 > > index 0000000..77a6de1 > > --- /dev/null > > +++ b/meta-arago-extras/recipes-apps/voxelsdk/voxelsdk/0002-Fix-SWIG-support.patch > > @@ -0,0 +1,37 @@ > > +From a800f446d9c976f6fb11f4d601cc386bbdce59e1 Mon Sep 17 00:00:00 2001 > > +From: Djordje Senicic > > +Date: Wed, 22 Feb 2017 14:14:52 -0500 > > +Subject: [PATCH] Fix SWIG support > > + > > +Signed-off-by: Djordje Senicic > > +--- > > + Voxel/SWIG/CMakeLists.txt | 5 +++-- > > + 1 file changed, 3 insertions(+), 2 deletions(-) > > + > > +diff --git a/Voxel/SWIG/CMakeLists.txt b/Voxel/SWIG/CMakeLists.txt > > +index a4f6d53..f4070ac 100644 > > +--- a/Voxel/SWIG/CMakeLists.txt > > ++++ b/Voxel/SWIG/CMakeLists.txt > > +@@ -1,10 +1,11 @@ > > +-SET(GENERATE_PYTHON_BINDINGS "FALSE" CACHE BOOL "Controls generation of Python bindings") > > ++SET(GENERATE_PYTHON_BINDINGS "TRUE" CACHE BOOL "Controls generation of Python bindings") > > + > > + IF(${GENERATE_PYTHON_BINDINGS}) > > + > > + FIND_PACKAGE(SWIG REQUIRED) > > + INCLUDE(${SWIG_USE_FILE}) > > + > > ++SET(Python_ADDITIONAL_VERSIONS 2.7) > > + FIND_PACKAGE(PythonLibs) > > + INCLUDE_DIRECTORIES(${PYTHON_INCLUDE_PATH}) > > + > > +@@ -46,4 +47,4 @@ install(FILES > > + DESTINATION lib/python2.7 > > + COMPONENT voxel_python > > + ) > > +-ENDIF() > > +\ No newline at end of file > > ++ENDIF() > > +-- > > +1.9.1 > > + > > diff --git a/meta-arago-extras/recipes-apps/voxelsdk/voxelsdk/0003-Add-more-command-line-options-and-move-OpenCV-render.patch b/meta-arago-extras/recipes-apps/voxelsdk/voxelsdk/0003-Add-more-command-line-options-and-move-OpenCV-render.patch > > new file mode 100644 > > index 0000000..4ab74e6 > > --- /dev/null > > +++ b/meta-arago-extras/recipes-apps/voxelsdk/voxelsdk/0003-Add-more-command-line-options-and-move-OpenCV-render.patch > > @@ -0,0 +1,324 @@ > > +From 29cc2430579eb257d9e1ac1caf0b4515278fd375 Mon Sep 17 00:00:00 2001 > > +From: Djordje Senicic > > +Date: Mon, 13 Mar 2017 19:51:30 -0400 > > +Subject: [PATCH] Add more command line options and move OpenCV rendering to > > + main thread > > + > > +Signed-off-by: Djordje Senicic > > +--- > > + Demos/Horus.cpp | 98 +++++++++++++++++++++++++----------------- > > + Demos/SimplePeopleTracking.cpp | 91 ++++++++++++++++++++++++++++++++------- > > + Demos/TOFApp.cpp | 14 +++--- > > + 3 files changed, 139 insertions(+), 64 deletions(-) > > + > > +diff --git a/Demos/Horus.cpp b/Demos/Horus.cpp > > +index e0181af..de1837e 100644 > > +--- a/Demos/Horus.cpp > > ++++ b/Demos/Horus.cpp > > +@@ -24,6 +24,12 @@ > > + #include > > + > > + extern int skipped_frames; > > ++extern pthread_mutex_t main_thread_image_mtx; > > ++extern Mat app_image[]; > > ++extern int main_thread_image_rd; > > ++extern int main_thread_image_wr; > > ++extern int main_thread_image_cnt; > > ++extern char show_image; > > + > > + Horus::Horus(int w, int h) : TOFApp(w, h) > > + { > > +@@ -126,10 +132,9 @@ bool Horus::isPerson(vector &contour, Mat dMat) > > + return rc; > > + } > > + > > +-static int draw_throttle = 0; > > +- > > + void Horus::update(Frame *frame) > > + { > > ++ Mat drawing; > > + vector< vector > contours; > > + vector hierarchy; > > + RNG rng(12345); > > +@@ -147,51 +152,66 @@ void Horus::update(Frame *frame) > > + > > + // Apply amplitude gain > > + _iMat = (float)_ampGain*_iMat; > > ++ if(show_image == 'p') > > ++ { //Skip below processing if we are not detecting people! > > ++ // Update background as required > > ++ if (!_setBackground) { > > ++ _dMat.copyTo(_bkgndMat); > > ++ _setBackground = true; > > ++ cout << endl << "Updated background" << endl; > > ++ } > > + > > +- // Update background as required > > +- if (!_setBackground) { > > +- _dMat.copyTo(_bkgndMat); > > +- _setBackground = true; > > +- cout << endl << "Updated background" << endl; > > +- } > > +- > > +- // Find foreground by subtraction > > +- Mat fMat = _bkgndMat-_dMat; > > ++ // Find foreground by subtraction > > ++ Mat fMat = _bkgndMat-_dMat; > > + > > +- // Convert to binary image based on amplitude and depth thresholds > > +- clipBackground(fMat, _iMat, (float)_depthThresh/100.0, (float)_ampThresh/100.0); > > +- fMat.convertTo(_bMat, CV_8U, 255.0); > > ++ // Convert to binary image based on amplitude and depth thresholds > > ++ clipBackground(fMat, _iMat, (float)_depthThresh/100.0, (float)_ampThresh/100.0); > > ++ fMat.convertTo(_bMat, CV_8U, 255.0); > > + > > +- // Apply morphological open to clean up image > > +- Mat morphMat = _bMat.clone(); > > +- Mat element = getStructuringElement( 0, Size(3,3), cv::Point(1,1) ); > > +- morphologyEx(_bMat, morphMat, 2, element); > > ++ // Apply morphological open to clean up image > > ++ Mat morphMat = _bMat.clone(); > > ++ Mat element = getStructuringElement( 0, Size(3,3), cv::Point(1,1) ); > > ++ morphologyEx(_bMat, morphMat, 2, element); > > + > > +- // Find all contours > > +- findContours(morphMat, contours, hierarchy, CV_RETR_TREE, > > +- CV_CHAIN_APPROX_SIMPLE, cv::Point(0,0)); > > ++ // Find all contours > > ++ findContours(morphMat, contours, hierarchy, CV_RETR_TREE, > > ++ CV_CHAIN_APPROX_SIMPLE, cv::Point(0,0)); > > + > > +- // Draw contours that meet a "person" requirement > > +- Mat drawing = Mat::zeros(_iMat.size(), CV_8UC3); > > +- cvtColor(_iMat, drawing, CV_GRAY2RGB); > > ++ // Draw contours that meet a "person" requirement > > ++ drawing = Mat::zeros(_iMat.size(), CV_8UC3); > > ++ cvtColor(_iMat, drawing, CV_GRAY2RGB); > > + > > +- int peopleCount = 0; > > +- for ( int i = 0; i < contours.size(); i++ ) { > > +- if (isPerson(contours[i], _dMat)) { > > +- peopleCount++; > > +- drawContours( drawing, contours, i, Scalar(0, 0, 255), 2, 8, vector(), 0, cv::Point() ); > > +- } > > ++ int peopleCount = 0; > > ++ for ( int i = 0; i < contours.size(); i++ ) { > > ++ if (isPerson(contours[i], _dMat)) { > > ++ peopleCount++; > > ++ drawContours( drawing, contours, i, Scalar(0, 0, 255), 2, 8, vector(), 0, cv::Point() ); > > ++ } > > ++ } > > ++ putText(drawing, "Cnt="+to_string(peopleCount), cv::Point(40, 30), FONT_HERSHEY_PLAIN, 1, Scalar(255, 0, 0)); > > + } > > +- putText(drawing, "Cnt="+to_string(peopleCount), cv::Point(40, 30), FONT_HERSHEY_PLAIN, 1, Scalar(255, 0, 0)); > > +- if(skipped_frames == 0) { > > +- imshow("Draw", drawing); > > +- } else { > > +- if((draw_throttle % skipped_frames) == 0) { > > +- char file_name[80]; > > +- sprintf (file_name, "draw%03d.png", draw_throttle / skipped_frames); > > +- imwrite (file_name, drawing); > > ++ > > ++ if(main_thread_image_cnt < 2) > > ++ { > > ++ switch (show_image) > > ++ { > > ++ case 'i': > > ++ _iMat.copyTo(app_image[main_thread_image_wr]); > > ++ putText(app_image[main_thread_image_wr], "Ampl Map", cv::Point(30, 20), FONT_HERSHEY_PLAIN, 1, Scalar(255, 0, 0)); > > ++ break; > > ++ case 'd': > > ++ _dMat.copyTo(app_image[main_thread_image_wr]); > > ++ putText(app_image[main_thread_image_wr], "Dist Map", cv::Point(30, 20), FONT_HERSHEY_PLAIN, 1, Scalar(255, 0, 0)); > > ++ break; > > ++ default: > > ++ drawing.copyTo(app_image[main_thread_image_wr]); > > ++ break; > > + } > > +- draw_throttle ++; > > ++ pthread_mutex_lock(&main_thread_image_mtx); > > ++ main_thread_image_wr ++; > > ++ main_thread_image_wr %= 2; > > ++ main_thread_image_cnt ++; > > ++ pthread_mutex_unlock(&main_thread_image_mtx); > > + } > > + } > > + } > > +diff --git a/Demos/SimplePeopleTracking.cpp b/Demos/SimplePeopleTracking.cpp > > +index 8c6e9d4..1eb8e16 100644 > > +--- a/Demos/SimplePeopleTracking.cpp > > ++++ b/Demos/SimplePeopleTracking.cpp > > +@@ -1,6 +1,18 @@ > > + #include "Horus.h" > > ++#include > > + > > + int skipped_frames = 0; > > ++int resolution_width = 160, resolution_height = 120; > > ++//Variables for communication between main and application thread > > ++pthread_mutex_t main_thread_image_mtx; > > ++int main_thread_image_rd = 0; > > ++int main_thread_image_wr = 0; > > ++int main_thread_image_cnt = 0; > > ++int acq_fps = 30; > > ++char show_image = 'p'; //By default, detect people > > ++int fps = 30; > > ++ > > ++Mat app_image[2]; > > + > > + int getkey() { > > + int character; > > +@@ -27,29 +39,58 @@ int getkey() { > > + > > + #define TOF_FRAME_TYPE DepthCamera::FRAME_XYZI_POINT_CLOUD_FRAME > > + > > ++void print_usage(void) > > ++{ > > ++ printf ("\nFollwoing command line options available:"); > > ++ printf ("\n -s "); > > ++ printf ("\n If you want to run demo without keyboard, provide 'skipped_frames' as argument (e.g. SimplePeopleTracking -s 30)!"); > > ++ printf ("\n Images with the result of processing are saved in PNG files. This test always stops after 10 image files recorded\n"); > > ++ printf ("\n -w "); > > ++ printf ("\n -h "); > > ++ printf ("\n -i "); > > ++ printf ("\n -d "); > > ++ printf ("\n -f "); > > ++ printf ("\n-----------\n"); > > ++} > > ++ > > + int main(int argc, char *argv[]) > > + { > > +-int ii = 0; > > +- int key; > > ++ int ii = 0, draw_throttle = 0; > > ++ int key, c_opt; > > + bool done = false; > > +- Mat bImg; > > +- > > +- if(argc > 1) skipped_frames = atoi(argv[1]); > > +- else { > > +- printf ("\nIf you want to run demo without keyboard, provide 'skipped_frames' as argument (e.g. SimplePeopleTracking 30)!"); > > +- printf ("\nImages with the result of processing are saved in PNG files. This test always stops after 15 seconds\n"); > > ++ Mat bImg, locImg; > > ++ > > ++ while ((c_opt = getopt(argc, argv,"s:w:h:f:id")) != -1) { > > ++ switch (c_opt) { > > ++ case 's' : skipped_frames = atoi(optarg); > > ++ break; > > ++ case 'w' : resolution_width = atoi(optarg); > > ++ break; > > ++ case 'h' : resolution_height = atoi(optarg); > > ++ break; > > ++ case 'f' : acq_fps = atoi(optarg); > > ++ break; > > ++ case 'i' : show_image = 'i'; > > ++ break; > > ++ case 'd' : show_image = 'd'; > > ++ break; > > ++ default: print_usage(); > > ++ exit(EXIT_FAILURE); > > ++ } > > + } > > ++ printf ("\nUsing following parameters: skipped_frames=%d width=%d height=%d mode=%c fps=%d. Use '-?' to get help.\n", > > ++ skipped_frames, resolution_width, resolution_height, show_image, acq_fps); > > + > > +- //Horus eye(320, 240); > > +- Horus eye(160, 120); > > +- //Horus eye(80, 60); > > ++ Horus eye(resolution_width, resolution_height); > > + > > + if (!eye.connect(TOF_FRAME_TYPE)) { > > + cout << "Cannot connect" << endl; > > + return -1; > > + } > > + eye.start(); > > +- while (!done) { > > ++ > > ++ while (!done) > > ++ { > > + if(skipped_frames == 0) > > + { > > + char key = getkey(); > > +@@ -57,11 +98,29 @@ int ii = 0; > > + done = true; > > + else if (key == 'b') > > + eye.resetBackground(); > > +- } else { > > +- usleep(100000); > > +- ii ++; > > +- if(ii == 150) done = true; > > + } > > ++ //Exchange data with the applicaiton thread > > ++ if(main_thread_image_cnt > 0) > > ++ { //imshow() does not work reliable if being ran from non-main thread > > ++ locImg = app_image[main_thread_image_rd]; > > ++ if(skipped_frames) > > ++ { > > ++ if((draw_throttle % skipped_frames) == 0) { > > ++ char file_name[80]; > > ++ sprintf (file_name, "draw%03d.png", draw_throttle / skipped_frames); > > ++ imwrite (file_name, locImg); > > ++ std::cout << "Write file:" << file_name << std::endl << std::flush; > > ++ } > > ++ draw_throttle ++; > > ++ if(draw_throttle >= (10 * skipped_frames)) done = true; //Collect 10 image files only in batch mode > > ++ } else imshow ("Draw", locImg); > > ++ pthread_mutex_lock(&main_thread_image_mtx); > > ++ main_thread_image_rd ++; > > ++ main_thread_image_rd %= 2; > > ++ main_thread_image_cnt --; > > ++ pthread_mutex_unlock(&main_thread_image_mtx); > > ++ } > > ++ waitKey(20); > > + } > > + > > + err_exit: > > +diff --git a/Demos/TOFApp.cpp b/Demos/TOFApp.cpp > > +index 1c9c0cd..cb41286 100644 > > +--- a/Demos/TOFApp.cpp > > ++++ b/Demos/TOFApp.cpp > > +@@ -22,7 +22,7 @@ > > + #define FRAME_QUEUE_SZ 3 > > + > > + extern int skipped_frames; > > +- > > ++extern int acq_fps; > > + // Frame callback > > + static deque qFrame; > > + static pthread_mutex_t gmtx; > > +@@ -166,11 +166,7 @@ void *TOFApp::eventLoop(void *p) > > + } > > + > > + done = !app->_isRunning; > > +- if(skipped_frames == 0) { > > +- waitKey(app->_loopDelay); > > +- } else { > > +- usleep(10000); > > +- } > > ++ usleep(10000); > > + } > > + > > + app->disconnect(); > > +@@ -196,9 +192,9 @@ void TOFApp::Init(int w, int h) > > + _isConnected = false; > > + _dimen.width = w; > > + _dimen.height = h; > > +- _frate.numerator = 30; > > ++ _frate.numerator = acq_fps; //30 > > + _frate.denominator = 1; > > +- _loopDelay = 66; > > ++ _loopDelay = (int)(1000 / acq_fps); > > + _illum_power = 60; > > + _intg = 20; > > + _profile = "MetrilusLongRange"; > > +@@ -219,7 +215,7 @@ bool TOFApp::connect(DepthCamera::FrameType frmType) > > + else > > + return false; > > + > > +- #if 0 //Enable this to list all the profiles that are supported by the camera > > ++ #if 1 //Enable this to list all the profiles that are supported by the camera > > + cout << "List of Profiles:" << endl; > > + auto &names = _depthCamera->configFile.getCameraProfileNames(); > > + > > +-- > > +1.9.1 > > + > > diff --git a/meta-arago-extras/recipes-apps/voxelsdk/voxelsdk/0004-Platform-specific-op_clk_freq-setting.patch b/meta-arago-extras/recipes-apps/voxelsdk/voxelsdk/0004-Platform-specific-op_clk_freq-setting.patch > > new file mode 100644 > > index 0000000..ae2155e > > --- /dev/null > > +++ b/meta-arago-extras/recipes-apps/voxelsdk/voxelsdk/0004-Platform-specific-op_clk_freq-setting.patch > > @@ -0,0 +1,41 @@ > > +From 63e830023a77749cb6ec78f5ada1d94c9713f935 Mon Sep 17 00:00:00 2001 > > +From: Djordje Senicic > > +Date: Tue, 21 Mar 2017 21:05:42 -0400 > > +Subject: [PATCH] Platform specific op_clk_freq setting > > + > > +Signed-off-by: Djordje Senicic > > +--- > > + Demos/TOFApp.cpp | 10 +++++++++- > > + 1 file changed, 9 insertions(+), 1 deletion(-) > > + > > +diff --git a/Demos/TOFApp.cpp b/Demos/TOFApp.cpp > > +index cb41286..e6ff8fe 100644 > > +--- a/Demos/TOFApp.cpp > > ++++ b/Demos/TOFApp.cpp > > +@@ -215,7 +215,7 @@ bool TOFApp::connect(DepthCamera::FrameType frmType) > > + else > > + return false; > > + > > +- #if 1 //Enable this to list all the profiles that are supported by the camera > > ++ #if 0 //Enable this to list all the profiles that are supported by the camera > > + cout << "List of Profiles:" << endl; > > + auto &names = _depthCamera->configFile.getCameraProfileNames(); > > + > > +@@ -248,6 +248,14 @@ bool TOFApp::connect(DepthCamera::FrameType frmType) > > + _depthCamera->registerCallback(_frameType, frameCallback); > > + _depthCamera->setFrameSize(_dimen); > > + _depthCamera->setFrameRate(_frate); > > ++#ifdef SET_OPCLK > > ++ _depthCamera->set("op_clk_freq", 1); > > ++ cout << endl << "Set op_clk_freq!" << endl; > > ++#endif > > ++#ifdef RESET_OPCLK > > ++ _depthCamera->set("op_clk_freq", 0); > > ++ cout << endl << "Reset op_clk_freq!" << endl; > > ++#endif > > + > > + VideoMode m; > > + > > +-- > > +1.9.1 > > + > > diff --git a/meta-arago-extras/recipes-apps/voxelsdk/voxelsdk_git.bb b/meta-arago-extras/recipes-apps/voxelsdk/voxelsdk_git.bb > > new file mode 100644 > > index 0000000..91f58eb > > --- /dev/null > > +++ b/meta-arago-extras/recipes-apps/voxelsdk/voxelsdk_git.bb > > @@ -0,0 +1,54 @@ > > +SUMMARY = "VOXELSDK and 3D scanning application" > > +HOMEPAGE = "https://github.com/3dtof/voxelsdk" > > +SECTION = "multimedia" > > +LICENSE = "BSD-3-Clause" > > +LIC_FILES_CHKSUM = "file://LICENSE;md5=e69c599445026ffeae140a21181dfa88" > > + > > +PV = "0.6.8" > > +PR = "r1" > > +BRANCH = "plsdk-devel" > > +SRC_URI = "git://github.com/3dtof/voxelsdk.git;branch=${BRANCH}" > > +SRCREV = "7337ac265a1542f22ccffe592762c226b23b2dbd" > > + > > +SRC_URI += " \ > > + file://0001-PLSDK-AM437x-update.patch;patchdir=${S} \ > > + file://0002-Fix-SWIG-support.patch;patchdir=${S} \ > > + file://0003-Add-more-command-line-options-and-move-OpenCV-render.patch;patchdir=${S} \ > > + file://0004-Platform-specific-op_clk_freq-setting.patch;patchdir=${S} \ > > + " > > + > > +S = "${WORKDIR}/git" > > + > > +COMPATIBLE_MACHINE = "ti33x|ti43x|omap-a15" > > +PACKAGE_ARCH = "${MACHINE_ARCH}" > > + > > +export CMAKE_PREFIX_PATH="${WORKDIR}/build" > > + > > +OPCLK = "SET_OPCLK" > > +OPCLK_ti43x = "RESET_OPCLK" > > +CXXFLAGS_append = " -I${STAGING_INCDIR}/libusb-1.0 -D${OPCLK}" > > +EXTRA_OECMAKE += "-DDISTROFEATURE=ExcludePCL -DCMAKE_BUILD_TYPE=Debug -DPYTHON_INCLUDE_DIRS=${STAGING_INCDIR}/include/python2.7" > > + > > +inherit pkgconfig cmake pythonnative python-dir > > + > > +DEPENDS = "libusb1 udev opencv boost python python-dev swig swig-native" > > + > > +RDEPENDS_${PN} = "libusb1 udev opencv" > > + > > +do_install_append () { > > + install -d ${D}${bindir} > > + install -m 0775 ${S}/Test/CameraSystemTest.py ${D}${bindir} > > + install -m 0775 ${S}/Test/CameraSystemIQFrameTest.py ${D}${bindir} > > + install -m 0775 ${S}/Test/LensCalibrationTest.py ${D}${bindir} > > +} > > + > > +FILES_${PN} += "${datadir}" > > +FILES_${PN} += "${sysconfdir}/udev/rules.d/*" > > +FILES_${PN} += "${libdir}/voxel/*.so.*" > > +FILES_${PN} += "${libdir}/python2.7/_*.so" > > +FILES_${PN} += "${libdir}/python2.7/*.py" > > + > > +FILES_${PN}-dev += "${libdir}/cmake ${libdir}/cmake/Voxel ${libdir}/cmake/TI3DToF" > > +FILES_${PN}-dev += "${libdir}/cmake/Voxel/*.cmake" > > +FILES_${PN}-dev += "${libdir}/cmake/TI3DToF/*.cmake" > > +FILES_${PN}-dev += "${libdir}/voxel/*.so" > > -- > > 1.9.1 > > > > _______________________________________________ > > meta-arago mailing list > > meta-arago@arago-project.org > > http://arago-project.org/cgi-bin/mailman/listinfo/meta-arago > _______________________________________________ > meta-arago mailing list > meta-arago@arago-project.org > http://arago-project.org/cgi-bin/mailman/listinfo/meta-arago