Reconciliation

An application can initiate the process of reconciliation on one or more attribute lists by invoking NvSciBufAttrListReconcile API. The process of NvSciBuf attribute list reconciliation:

  1. Merging: Values from multiple attribute lists are merged. The process of merging is explained in the flow-chart below.
    • Datatype(List): Datatype of the attribute list list.
    • List[i]: Attribute key named i of the attribute list list.
    • Value(List[i]): Value corresponding to attribute key i in the attribute list list.
    • UNSPECIFIED: Value of an attribute key is ignored and hence unspecified.
    • KEYCOUNT(datatype): Number of attribute keys for the given datatype.
    • MERGEVALUES(value1, value2): This function merges value1 and value2.
      • For most attributes, merging is successful only if value1 equals value2.
      • For attributes like alignment, if value1 is not equal to value 2, then the maximum of both is used as the merged value, provided both of them are a power of 2.
    media/image2.png
  2. Validation: After merging attributes from multiple lists successfully, validation of merged attributes occurs on the reconciled attribute list, which validates whether all the required attributes are set and the values of all the attributes are valid. For example, after the merging of attributes, if plane-count is set to 2 but the reconciled list contains more values for plane color-format, then validation is unsuccessful.
  3. Output Attributes Computation: Post validation, output attributes like size, alignment, etc. are computed in the reconciled attribute list.