gst-plugin-video-sink: CB1 set secure mode if get svp event [1/1]

PD#SWPL-81049

Problem:
In SVP, Videosink alloc normal dma buf

Solution:
set secure mode if get svp event

Verify:
AP212

Change-Id: I3a494779267b100983b7d7bccc017aabbcbf6d8c
Signed-off-by: sheng.liu <sheng.liu@amlogic.com>
diff --git a/src/gstamlvideosink.c b/src/gstamlvideosink.c
index b3093f7..4a74f79 100644
--- a/src/gstamlvideosink.c
+++ b/src/gstamlvideosink.c
@@ -335,6 +335,7 @@
     sink->rendered = 0;
     sink->droped = 0;
     sink->avsync_mode = GST_DEFAULT_AVSYNC_MODE;
+    sink->secure_mode = FALSE;
     g_mutex_init(&sink->eos_lock);
     g_cond_init(&sink->eos_cond);
 
@@ -733,11 +734,10 @@
     gboolean need_pool;
 
     gst_query_parse_allocation(query, &caps, &need_pool);
-    GST_DEBUG_OBJECT(bsink, "jxsaaa need_pool:%d", need_pool);
+    GST_DEBUG_OBJECT(bsink, "need_pool: %d, secure_mode: %d", need_pool, sink->secure_mode);
 
     if (need_pool)
-        // TODO 没有考虑secure场景
-        pool = gst_drm_bufferpool_new(FALSE, GST_DRM_BUFFERPOOL_TYPE_VIDEO_PLANE);
+        pool = gst_drm_bufferpool_new(sink->secure_mode, GST_DRM_BUFFERPOOL_TYPE_VIDEO_PLANE);
 
     gst_query_add_allocation_pool(query, pool, sink_priv->video_info.size, DRMBP_EXTRA_BUF_SZIE_FOR_DISPLAY, DRMBP_LIMIT_MAX_BUFSIZE_TO_BUFSIZE);
     if (pool)
@@ -999,6 +999,15 @@
             gst_wait_eos_signal(sink);
         }
     }
+    case GST_EVENT_CUSTOM_DOWNSTREAM:
+    {
+        if (gst_event_has_name (event, "IS_SVP"))
+        {
+            GST_DEBUG_OBJECT(sink, "Got SVP Event");
+            sink->secure_mode = TRUE;
+        }
+        break;
+    }
     default:
     {
         GST_DEBUG_OBJECT(sink, "pass to basesink");
diff --git a/src/gstamlvideosink.h b/src/gstamlvideosink.h
index 594f476..3cfe878 100644
--- a/src/gstamlvideosink.h
+++ b/src/gstamlvideosink.h
@@ -60,6 +60,8 @@
   GMutex eos_lock;
   GCond eos_cond;
 
+  gboolean secure_mode;
+
   GstAmlVideoSinkPrivate *priv;
 };