dataout: fixed for pids update [1/1]

PD#OTT-60611

Problem:
fixed for pids update

Solution:
fixed for pids update

Verify:
Project

Change-Id: I53afebc38a3310d3a62b14c7f1a23076ba04821e
Signed-off-by: Zhiqiang Han <zhiqiang.han@amlogic.com>
diff --git a/src/dvr_record.c b/src/dvr_record.c
index 3d4f612..fa7c6b3 100644
--- a/src/dvr_record.c
+++ b/src/dvr_record.c
@@ -918,13 +918,23 @@
   /*Open the new record segment*/
   if (SEG_CALL_IS_VALID(open)) {
     memset(&open_params, 0, sizeof(open_params));
+
     memcpy(open_params.location, p_ctx->location, sizeof(p_ctx->location));
     open_params.segment_id = params->segment.segment_id;
     open_params.mode = SEGMENT_MODE_WRITE;
     open_params.force_sysclock = p_ctx->force_sysclock;
+
     DVR_INFO("%s: p_ctx->location:%s  params->location:%s", __func__, p_ctx->location,params->location);
     SEG_CALL_RET(open, (&open_params, &p_ctx->segment_handle), ret);
     DVR_RETURN_IF_FALSE(ret == DVR_SUCCESS);
+
+    if (SEG_CALL_IS_VALID(ioctl)) {
+      DVR_Control_t *pc;
+      list_for_each_entry(pc, &p_ctx->segment_ctrls, head) {
+        SEG_CALL_RET(ioctl, (p_ctx->segment_handle, pc->cmd, pc->data, pc->size), ret);
+        DVR_RETURN_IF_FALSE(ret == DVR_SUCCESS);
+      }
+    }
   }
 
   /*process params*/