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
