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 VBI offset tests.
Author:  Hans Verkuil <[email protected]>
Date:    Mon Jul 23 12:24:23 2012 +0200

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

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

 utils/v4l2-compliance/v4l2-test-formats.cpp |   21 ++++++++++++++++++++-
 1 files changed, 20 insertions(+), 1 deletions(-)

---

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

diff --git a/utils/v4l2-compliance/v4l2-test-formats.cpp 
b/utils/v4l2-compliance/v4l2-test-formats.cpp
index c86c697..bf19405 100644
--- a/utils/v4l2-compliance/v4l2-test-formats.cpp
+++ b/utils/v4l2-compliance/v4l2-test-formats.cpp
@@ -361,6 +361,9 @@ static int testFormatsType(struct node *node, unsigned type)
        struct v4l2_window &win = fmt.fmt.win;
        struct v4l2_vbi_format &vbi = fmt.fmt.vbi;
        struct v4l2_sliced_vbi_format &sliced = fmt.fmt.sliced;
+       unsigned min_data_samples;
+       unsigned min_sampling_rate;
+       v4l2_std_id std;
        __u32 service_set = 0;
        unsigned cnt = 0;
        int ret;
@@ -414,13 +417,29 @@ static int testFormatsType(struct node *node, unsigned 
type)
                break;
        case V4L2_BUF_TYPE_VBI_CAPTURE:
        case V4L2_BUF_TYPE_VBI_OUTPUT:
-               fail_on_test(!vbi.sampling_rate);
+               // Currently VBI assumes that you have G_STD as well.
+               fail_on_test(doioctl(node, VIDIOC_G_STD, &std));
+               if (std & V4L2_STD_625_50) {
+                       min_sampling_rate = 6937500;
+                       // the number of databits for PAL teletext is 18 (clock 
run in) +
+                       // 6 (framing code) + 42 * 8 (data).
+                       min_data_samples = (vbi.sampling_rate * (18 + 6 + 42 * 
8)) / min_sampling_rate;
+               } else {
+                       min_sampling_rate = 5727272;
+                       // the number of databits for NTSC teletext is 18 
(clock run in) +
+                       // 6 (framing code) + 34 * 8 (data).
+                       min_data_samples = (vbi.sampling_rate * (18 + 6 + 34 * 
8)) / min_sampling_rate;
+               }
+               fail_on_test(vbi.sampling_rate < min_sampling_rate);
                fail_on_test(!vbi.samples_per_line);
                fail_on_test(vbi.sample_format != V4L2_PIX_FMT_GREY);
                fail_on_test(vbi.offset > vbi.samples_per_line);
                ret = check_0(vbi.reserved, sizeof(vbi.reserved));
                if (ret)
                        return fail("vbi.reserved not zeroed\n");
+               // Check that offset leaves enough room for the maximum required
+               // amount of data.
+               fail_on_test(min_data_samples > vbi.samples_per_line - 
vbi.offset);
                fail_on_test(!vbi.count[0] || !vbi.count[1]);
                fail_on_test(vbi.flags & ~(V4L2_VBI_UNSYNC | 
V4L2_VBI_INTERLACED));
                if (vbi.flags & V4L2_VBI_INTERLACED)

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

Reply via email to