videotestsrc: add bar pattern

Simple bar with foreground color on the background color
This commit is contained in:
Thijs Vermeir 2010-09-16 17:14:20 +02:00
parent 2a868b70ec
commit 8d14994bb5
4 changed files with 36 additions and 1 deletions

View file

@ -135,6 +135,7 @@ gst_video_test_src_pattern_get_type (void)
{GST_VIDEO_TEST_SRC_SOLID, "Solid color", "solid-color"},
{GST_VIDEO_TEST_SRC_BALL, "Moving ball", "ball"},
{GST_VIDEO_TEST_SRC_SMPTE100, "SMPTE 100% color bars", "smpte100"},
{GST_VIDEO_TEST_SRC_BAR, "Bar", "bar"},
{0, NULL, NULL}
};
@ -424,6 +425,9 @@ gst_video_test_src_set_pattern (GstVideoTestSrc * videotestsrc,
case GST_VIDEO_TEST_SRC_SMPTE100:
videotestsrc->make_image = gst_video_test_src_smpte100;
break;
case GST_VIDEO_TEST_SRC_BAR:
videotestsrc->make_image = gst_video_test_src_bar;
break;
default:
g_assert_not_reached ();
}

View file

@ -58,6 +58,7 @@ G_BEGIN_DECLS
* @GST_VIDEO_TEST_SRC_CHROMA_ZONE_PLATE: Chroma zone plate
* @GST_VIDEO_TEST_SRC_BALL: Moving ball
* @GST_VIDEO_TEST_SRC_SMPTE100: SMPTE test pattern (100% color bars)
* @GST_VIDEO_TEST_SRC_BAR: Bar with foreground color
*
* The test pattern to produce.
*
@ -98,7 +99,8 @@ typedef enum {
GST_VIDEO_TEST_SRC_CHROMA_ZONE_PLATE,
GST_VIDEO_TEST_SRC_SOLID,
GST_VIDEO_TEST_SRC_BALL,
GST_VIDEO_TEST_SRC_SMPTE100
GST_VIDEO_TEST_SRC_SMPTE100,
GST_VIDEO_TEST_SRC_BAR
} GstVideoTestSrcPattern;
/**

View file

@ -887,6 +887,33 @@ gst_video_test_src_smpte100 (GstVideoTestSrc * v, unsigned char *dest, int w,
}
}
void
gst_video_test_src_bar (GstVideoTestSrc * v, unsigned char *dest, int w, int h)
{
int j;
paintinfo pi = { NULL, };
paintinfo *p = π
struct fourcc_list_struct *fourcc;
videotestsrc_setup_paintinfo (v, p, w, h);
fourcc = v->fourcc;
if (fourcc == NULL)
return;
fourcc->paint_setup (p, dest);
for (j = 0; j < h; j++) {
/* use fixed size for now */
int x2 = w / 7;
p->color = &p->foreground_color;
p->paint_tmpline (p, 0, x2);
p->color = &p->background_color;
p->paint_tmpline (p, x2, (w - x2));
videotestsrc_convert_tmpline (p, j);
}
}
void
gst_video_test_src_snow (GstVideoTestSrc * v, unsigned char *dest, int w, int h)
{

View file

@ -139,6 +139,8 @@ void gst_video_test_src_ball (GstVideoTestSrc * v,
unsigned char *dest, int w, int h);
void gst_video_test_src_smpte100 (GstVideoTestSrc * v,
unsigned char *dest, int w, int h);
void gst_video_test_src_bar (GstVideoTestSrc * v,
unsigned char *dest, int w, int h);
extern struct fourcc_list_struct fourcc_list[];
extern int n_fourccs;