videosink: CB2 amlvideosink removes amlasink dependency [1/1]

PD#SWPL-122542

Problem:
gst-inspect-1.0 amlvideosink fail, because amlvideosink dependence
amlasink plugin

Solution:
amlvideosink removes amlasink dependency

Verify:
ah212

Change-Id: I9719d417b2133c01403ee35dc4844723a02b3841
Signed-off-by: fei.deng <fei.deng@amlogic.com>
diff --git a/src/Makefile.am b/src/Makefile.am
index 51bd16c..820c7f6 100755
--- a/src/Makefile.am
+++ b/src/Makefile.am
@@ -21,7 +21,7 @@
 
 libgstamlvideosink_la_LIBADD = $(GST_LIBS)
 libgstamlvideosink_la_LIBADD += -L$(TARGET_DIR)/usr/lib  -lmediahal_videorender 
-libgstamlvideosink_la_LIBADD += -L$(TARGET_DIR)/usr/lib/gstreamer-1.0   -lgstamlhalasink -lmediahal_videorender -lgstvideo-1.0 -lgstdrmbufferpool -lgstdrmallocator 
+libgstamlvideosink_la_LIBADD += -L$(TARGET_DIR)/usr/lib/gstreamer-1.0 -lmediahal_videorender -lgstvideo-1.0 -lgstdrmbufferpool -lgstdrmallocator 
 libgstamlvideosink_la_LIBTOOLFLAGS = --tag=disable-static
 
 # headers we need but don't want installed
diff --git a/src/gstamlvideosink.c b/src/gstamlvideosink.c
index 2f9eba9..2e463a0 100644
--- a/src/gstamlvideosink.c
+++ b/src/gstamlvideosink.c
@@ -743,9 +743,9 @@
             GST_OBJECT_UNLOCK(sink);
             GstBaseSink *basesink;
             basesink = GST_BASE_SINK(sink);
-            GST_BASE_SINK_PREROLL_LOCK(basesink);
+            //GST_BASE_SINK_PREROLL_LOCK(basesink);
             basesink->have_preroll = 1;
-            GST_BASE_SINK_PREROLL_UNLOCK(basesink);
+            //GST_BASE_SINK_PREROLL_UNLOCK(basesink);
             GST_OBJECT_LOCK(sink);
         }
         break;
@@ -1555,23 +1555,18 @@
         GST_DEBUG_OBJECT(vsink, "pipeline don't have audio sink element");
         return FALSE;
     }
-    GstClock *amlclock = gst_aml_hal_asink_get_clock((GstElement *)asink);
     gboolean ret = TRUE;
-    if (amlclock)
+    GParamSpec* spec = NULL;
+    spec = g_object_class_find_property(G_OBJECT_GET_CLASS(G_OBJECT(asink)), "avsync-session");
+    GST_DEBUG_OBJECT(vsink, "check amlhalasink has avsync-session property %p", spec);
+    if (spec)
+        g_object_get (G_OBJECT(asink), "avsync-session", &sink_priv->mediasync_instanceid, NULL);
+
+    GST_DEBUG_OBJECT(vsink, "get mediasync instance id:%d, from amlhalasink:%p", sink_priv->mediasync_instanceid, asink);
+
+    if (sink_priv->mediasync_instanceid == -1)
     {
-        sink_priv->mediasync_instanceid = gst_aml_clock_get_session_id(amlclock);
-        GST_DEBUG_OBJECT(vsink, "get mediasync instance id:%d, from aml audio clock:%p. in aml audio sink:%p", sink_priv->mediasync_instanceid, amlclock, vsink);
-        gst_object_unref(amlclock);
-        GST_DEBUG_OBJECT(vsink, "unref clock");
-        if (sink_priv->mediasync_instanceid == -1)
-        {
-            GST_ERROR_OBJECT(vsink, "audio sink: don't have valid mediasync instance id");
-            ret = FALSE;
-        }
-    }
-    else
-    {
-        GST_WARNING_OBJECT(vsink, "no clock: vmaster mode");
+        GST_ERROR_OBJECT(vsink, "audio sink: don't have valid mediasync instance id");
         ret = FALSE;
     }
     gst_object_unref(asink);