dataout: added segment implementation layer [1/2]

PD#SWPL-137949

Problem:
request for data output only

Solution:
optimized for segment layer
implemented output segment layer

Verify:
PB

Change-Id: Ia4c6a2ec451736e523c0ff5fc94226e95d7a9b7a
Signed-off-by: Zhiqiang Han <zhiqiang.han@amlogic.com>
diff --git a/src/dvr_wrapper.c b/src/dvr_wrapper.c
index 818b8d5..6bd0c31 100644
--- a/src/dvr_wrapper.c
+++ b/src/dvr_wrapper.c
@@ -3163,3 +3163,25 @@
   return dvr_prop_read(prop_name,prop_value,length);
 }
 
+int dvr_wrapper_ioctl_record(DVR_WrapperRecord_t rec, unsigned int cmd, void *data, size_t size)
+{
+  DVR_WrapperCtx_t *ctx;
+  int error;
+
+  DVR_RETURN_IF_FALSE(rec);
+
+  ctx = ctx_getRecord((unsigned long)rec);
+  DVR_RETURN_IF_FALSE(ctx);
+
+  wrapper_mutex_lock(&ctx->wrapper_lock);
+  DVR_WRAPPER_INFO("libdvr_api, ioctl_record (sn:%ld) cmd:%#x data:%p", ctx->sn, cmd, data);
+  WRAPPER_RETURN_IF_FALSE_WITH_UNLOCK(ctx_valid(ctx), &ctx->wrapper_lock);
+
+  error = dvr_record_ioctl(ctx->record.recorder, cmd, data, size);
+
+  DVR_WRAPPER_INFO("record(sn:%ld) ioctl_record = (%d)\n", ctx->sn, error);
+  wrapper_mutex_unlock(&ctx->wrapper_lock);
+
+  return error;
+
+}