工具/软件:
多 AM 编解码器应用中使用 SDK 9.2.0.5
我使用了一个分离节点来创建两个 LDC 节点、以便应用两个不同的 LDC。
之后,我创建了一个合并节点,将每个 LDC 节点的输出合并为单个vx_object_array
, 然后将其发送到 gstreamer 管道。
不过、虽然视频是以所需的方式保存的、但我遇到了一个问题、即以编码缓冲区大小(6帧)的单位覆盖前一帧。
例如,在视频中保存的帧数如下所示:1,2,3,4,5,6,1,2,3,4,5,6,13,15,16,17,18,14,15,16,17,18,25,26 ...
内核中的处理是通过引用拆分节点创建的、如以下代码所示。
您是否知道导致此问题的原因?
谢谢你
static void swapObjArray( tivx_obj_desc_object_array_t *in_desc, tivx_obj_desc_t *in_elem_desc[], tivx_obj_desc_object_array_t *out_desc, tivx_obj_desc_t *out_elem_desc[], uint32_t index ) { uint32_t i, j = 0; for (i = index; i < index + in_desc->num_items; i++) { in_desc->obj_desc_id[j] = out_elem_desc[i]->obj_desc_id; out_desc->obj_desc_id[i] = in_elem_desc[j]->obj_desc_id; j++; } } . . . tivxGetObjDescList(in_desc->obj_desc_id, (tivx_obj_desc_t**)in_elem_desc, in_desc->num_items); tivxGetObjDescList(in1_desc->obj_desc_id, (tivx_obj_desc_t**)in1_elem_desc,in1_desc->num_items); tivxGetObjDescList(out_desc->obj_desc_id, (tivx_obj_desc_t**)out_elem_desc, out_desc->num_items); swapObjArray(in_desc, in_elem_desc, out_desc, out_elem_desc, index); index += in_desc->num_items; swapObjArray(in1_desc, in1_elem_desc, out_desc, out_elem_desc, index); index += in_desc->num_items;