This is an automatic generated email to let you know that the following patch 
were queued at the 
http://git.linuxtv.org/v4l-utils.git tree:

Subject: v4l2-compliance: add tests for VIDIOC_(TRY_)ENCODER_CMD.
Author:  Hans Verkuil <[email protected]>
Date:    Tue Aug 21 16:17:34 2012 +0200

Signed-off-by: Hans Verkuil <[email protected]>
(cherry picked from commit 574f9328842eaa1b1e767ce9a1abd8cd869e783c)

Signed-off-by: Gregor Jasny <[email protected]>

 utils/v4l2-compliance/Makefile             |    2 +-
 utils/v4l2-compliance/v4l2-compliance.cpp  |    7 +++-
 utils/v4l2-compliance/v4l2-compliance.h    |    3 +
 utils/v4l2-compliance/v4l2-test-codecs.cpp |   62 ++++++++++++++++++++++++++++
 4 files changed, 72 insertions(+), 2 deletions(-)

---

http://git.linuxtv.org/v4l-utils.git?a=commitdiff;h=df10d5711a3f27ccf770de9ea5f68303f6fb8056

diff --git a/utils/v4l2-compliance/Makefile b/utils/v4l2-compliance/Makefile
index b267b3d..00c5389 100644
--- a/utils/v4l2-compliance/Makefile
+++ b/utils/v4l2-compliance/Makefile
@@ -6,7 +6,7 @@ all: $(TARGETS)
 
 v4l2-compliance: v4l2-compliance.o v4l2-test-debug.o v4l2-test-input-output.o \
        v4l2-test-controls.o v4l2-test-io-config.o v4l2-test-formats.o \
-       v4l2-test-buffers.o
+       v4l2-test-buffers.o v4l2-test-codecs.o
        $(CXX) $(LDFLAGS) -o $@ $^ -lv4l2 -lv4lconvert -lrt
 
 install: $(TARGETS)
diff --git a/utils/v4l2-compliance/v4l2-compliance.cpp 
b/utils/v4l2-compliance/v4l2-compliance.cpp
index e1d0da8..a22b875 100644
--- a/utils/v4l2-compliance/v4l2-compliance.cpp
+++ b/utils/v4l2-compliance/v4l2-compliance.cpp
@@ -656,6 +656,12 @@ int main(int argc, char **argv)
        printf("\ttest VIDIOC_G_SLICED_VBI_CAP: %s\n", 
ok(testSlicedVBICap(&node)));
        printf("\n");
 
+       /* Codec ioctls */
+
+       printf("Codec ioctls:\n");
+       printf("\ttest VIDIOC_(TRY_)ENCODER_CMD: %s\n", ok(testEncoder(&node)));
+       printf("\n");
+
        /* Buffer ioctls */
 
        printf("Buffer ioctls:\n");
@@ -667,7 +673,6 @@ int main(int argc, char **argv)
 
           VIDIOC_CROPCAP, VIDIOC_G/S_CROP, VIDIOC_G/S_SELECTION
           VIDIOC_S_FBUF/OVERLAY
-          VIDIOC_(TRY_)ENCODER_CMD
           VIDIOC_(TRY_)DECODER_CMD
           VIDIOC_G_ENC_INDEX
           VIDIOC_QBUF/DQBUF/QUERYBUF/PREPARE_BUFS
diff --git a/utils/v4l2-compliance/v4l2-compliance.h 
b/utils/v4l2-compliance/v4l2-compliance.h
index 51b5ee0..9480cc2 100644
--- a/utils/v4l2-compliance/v4l2-compliance.h
+++ b/utils/v4l2-compliance/v4l2-compliance.h
@@ -189,6 +189,9 @@ int testTryFormats(struct node *node);
 int testSetFormats(struct node *node);
 int testSlicedVBICap(struct node *node);
 
+// Codec ioctl tests
+int testEncoder(struct node *node);
+
 // Buffer ioctl tests
 int testReqBufs(struct node *node);
 int testReadWrite(struct node *node);
diff --git a/utils/v4l2-compliance/v4l2-test-codecs.cpp 
b/utils/v4l2-compliance/v4l2-test-codecs.cpp
new file mode 100644
index 0000000..60f861a
--- /dev/null
+++ b/utils/v4l2-compliance/v4l2-test-codecs.cpp
@@ -0,0 +1,62 @@
+/*
+    V4L2 API codec ioctl tests.
+
+    Copyright (C) 2012  Hans Verkuil <[email protected]>
+
+    This program is free software; you can redistribute it and/or modify
+    it under the terms of the GNU General Public License as published by
+    the Free Software Foundation; either version 2 of the License, or
+    (at your option) any later version.
+
+    This program is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+    GNU General Public License for more details.
+
+    You should have received a copy of the GNU General Public License
+    along with this program; if not, write to the Free Software
+    Foundation, Inc., 51 Franklin Street, Suite 500, Boston, MA  02110-1335  
USA
+ */
+
+#include <unistd.h>
+#include <stdlib.h>
+#include <stdio.h>
+#include <string.h>
+#include <inttypes.h>
+#include <sys/types.h>
+#include <sys/stat.h>
+#include <fcntl.h>
+#include <ctype.h>
+#include <errno.h>
+#include <sys/ioctl.h>
+#include <assert.h>
+#include "v4l2-compliance.h"
+
+int testEncoder(struct node *node)
+{
+       struct v4l2_encoder_cmd cmd;
+       int ret;
+
+       memset(&cmd, 0xff, sizeof(cmd));
+       memset(&cmd.raw, 0, sizeof(cmd.raw));
+       ret = doioctl(node, VIDIOC_ENCODER_CMD, &cmd);
+       if (ret == ENOTTY)
+               return ret;
+       fail_on_test(ret != EINVAL);
+       ret = doioctl(node, VIDIOC_TRY_ENCODER_CMD, &cmd);
+       fail_on_test(ret == ENOTTY);
+       fail_on_test(ret != EINVAL);
+       cmd.cmd = V4L2_ENC_CMD_STOP;
+       cmd.flags = 0;
+       ret = doioctl(node, VIDIOC_TRY_ENCODER_CMD, &cmd);
+       fail_on_test(ret != 0);
+       ret = doioctl(node, VIDIOC_ENCODER_CMD, &cmd);
+       fail_on_test(ret != 0);
+       cmd.cmd = V4L2_ENC_CMD_PAUSE;
+       ret = doioctl(node, VIDIOC_ENCODER_CMD, &cmd);
+       fail_on_test(ret != EPERM && ret != EINVAL);
+       cmd.cmd = V4L2_ENC_CMD_RESUME;
+       ret = doioctl(node, VIDIOC_ENCODER_CMD, &cmd);
+       fail_on_test(ret != EPERM && ret != EINVAL);
+       return 0;
+}

_______________________________________________
linuxtv-commits mailing list
[email protected]
http://www.linuxtv.org/cgi-bin/mailman/listinfo/linuxtv-commits

Reply via email to