amltsdemux: CF2 support parse DVB-DTS [1/1]

PD#SWPL-170600

Problem:
Dvt-dts audio data can not be parsed for 04 patch
link SWPL-72342

Solution:
support parse DVB-DTS

Verify:
ah212

Change-Id: I20819c1475be3588fc97773b9811bd5cc300c543
Signed-off-by: hanghang.luo <hanghang.luo@amlogic.com>
diff --git a/aml-tsdemux/amltsdemux.c b/aml-tsdemux/amltsdemux.c
index c2697fa..da08c0e 100644
--- a/aml-tsdemux/amltsdemux.c
+++ b/aml-tsdemux/amltsdemux.c
@@ -1450,6 +1450,14 @@
         break;
       }
       */
+      desc = mpegts_get_descriptor_from_stream (bstream, GST_MTS_DESC_DVB_DTS);
+      if (desc) {
+        GST_LOG ("dts audio");
+        is_audio = TRUE;
+        caps = gst_caps_new_empty_simple ("audio/x-dts");
+        break;
+      }
+
       desc = amlts_get_descriptor_from_stream (bstream, GST_MTS_DESC_DVB_AC3);
       if (desc) {
         GST_LOG_OBJECT (demux, "ac3 audio");
@@ -3352,19 +3360,21 @@
           "Got Keyframe, ready to go at %" GST_TIME_FORMAT,
           GST_TIME_ARGS (stream->pts));
 
-      if (bs->stream_type == GST_MPEGTS_STREAM_TYPE_PRIVATE_PES_PACKETS &&
-          bs->registration_id == DRF_ID_OPUS) {
-        buffer_list = parse_opus_access_unit (stream);
-        if (!buffer_list) {
-          res = GST_FLOW_ERROR;
-          goto beach;
-        }
-
-        if (gst_buffer_list_length (buffer_list) == 1) {
-          buffer = gst_buffer_ref (gst_buffer_list_get (buffer_list, 0));
-          gst_buffer_list_unref (buffer_list);
-          buffer_list = NULL;
-        }
+      if (bs->stream_type == GST_MPEGTS_STREAM_TYPE_PRIVATE_PES_PACKETS) {
+        if (bs->registration_id == DRF_ID_OPUS) {
+          buffer_list = parse_opus_access_unit (stream);
+          if (!buffer_list) {
+            res = GST_FLOW_ERROR;
+            goto beach;
+          }
+          if (gst_buffer_list_length (buffer_list) == 1) {
+            buffer = gst_buffer_ref (gst_buffer_list_get (buffer_list, 0));
+            gst_buffer_list_unref (buffer_list);
+            buffer_list = NULL;
+          }
+        } else {
+            buffer = gst_buffer_new_wrapped (stream->data, stream->current_size);
+          }
       } else if (bs->stream_type == GST_MPEGTS_STREAM_TYPE_VIDEO_JP2K) {
         buffer = parse_jp2k_access_unit (stream);
         if (!buffer) {
@@ -3406,19 +3416,21 @@
       goto beach;
     }
   } else {
-    if (bs->stream_type == GST_MPEGTS_STREAM_TYPE_PRIVATE_PES_PACKETS &&
-        bs->registration_id == DRF_ID_OPUS) {
-      buffer_list = parse_opus_access_unit (stream);
-      if (!buffer_list) {
-        res = GST_FLOW_ERROR;
-        goto beach;
-      }
-
+    if (bs->stream_type == GST_MPEGTS_STREAM_TYPE_PRIVATE_PES_PACKETS) {
+      if (bs->registration_id == DRF_ID_OPUS) {
+        buffer_list = parse_opus_access_unit (stream);
+        if (!buffer_list) {
+          res = GST_FLOW_ERROR;
+            goto beach;
+        }
       if (gst_buffer_list_length (buffer_list) == 1) {
         buffer = gst_buffer_ref (gst_buffer_list_get (buffer_list, 0));
         gst_buffer_list_unref (buffer_list);
         buffer_list = NULL;
       }
+    } else {
+        buffer = gst_buffer_new_wrapped (stream->data, stream->current_size);
+      }
     } else if (bs->stream_type == GST_MPEGTS_STREAM_TYPE_VIDEO_JP2K) {
       buffer = parse_jp2k_access_unit (stream);
       if (!buffer) {