From c5b66243bee2a9ee9553d14af1ae431c8a0dbc70 Mon Sep 17 00:00:00 2001 From: David Schleef Date: Tue, 18 Dec 2007 01:01:23 +0000 Subject: [PATCH] gst/videotestsrc/gstvideotestsrc.*: Add a "blink" pattern. Turn on the pain. Apologies. It's useful for testing ve... Original commit message from CVS: * gst/videotestsrc/gstvideotestsrc.c: * gst/videotestsrc/gstvideotestsrc.h: Add a "blink" pattern. Turn on the pain. Apologies. It's useful for testing vertical refresh synchronization. --- ChangeLog | 7 +++++++ gst/videotestsrc/gstvideotestsrc.c | 20 +++++++++++++++++--- gst/videotestsrc/gstvideotestsrc.h | 4 +++- 3 files changed, 27 insertions(+), 4 deletions(-) diff --git a/ChangeLog b/ChangeLog index 07a0153..77cf28e 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,5 +1,12 @@ 2007-12-17 David Schleef + * gst/videotestsrc/gstvideotestsrc.c: + * gst/videotestsrc/gstvideotestsrc.h: + Add a "blink" pattern. Turn on the pain. Apologies. It's useful + for testing vertical refresh synchronization. + +2007-12-17 David Schleef + * docs/libs/gst-plugins-base-libs-sections.txt: * gst-libs/gst/video/video.c: * gst-libs/gst/video/video.h: diff --git a/gst/videotestsrc/gstvideotestsrc.c b/gst/videotestsrc/gstvideotestsrc.c index e78ddcf..8691106 100644 --- a/gst/videotestsrc/gstvideotestsrc.c +++ b/gst/videotestsrc/gstvideotestsrc.c @@ -114,6 +114,7 @@ gst_video_test_src_pattern_get_type (void) {GST_VIDEO_TEST_SRC_CHECKERS4, "Checkers 4px", "checkers-4"}, {GST_VIDEO_TEST_SRC_CHECKERS8, "Checkers 8px", "checkers-8"}, {GST_VIDEO_TEST_SRC_CIRCULAR, "Circular", "circular"}, + {GST_VIDEO_TEST_SRC_BLINK, "Blink", "blink"}, {0, NULL, NULL} }; @@ -153,7 +154,7 @@ gst_video_test_src_class_init (GstVideoTestSrcClass * klass) g_object_class_install_property (gobject_class, PROP_PATTERN, g_param_spec_enum ("pattern", "Pattern", "Type of test pattern to generate", GST_TYPE_VIDEO_TEST_SRC_PATTERN, - 1, G_PARAM_READWRITE)); + GST_VIDEO_TEST_SRC_SMPTE, G_PARAM_READWRITE)); g_object_class_install_property (gobject_class, PROP_TIMESTAMP_OFFSET, g_param_spec_int64 ("timestamp-offset", "Timestamp offset", @@ -247,6 +248,9 @@ gst_video_test_src_set_pattern (GstVideoTestSrc * videotestsrc, case GST_VIDEO_TEST_SRC_CIRCULAR: videotestsrc->make_image = gst_video_test_src_circular; break; + case GST_VIDEO_TEST_SRC_BLINK: + videotestsrc->make_image = gst_video_test_src_black; + break; default: g_assert_not_reached (); } @@ -565,8 +569,18 @@ gst_video_test_src_create (GstPushSrc * psrc, GstBuffer ** buffer) gst_buffer_set_caps (outbuf, GST_PAD_CAPS (GST_BASE_SRC_PAD (psrc))); #endif - src->make_image (src, (void *) GST_BUFFER_DATA (outbuf), - src->width, src->height); + if (src->pattern_type == GST_VIDEO_TEST_SRC_BLINK) { + if (src->n_frames & 0x1) { + gst_video_test_src_white (src, (void *) GST_BUFFER_DATA (outbuf), + src->width, src->height); + } else { + gst_video_test_src_black (src, (void *) GST_BUFFER_DATA (outbuf), + src->width, src->height); + } + } else { + src->make_image (src, (void *) GST_BUFFER_DATA (outbuf), + src->width, src->height); + } GST_BUFFER_TIMESTAMP (outbuf) = src->timestamp_offset + src->running_time; GST_BUFFER_OFFSET (outbuf) = src->n_frames; diff --git a/gst/videotestsrc/gstvideotestsrc.h b/gst/videotestsrc/gstvideotestsrc.h index 0027ffb..17569a1 100644 --- a/gst/videotestsrc/gstvideotestsrc.h +++ b/gst/videotestsrc/gstvideotestsrc.h @@ -51,6 +51,7 @@ G_BEGIN_DECLS * @GST_VIDEO_TEST_SRC_CHECKERS4: Checkers pattern (4px) * @GST_VIDEO_TEST_SRC_CHECKERS8: Checkers pattern (8px) * @GST_VIDEO_TEST_SRC_CIRCULAR: Circular pattern + * @GST_VIDEO_TEST_SRC_BLINK: Alternate between black and white * * The test pattern to produce. */ @@ -66,7 +67,8 @@ typedef enum { GST_VIDEO_TEST_SRC_CHECKERS2, GST_VIDEO_TEST_SRC_CHECKERS4, GST_VIDEO_TEST_SRC_CHECKERS8, - GST_VIDEO_TEST_SRC_CIRCULAR + GST_VIDEO_TEST_SRC_CIRCULAR, + GST_VIDEO_TEST_SRC_BLINK } GstVideoTestSrcPattern; typedef struct _GstVideoTestSrc GstVideoTestSrc; -- 2.7.4