amlhwdmx: CB1 change the time of calling release [1/1]

PD#SWPL-179287

Problem:
change state ready to null failed

Solution:
change the time of calling release

Verify:
ap222

Change-Id: If08ba3fc437483cad7c7ee5d0a5f6866305df626
Signed-off-by: hanghang.luo <hanghang.luo@amlogic.com>
diff --git a/src/gstamldmx.c b/src/gstamldmx.c
index 5ba9c3e..0229ce3 100644
--- a/src/gstamldmx.c
+++ b/src/gstamldmx.c
@@ -215,14 +215,13 @@
     case GST_STATE_CHANGE_READY_TO_NULL:
     {
         GST_LOG_OBJECT(amlhwdmx, "GST_STATE_CHANGE_READY_TO_NULL");
-        gst_amlhwdmx_reset(amlhwdmx);
-        gst_amldmxwrap_close(amlhwdmx->dmx_dev_id);
         if (!(gst_aml_dmxmgr_release(class->dmx_mgr, amlhwdmx->dmx_dev_id)))
         {
             GST_ERROR_OBJECT(amlhwdmx, "release dmx id failed");
             ret = GST_STATE_CHANGE_FAILURE;
-            goto done;
         }
+        gst_amlhwdmx_reset(amlhwdmx);
+        gst_amldmxwrap_close(amlhwdmx->dmx_dev_id);
         break;
     }
     default:
@@ -546,7 +545,6 @@
     gst_pat_filter_reset(amlhwdmx);
     GST_DEBUG_OBJECT(amlhwdmx, "after reset PAT & PMT & ES filter");
 
-    amlhwdmx->dmx_dev_id = -1;
     amlhwdmx->audio_stream_num = 0;
     amlhwdmx->selected_program_no = DEFAULT_PROGRAM_NO;
     amlhwdmx->selected_audio_stream = DEFAULT_SELECTED_AUDIO_TRACK;
@@ -1661,12 +1659,12 @@
                 }
                 else if (newest_video_pts < amlhwdmx->sinkpad.decoded_pts)
                 {
-                    GST_ERROR_OBJECT(amlhwdmx->srcpads[i].pad, "check video pts fail(pushed pts should never greater than now pts)");
+                    GST_DEBUG_OBJECT(amlhwdmx->srcpads[i].pad, "check video pts fail(pushed pts should never greater than now pts)");
                     pts_check_result = FALSE;
                 }
                 else if (newest_video_pts - amlhwdmx->sinkpad.decoded_pts > AMLHWDMX_MAX_ES_BUF_PTS_DIFF)
                 {
-                    GST_ERROR_OBJECT(amlhwdmx, "check video pts fail(pts diff: %" GST_TIME_FORMAT ", Threshold exceeded)",
+                    GST_DEBUG_OBJECT(amlhwdmx, "check video pts fail(pts diff: %" GST_TIME_FORMAT ", Threshold exceeded)",
                                      GST_TIME_ARGS(newest_video_pts - amlhwdmx->sinkpad.decoded_pts));
                     pts_check_result = FALSE;
                 }
diff --git a/src/gstamldmxmgr.c b/src/gstamldmxmgr.c
index a7782d5..cc76cb6 100644
--- a/src/gstamldmxmgr.c
+++ b/src/gstamldmxmgr.c
@@ -42,8 +42,9 @@
 
 void gst_aml_dmxmgr_finalize(void *dmx_mgr)
 {
-    if (dmx_mgr)
-        g_slice_free(GstAmlhwdmxMgr, dmx_mgr);
+    g_assert(dmx_mgr != NULL);
+
+    g_slice_free(GstAmlhwdmxMgr, dmx_mgr);
 }
 
 gboolean gst_aml_dmxmgr_acquire(void *dmx_mgr, gint *id)
@@ -51,12 +52,11 @@
     GstAmlhwdmxMgr *mgr;
     gboolean ret = FALSE;
 
+    g_assert(dmx_mgr != NULL);
+
     *id = -1;
     mgr = (GstAmlhwdmxMgr *)dmx_mgr;
 
-    if (!mgr)
-        goto done;
-
     for (guint i = 0; i < DMX_DEV_NUM; i++)
     {
         GST_DEBUG("dmx id[%d] used:%d", i, mgr->used_dmx_id[i]);
@@ -69,7 +69,6 @@
         }
     }
 
-done:
     GST_DEBUG("acquire ret:%d with dmx_id:%d ", ret, *id);
     return ret;
 }
@@ -79,10 +78,9 @@
     GstAmlhwdmxMgr *mgr;
     gboolean ret = FALSE;
 
-    mgr = (GstAmlhwdmxMgr *)dmx_mgr;
+    g_assert(dmx_mgr != NULL);
 
-    if (!mgr)
-        goto done;
+    mgr = (GstAmlhwdmxMgr *)dmx_mgr;
 
     if (id < 0 || id >= DMX_DEV_NUM)
         goto done;