Skip to content

Commit

Permalink
Made changes for AM62A_QNX for single cam and tidl demo
Browse files Browse the repository at this point in the history
  • Loading branch information
Akshay-Abdar committed Nov 20, 2024
1 parent cf91501 commit bfc15bb
Show file tree
Hide file tree
Showing 14 changed files with 600 additions and 54 deletions.
4 changes: 3 additions & 1 deletion apps/src/input_block.c
Original file line number Diff line number Diff line change
Expand Up @@ -201,7 +201,9 @@ int32_t create_input_block(GraphObj *graph, InputBlock *input_block)
sprintf(sensor_name, "SENSOR_OV2312_UB953_LI");
format_pixel_container = TIVX_RAW_IMAGE_16_BIT;
format_msb = 9;
v4l2_pix_format = v4l2_fourcc('B','G','I','0');
#if defined(TARGET_OS_LINUX)
v4l2_pix_format = v4l2_fourcc('B','G','I','0');
#endif
output_width = 1600;
output_height = 1300;
}
Expand Down
7 changes: 5 additions & 2 deletions cmake/common.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -82,13 +82,15 @@ add_definitions(

set(VISION_APPS_LIBS_PATH $ENV{VISION_APPS_LIBS_PATH})
set(EDGEAI_LIBS_PATH $ENV{EDGEAI_LIBS_PATH})
set(QNX_LIB_PATH $ENV{QNX_LIB_PATH})
link_directories(${TARGET_FS}/usr/lib/aarch64-linux
${TARGET_FS}/usr/lib
${CMAKE_LIBRARY_PATH}/usr/lib
${CMAKE_LIBRARY_PATH}/lib
${VISION_APPS_LIBS_PATH}
${EDGEAI_LIBS_PATH}
)
${QNX_LIB_PATH}
)

if ("${TARGET_OS}" STREQUAL "QNX")
link_directories(${PSDK_QNX_PATH}/qnx/codec/vpu/OpenMAXIL/core/nto/aarch64/so.le/
Expand Down Expand Up @@ -184,9 +186,10 @@ if ("${TARGET_OS}" STREQUAL "QNX")
tiipc-usr
ti-udmalld
ti-pdk
ti-csirxlld
ti-fvid2lld
ti-sciclient
c++
c++fs
omxcore_j7
omxil_j7_utility)
add_definitions(
Expand Down
5 changes: 4 additions & 1 deletion modules/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -46,7 +46,10 @@ if ("${TARGET_CPU}" STREQUAL "A72" OR "${TARGET_CPU}" STREQUAL "A53")
list(APPEND
SRC_FILES
src/omx_encode_module.c
src/omx_decode_module.c)
src/omx_decode_module.c
src/tiovx_capture_module.c
src/qnx_display_module.c
src/tiovx_aewb_module.c)
endif()
endif()

Expand Down
13 changes: 10 additions & 3 deletions modules/core/include/tiovx_modules_cbs.h
Original file line number Diff line number Diff line change
Expand Up @@ -81,15 +81,19 @@
#include "tiovx_pixelwise_add_module.h"
#include "tiovx_lut_module.h"

#if defined(SOC_J721E) || defined(SOC_J721S2) || defined(SOC_J784S4) || defined(SOC_J722S) || defined(SOC_J742S2)
#if defined(SOC_J721E) || defined(SOC_J721S2) || defined(SOC_J784S4) || defined(SOC_J722S) || defined(SOC_J742S2) || defined(SOC_AM62A)
#if !defined(SOC_AM62A)
#include "tiovx_display_module.h"
#endif
#include "tiovx_capture_module.h"
#include "tiovx_aewb_module.h"
#if !defined(SOC_AM62A)
#include "tiovx_sde_module.h"
#include "tiovx_sde_viz_module.h"
#include "tiovx_dof_module.h"
#include "tiovx_dof_viz_module.h"
#endif
#endif

#ifdef __cplusplus
extern "C" {
Expand Down Expand Up @@ -117,20 +121,23 @@ typedef enum {
TIOVX_PIXELWISE_MULTIPLY,
TIOVX_PIXELWISE_ADD,
TIOVX_LUT,
#if defined(SOC_J721E) || defined(SOC_J721S2) || defined(SOC_J784S4) || defined(SOC_J722S) || defined(SOC_J742S2)
#if defined(SOC_J721E) || defined(SOC_J721S2) || defined(SOC_J784S4) || defined(SOC_J722S) || defined(SOC_J742S2) || defined(SOC_AM62A)
#if !defined(SOC_AM62A)
TIOVX_DISPLAY,
#endif
TIOVX_CAPTURE,
TIOVX_AEWB,
#if !defined(SOC_AM62A)
TIOVX_SDE,
TIOVX_SDE_VIZ,
TIOVX_DOF,
TIOVX_DOF_VIZ,
#endif
#endif
TIOVX_MODULES_NUM_MODULES,
} NODE_TYPES;

#ifdef __cplusplus
}
#endif

#endif //_TIOVX_MODULES_CBS
11 changes: 4 additions & 7 deletions modules/core/src/tiovx_modules.c
Original file line number Diff line number Diff line change
Expand Up @@ -96,20 +96,18 @@ vx_status tiovx_modules_initialize_graph(GraphObj *graph)
NodeObj* tiovx_modules_add_node(GraphObj *graph, NODE_TYPES node_type, void *cfg)
{
vx_status status = VX_FAILURE;

LOCK(graph);
NodeObj *node = &(graph->node_list[graph->num_nodes]);

node->graph = graph;
node->node_index = graph->num_nodes;
node->cbs = &gNodeCbs[node_type];
node->node_cfg = malloc(node->cbs->get_cfg_size());
node->node_type = node_type;

if (node->cbs->get_priv_size) {
node->node_priv = malloc(node->cbs->get_priv_size());
}

for (uint8_t i = 0; i < TIOVX_MODULES_MAX_NODE_INPUTS; i++) {
node->sinks[i].direction = SINK;
node->sinks[i].num_channels = TIOVX_MODULES_DEFAULT_NUM_CHANNELS;
Expand All @@ -127,7 +125,6 @@ NodeObj* tiovx_modules_add_node(GraphObj *graph, NODE_TYPES node_type, void *cfg
}

memcpy(node->node_cfg, cfg, node->cbs->get_cfg_size());

status = node->cbs->init_node(node);
if (VX_SUCCESS != status) {
TIOVX_MODULE_ERROR("Node Init failed, Node Type: %d\n", node_type);
Expand Down Expand Up @@ -623,7 +620,7 @@ vx_bool tiovx_modules_compare_exemplars(vx_reference exemplar1, vx_reference exe
vx_status tiovx_modules_link_pads(Pad *src_pad, Pad *sink_pad)
{
vx_status status = VX_FAILURE;

if (SRC != src_pad->direction) {
TIOVX_MODULE_ERROR("Invalid src pad\n");
return status;
Expand Down Expand Up @@ -774,7 +771,7 @@ vx_status tiovx_modules_verify_graph(GraphObj *graph)
}

if(status != VX_SUCCESS)
{
{
TIOVX_MODULE_ERROR("Creating Node failed: %d\n", i);
return status;
}
Expand Down
20 changes: 12 additions & 8 deletions modules/core/src/tiovx_modules_cbs.c
Original file line number Diff line number Diff line change
Expand Up @@ -206,17 +206,19 @@ NodeCbs gNodeCbs[TIOVX_MODULES_NUM_MODULES] =
.delete_node = tiovx_lut_delete_node,
.get_cfg_size = tiovx_lut_get_cfg_size,
.get_priv_size = tiovx_lut_get_priv_size
#if defined(SOC_J721E) || defined(SOC_J721S2) || defined(SOC_J784S4) || defined(SOC_J722S) || defined(SOC_J742S2)
#if defined(SOC_J721E) || defined(SOC_J721S2) || defined(SOC_J784S4) || defined(SOC_J722S) || defined(SOC_J742S2) || defined(SOC_AM62A)
},
{
#if !defined(SOC_AM62A)
{
.init_node = tiovx_display_init_node,
.create_node = tiovx_display_create_node,
.post_verify_graph = NULL,
.delete_node = tiovx_display_delete_node,
.get_cfg_size = tiovx_display_get_cfg_size,
.get_priv_size = tiovx_display_get_priv_size
},
{
},
#endif
{
.init_node = tiovx_capture_init_node,
.create_node = tiovx_capture_create_node,
.post_verify_graph = tiovx_capture_post_verify_graph,
Expand All @@ -232,38 +234,40 @@ NodeCbs gNodeCbs[TIOVX_MODULES_NUM_MODULES] =
.get_cfg_size = tiovx_aewb_get_cfg_size,
.get_priv_size = tiovx_aewb_get_priv_size
},
#if !defined(SOC_AM62A)
{
.init_node = tiovx_sde_init_node,
.create_node = tiovx_sde_create_node,
.post_verify_graph = NULL,
.delete_node = tiovx_sde_delete_node,
.get_cfg_size = tiovx_sde_get_cfg_size,
.get_priv_size = tiovx_sde_get_priv_size
},
},
{
.init_node = tiovx_sde_viz_init_node,
.create_node = tiovx_sde_viz_create_node,
.post_verify_graph = NULL,
.delete_node = tiovx_sde_viz_delete_node,
.get_cfg_size = tiovx_sde_viz_get_cfg_size,
.get_priv_size = tiovx_sde_viz_get_priv_size
},
},
{
.init_node = tiovx_dof_init_node,
.create_node = tiovx_dof_create_node,
.post_verify_graph = NULL,
.delete_node = tiovx_dof_delete_node,
.get_cfg_size = tiovx_dof_get_cfg_size,
.get_priv_size = tiovx_dof_get_priv_size
},
},
{
.init_node = tiovx_dof_viz_init_node,
.create_node = tiovx_dof_viz_create_node,
.post_verify_graph = NULL,
.delete_node = tiovx_dof_viz_delete_node,
.get_cfg_size = tiovx_dof_viz_get_cfg_size,
.get_priv_size = tiovx_dof_viz_get_priv_size
}
}
#endif
#else
}
#endif
Expand Down
94 changes: 94 additions & 0 deletions modules/include/qnx_display_module.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,94 @@
/*
*
* Copyright (c) 2024 Texas Instruments Incorporated
*
* All rights reserved not granted herein.
*
* Limited License.
*
* Texas Instruments Incorporated grants a world-wide, royalty-free, non-exclusive
* license under copyrights and patents it now or hereafter owns or controls to make,
* have made, use, import, offer to sell and sell ("Utilize") this software subject to the
* terms herein. With respect to the foregoing patent license, such license is granted
* solely to the extent that any such patent is necessary to Utilize the software alone.
* The patent license shall not apply to any combinations which include this software,
* other than combinations with devices manufactured by or for TI ("TI Devices").
* No hardware patent is licensed hereunder.
*
* Redistributions must preserve existing copyright notices and reproduce this license
* (including the above copyright notice and the disclaimer and (if applicable) source
* code license limitations below) in the documentation and/or other materials provided
* with the distribution
*
* Redistribution and use in binary form, without modification, are permitted provided
* that the following conditions are met:
*
* * No reverse engineering, decompilation, or disassembly of this software is
* permitted with respect to any software provided in binary form.
*
* * any redistribution and use are licensed by TI for use only with TI Devices.
*
* * Nothing shall obligate TI to provide you with source code for the software
* licensed and provided to you in object code.
*
* If software source code is provided to you, modification and redistribution of the
* source code are permitted provided that the following conditions are met:
*
* * any redistribution and use of the source code, including any resulting derivative
* works, are licensed by TI for use only with TI Devices.
*
* * any redistribution and use of any object code compiled from the source code
* and any resulting derivative works, are licensed by TI for use only with TI Devices.
*
* Neither the name of Texas Instruments Incorporated nor the names of its suppliers
*
* may be used to endorse or promote products derived from this software without
* specific prior written permission.
*
* DISCLAIMER.
*
* THIS SOFTWARE IS PROVIDED BY TI AND TI'S LICENSORS "AS IS" AND ANY EXPRESS
* OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
* OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
* IN NO EVENT SHALL TI AND TI'S LICENSORS BE LIABLE FOR ANY DIRECT, INDIRECT,
* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
* BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
* DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
* OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE
* OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
* OF THE POSSIBILITY OF SUCH DAMAGE.
*
*/
#ifndef _qnx_DISPLAY_MODULE
#define _qnx_DISPLAY_MODULE

#include <screen/screen.h>
#include "tiovx_modules_types.h"

#ifdef __cplusplus
extern "C" {
#endif

int32_t qnx_display_render_buf(Buf *tiovx_buffer);
void qnx_display_init();

#ifdef __cplusplus
}
#endif

#endif















Loading

0 comments on commit bfc15bb

Please sign in to comment.