summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSascha Hauer <s.hauer@pengutronix.de>2011-06-15 12:40:01 +0200
committerSascha Hauer <s.hauer@pengutronix.de>2011-06-15 12:40:01 +0200
commit8537abc2ef3cff4e2a909ff2f78574b0da73bda2 (patch)
treedb4ab486f7abc89e373095db965b143e491ab12a
parent91fc66f9c89f786f2f13c6905d540f0ab276307a (diff)
downloadgst-plugins-fsl-vpu-8537abc2ef3cff4e2a909ff2f78574b0da73bda2.tar.gz
gst-plugins-fsl-vpu-8537abc2ef3cff4e2a909ff2f78574b0da73bda2.tar.xz
vpu decoder: factor out reqbufs_mmap
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
-rwxr-xr-xsrc/mfw_gst_vpu_decoder.c26
1 files changed, 19 insertions, 7 deletions
diff --git a/src/mfw_gst_vpu_decoder.c b/src/mfw_gst_vpu_decoder.c
index 8a6090a..e0bea24 100755
--- a/src/mfw_gst_vpu_decoder.c
+++ b/src/mfw_gst_vpu_decoder.c
@@ -245,15 +245,14 @@ static void mfw_gst_vpudec_buffers_unref(GstVPU_Dec *vpu_dec)
}
}
-static struct v4l2_requestbuffers reqs = {
- .count = NUM_BUFFERS,
- .type = V4L2_BUF_TYPE_VIDEO_CAPTURE,
- .memory = V4L2_MEMORY_MMAP,
-};
-
-static int mfw_gst_vpudec_reqbufs(GstVPU_Dec *vpu_dec)
+static int mfw_gst_vpudec_reqbufs_mmap(GstVPU_Dec *vpu_dec)
{
int ret, i;
+ struct v4l2_requestbuffers reqs = {
+ .count = NUM_BUFFERS,
+ .type = V4L2_BUF_TYPE_VIDEO_CAPTURE,
+ .memory = V4L2_MEMORY_MMAP,
+ };
ret = ioctl(vpu_dec->vpu_fd, VIDIOC_REQBUFS, &reqs);
if (ret) {
@@ -295,6 +294,19 @@ static int mfw_gst_vpudec_reqbufs(GstVPU_Dec *vpu_dec)
return 0;
}
+static int mfw_gst_vpudec_reqbufs(GstVPU_Dec *vpu_dec)
+{
+ int ret;
+
+ ret = mfw_gst_vpudec_reqbufs_mmap(vpu_dec);
+ if (!ret) {
+ GST_DEBUG_OBJECT(vpu_dec, "using v4l2 mmap buffers");
+ return 0;
+ }
+
+ return -1;
+}
+
static GstFlowReturn mfw_gst_vpudec_vpu_init(GstVPU_Dec * vpu_dec)
{
GstCaps *caps;