[MMFMWK-8140] Enalbed date_time in 8MM

1. Refine date time overlay code
2. use SW compositor in 8MM

Signed-off-by: Jian Li <jian.li@nxp.com>
diff --git a/tools/grecorder/recorder_engine.c b/tools/grecorder/recorder_engine.c
index ffb7c07..6c3be8f 100644
--- a/tools/grecorder/recorder_engine.c
+++ b/tools/grecorder/recorder_engine.c
@@ -47,6 +47,29 @@
 #define TIME_FORMAT "02d.%09u"
 #define TIMEDIFF_FORMAT "0.6lf"
 
+#define ADD_DATE_TIME
+#ifdef ADD_DATE_TIME
+#define DATE_TIME "clockoverlay halignment=left valignment=top time-format=\"%Y/%m/%d  %H:%M:%S \" !" 
+#else
+#define DATE_TIME ""
+#endif
+
+// this is only for test purpose to measure end to end latency, defaul not enabled
+//#define ADD_TIME_OVERLAY 
+#ifdef ADD_TIME_OVERLAY
+#define TIME_OVERLAY "timeoverlay halignment=right valignment=top text=\"Stream time:\" !"
+#define DATE_TIME "" //we only have one watermark to save performance
+#else
+#define TIME_OVERLAY ""
+#endif
+
+// FIXME: g2d has issue to convert RGB to YUV, use SW composition currently
+#ifdef USE_HW_COMPOSITOR
+#define HW_COMPOSITOR "queue ! imxvideoconvert_g2d composition-meta-enable=true in-place=true !"
+#else
+#define HW_COMPOSITOR ""
+#endif
+
 #define TIME_ARGS(t) \
         (GST_CLOCK_TIME_IS_VALID (t) && (t) < 99 * GST_SECOND) ? \
         (gint) ((((GstClockTime)(t)) / GST_SECOND) % 60) : 99, \
@@ -1669,10 +1692,10 @@
 
   if (bAddTimeStamp) {
       if (IS_IMX8MM()) {
-          recorder->date_time = "clockoverlay halignment=left valignment=top time-format=\"%Y/%m/%d  %H:%M:%S \" ! queue ! imxvideoconvert_g2d composition-meta-enable=true in-place=true ! queue";
+          recorder->date_time = DATE_TIME TIME_OVERLAY HW_COMPOSITOR "queue";
       }
       else {
-          recorder->date_time = "clockoverlay halignment=left valignment=top time-format=\"%Y/%m/%d  %H:%M:%S \" ! queue ! imxvideoconvert_ipu composition-meta-enable=true in-place=true ! queue";
+          recorder->date_time = DATE_TIME TIME_OVERLAY "queue ! imxvideoconvert_ipu composition-meta-enable=true in-place=true ! queue";
       }
   } else {
     recorder->date_time = NULL;