-
Bug
-
Resolution: Fixed
-
Medium
-
OpenVX Framework
-
TIOVX-1700
-
TIOVX_09.02.00
-
TIOVX_10.01.00
From version 3.1 the functionality of vxSetGraphParameterByIndex was clarified; no change in functionality was intended, but the resulting specification meant that there is a bug with TIOVX.
The specification now reads:
7.7. Framework: Graph Parameters
Defines the Graph Parameter API.
Graph parameters allow Clients to create graphs with Client settable input/output parameters. A graph parameter
inherits its attributes from the node parameter used to create it [REQ-1965]. The vx_parameter object is first retrieved
from a node in the graph via vxGetParameterByIndex and then set as a graph parameter via vxAddParameterToGraph
function.
The vxSetGraphParameterByIndex function sets a reference object to graph parameter, which in turn set this
parameter on originating node as well as any other connected nodes in the graph. The application must guarantee
that none of the input graph parameters have a connection from another node’s output parameter. If the application
violates this restriction, the behavior is implementation-defined.
The bolded section is the problem. TIOVX sets the reference object only on the single node originally given when the graph parameter was added.
It’s not sufficient to change all occurrences of the same reference on nodes in the graph, because at the time of graph verification they need not have been the same reference; therefore a list of nodes connected to a graph parameter is constructed at the time the graph is verified and this is used to assign a new reference correctly when vxSetGraphParameterByIndex is called.