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 VIDIOC_(TRY_)DECODER_CMD tests.
Author:  Hans Verkuil <[email protected]>
Date:    Tue Aug 21 16:33:22 2012 +0200

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

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

 utils/v4l2-compliance/v4l2-compliance.cpp  |    2 +-
 utils/v4l2-compliance/v4l2-compliance.h    |    1 +
 utils/v4l2-compliance/v4l2-test-codecs.cpp |   30 ++++++++++++++++++++++++++++
 3 files changed, 32 insertions(+), 1 deletions(-)

---

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

diff --git a/utils/v4l2-compliance/v4l2-compliance.cpp 
b/utils/v4l2-compliance/v4l2-compliance.cpp
index a22b875..64ba5d7 100644
--- a/utils/v4l2-compliance/v4l2-compliance.cpp
+++ b/utils/v4l2-compliance/v4l2-compliance.cpp
@@ -660,6 +660,7 @@ int main(int argc, char **argv)
 
        printf("Codec ioctls:\n");
        printf("\ttest VIDIOC_(TRY_)ENCODER_CMD: %s\n", ok(testEncoder(&node)));
+       printf("\ttest VIDIOC_(TRY_)DECODER_CMD: %s\n", ok(testDecoder(&node)));
        printf("\n");
 
        /* Buffer ioctls */
@@ -673,7 +674,6 @@ int main(int argc, char **argv)
 
           VIDIOC_CROPCAP, VIDIOC_G/S_CROP, VIDIOC_G/S_SELECTION
           VIDIOC_S_FBUF/OVERLAY
-          VIDIOC_(TRY_)DECODER_CMD
           VIDIOC_G_ENC_INDEX
           VIDIOC_QBUF/DQBUF/QUERYBUF/PREPARE_BUFS
           VIDIOC_STREAMON/OFF
diff --git a/utils/v4l2-compliance/v4l2-compliance.h 
b/utils/v4l2-compliance/v4l2-compliance.h
index 9480cc2..5a86231 100644
--- a/utils/v4l2-compliance/v4l2-compliance.h
+++ b/utils/v4l2-compliance/v4l2-compliance.h
@@ -191,6 +191,7 @@ int testSlicedVBICap(struct node *node);
 
 // Codec ioctl tests
 int testEncoder(struct node *node);
+int testDecoder(struct node *node);
 
 // Buffer ioctl tests
 int testReqBufs(struct node *node);
diff --git a/utils/v4l2-compliance/v4l2-test-codecs.cpp 
b/utils/v4l2-compliance/v4l2-test-codecs.cpp
index 60f861a..6a5efa9 100644
--- a/utils/v4l2-compliance/v4l2-test-codecs.cpp
+++ b/utils/v4l2-compliance/v4l2-test-codecs.cpp
@@ -60,3 +60,33 @@ int testEncoder(struct node *node)
        fail_on_test(ret != EPERM && ret != EINVAL);
        return 0;
 }
+
+int testDecoder(struct node *node)
+{
+       struct v4l2_decoder_cmd cmd;
+       int ret;
+
+       memset(&cmd, 0xff, sizeof(cmd));
+       memset(&cmd.raw, 0, sizeof(cmd.raw));
+       ret = doioctl(node, VIDIOC_DECODER_CMD, &cmd);
+       if (ret == ENOTTY)
+               return ret;
+       fail_on_test(ret != EINVAL);
+       ret = doioctl(node, VIDIOC_TRY_DECODER_CMD, &cmd);
+       fail_on_test(ret == ENOTTY);
+       fail_on_test(ret != EINVAL);
+       cmd.cmd = V4L2_DEC_CMD_STOP;
+       cmd.flags = V4L2_DEC_CMD_STOP_IMMEDIATELY;
+       ret = doioctl(node, VIDIOC_TRY_DECODER_CMD, &cmd);
+       fail_on_test(ret != 0);
+       ret = doioctl(node, VIDIOC_DECODER_CMD, &cmd);
+       fail_on_test(ret != 0);
+       cmd.cmd = V4L2_DEC_CMD_PAUSE;
+       cmd.flags = 0;
+       ret = doioctl(node, VIDIOC_DECODER_CMD, &cmd);
+       fail_on_test(ret != EPERM && ret != EINVAL);
+       cmd.cmd = V4L2_DEC_CMD_RESUME;
+       ret = doioctl(node, VIDIOC_DECODER_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