remove check caps & add test folder
Change-Id: I371e53599f683ab00c5fb7779999d307ee78bb99
diff --git a/src/gstamlvideosink.c b/src/gstamlvideosink.c
index 174e54f..38286e6 100644
--- a/src/gstamlvideosink.c
+++ b/src/gstamlvideosink.c
@@ -314,6 +314,7 @@
static gboolean gst_aml_video_sink_propose_allocation(GstBaseSink *bsink, GstQuery *query)
{
+ GST_DEBUG_OBJECT(bsink, "trace in");
//TODO only implement dma case
GstAmlVideoSink *sink = GST_AML_VIDEO_SINK(bsink);
GstAmlVideoSinkPrivate *sink_priv = GST_AML_VIDEO_SINK_GET_PRIVATE(sink);
@@ -323,6 +324,7 @@
gboolean need_pool;
gst_query_parse_allocation(query, &caps, &need_pool);
+ GST_DEBUG_OBJECT(bsink, "jxsaaa need_pool:%d", need_pool);
if (need_pool)
//TODO 没有考虑secure场景
@@ -372,13 +374,13 @@
GST_OBJECT_LOCK(sink);
GST_DEBUG_OBJECT(sink, "set caps %" GST_PTR_FORMAT, caps);
- use_dmabuf = gst_caps_features_contains(gst_caps_get_features(caps, 0), GST_CAPS_FEATURE_MEMORY_DMABUF);
- if (use_dmabuf == FALSE)
- {
- GST_ERROR_OBJECT(sink, "not support non dma buffer case");
- ret = FALSE;
- goto done;
- }
+ // use_dmabuf = gst_caps_features_contains(gst_caps_get_features(caps, 0), GST_CAPS_FEATURE_MEMORY_DMABUF);
+ // if (use_dmabuf == FALSE)
+ // {
+ // GST_ERROR_OBJECT(sink, "not support non dma buffer case");
+ // ret = FALSE;
+ // goto done;
+ // }
/* extract info from caps */
if (!gst_video_info_from_caps(&sink_priv->video_info, caps))
@@ -450,13 +452,14 @@
GST_ERROR_OBJECT(sink, "render lib: display frame fail");
goto error;
}
- GST_DEBUG_OBJECT(sink, "GstBuffer:%p queued", buffer);
done:
GST_OBJECT_UNLOCK(vsink);
+ GST_DEBUG_OBJECT(sink, "GstBuffer:%p queued ok", buffer);
return ret;
error:
GST_OBJECT_UNLOCK(vsink);
+ GST_DEBUG_OBJECT(sink, "GstBuffer:%p queued error", buffer);
ret = GST_FLOW_CUSTOM_ERROR_2;
return ret;
}
@@ -610,7 +613,7 @@
GstVideoMeta *vmeta = NULL;
guint n_mem = 0;
- if (gst_buf == NULL || tunnel_lib_buf_wrap == NULL)
+ if (gst_buf == NULL || tunnel_lib_buf_wrap == NULL || dmabuf == NULL)
{
GST_ERROR_OBJECT(vsink, "input params error");
goto error;
@@ -627,6 +630,7 @@
GST_ERROR_OBJECT(vsink, "too many memorys in gst buffer");
goto error;
}
+ GST_DEBUG_OBJECT(vsink, "dbg3-0, dmabuf:%p", dmabuf);
dmabuf->planeCnt = n_mem;
dmabuf->width = vmeta->width;
diff --git a/test/1080P_H264.mp4 b/test/1080P_H264.mp4
new file mode 100755
index 0000000..99bbf9a
--- /dev/null
+++ b/test/1080P_H264.mp4
Binary files differ
diff --git a/test/run.sh b/test/run.sh
new file mode 100755
index 0000000..6c6e7e3
--- /dev/null
+++ b/test/run.sh
@@ -0,0 +1,20 @@
+#!/bin/bash
+echo 1 > /sys/module/amvdec_ports/parameters/multiplanar
+echo 1 > /sys/module/amvdec_ports/parameters/bypass_vpp
+echo 0 > /sys/module/amvdec_ports/parameters/enable_drm_mode
+echo 1 > /sys/kernel/debug/dri/0/vpu/blank
+
+export XDG_RUNTIME_DIR="/run/user/0"
+export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/lib/gstreamer-1.0
+export GST_DEBUG_FILE=/data/test/gst.log
+export GST_DEBUG=6
+export GST_DEBUG_DUMP_DOT_DIR=/data/test
+export GST_REGISTRY=/data/test/gst.reg
+
+rm /data/core-*
+rm /data/test/*.log
+rm /data/test/*.dot
+rm /data/test/*.reg
+#gst-play-1.0 /data/test/1080P_H264.mp4
+#gst-launch-1.0 filesrc location=/data/test/1080P_H264.mp4 ! qtdemux ! h264parse ! queue ! v4l2h264dec capture-io-mode=5 ! video/x-raw,format=NV12 ! amlvideosink
+gst-launch-1.0 filesrc location=/data/test/1080P_H264.mp4 ! qtdemux ! h264parse ! queue ! v4l2h264dec capture-io-mode=5 ! amlvideosink