mirror of
https://gitlab.freedesktop.org/gstreamer/gstreamer.git
synced 2024-12-18 22:36:33 +00:00
videotestsrc: add bar pattern
Simple bar with foreground color on the background color
This commit is contained in:
parent
2a868b70ec
commit
8d14994bb5
4 changed files with 36 additions and 1 deletions
|
@ -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_SOLID, "Solid color", "solid-color"},
|
||||||
{GST_VIDEO_TEST_SRC_BALL, "Moving ball", "ball"},
|
{GST_VIDEO_TEST_SRC_BALL, "Moving ball", "ball"},
|
||||||
{GST_VIDEO_TEST_SRC_SMPTE100, "SMPTE 100% color bars", "smpte100"},
|
{GST_VIDEO_TEST_SRC_SMPTE100, "SMPTE 100% color bars", "smpte100"},
|
||||||
|
{GST_VIDEO_TEST_SRC_BAR, "Bar", "bar"},
|
||||||
{0, NULL, NULL}
|
{0, NULL, NULL}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -424,6 +425,9 @@ gst_video_test_src_set_pattern (GstVideoTestSrc * videotestsrc,
|
||||||
case GST_VIDEO_TEST_SRC_SMPTE100:
|
case GST_VIDEO_TEST_SRC_SMPTE100:
|
||||||
videotestsrc->make_image = gst_video_test_src_smpte100;
|
videotestsrc->make_image = gst_video_test_src_smpte100;
|
||||||
break;
|
break;
|
||||||
|
case GST_VIDEO_TEST_SRC_BAR:
|
||||||
|
videotestsrc->make_image = gst_video_test_src_bar;
|
||||||
|
break;
|
||||||
default:
|
default:
|
||||||
g_assert_not_reached ();
|
g_assert_not_reached ();
|
||||||
}
|
}
|
||||||
|
|
|
@ -58,6 +58,7 @@ G_BEGIN_DECLS
|
||||||
* @GST_VIDEO_TEST_SRC_CHROMA_ZONE_PLATE: Chroma zone plate
|
* @GST_VIDEO_TEST_SRC_CHROMA_ZONE_PLATE: Chroma zone plate
|
||||||
* @GST_VIDEO_TEST_SRC_BALL: Moving ball
|
* @GST_VIDEO_TEST_SRC_BALL: Moving ball
|
||||||
* @GST_VIDEO_TEST_SRC_SMPTE100: SMPTE test pattern (100% color bars)
|
* @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.
|
* The test pattern to produce.
|
||||||
*
|
*
|
||||||
|
@ -98,7 +99,8 @@ typedef enum {
|
||||||
GST_VIDEO_TEST_SRC_CHROMA_ZONE_PLATE,
|
GST_VIDEO_TEST_SRC_CHROMA_ZONE_PLATE,
|
||||||
GST_VIDEO_TEST_SRC_SOLID,
|
GST_VIDEO_TEST_SRC_SOLID,
|
||||||
GST_VIDEO_TEST_SRC_BALL,
|
GST_VIDEO_TEST_SRC_BALL,
|
||||||
GST_VIDEO_TEST_SRC_SMPTE100
|
GST_VIDEO_TEST_SRC_SMPTE100,
|
||||||
|
GST_VIDEO_TEST_SRC_BAR
|
||||||
} GstVideoTestSrcPattern;
|
} GstVideoTestSrcPattern;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
|
@ -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
|
void
|
||||||
gst_video_test_src_snow (GstVideoTestSrc * v, unsigned char *dest, int w, int h)
|
gst_video_test_src_snow (GstVideoTestSrc * v, unsigned char *dest, int w, int h)
|
||||||
{
|
{
|
||||||
|
|
|
@ -139,6 +139,8 @@ void gst_video_test_src_ball (GstVideoTestSrc * v,
|
||||||
unsigned char *dest, int w, int h);
|
unsigned char *dest, int w, int h);
|
||||||
void gst_video_test_src_smpte100 (GstVideoTestSrc * v,
|
void gst_video_test_src_smpte100 (GstVideoTestSrc * v,
|
||||||
unsigned char *dest, int w, int h);
|
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 struct fourcc_list_struct fourcc_list[];
|
||||||
extern int n_fourccs;
|
extern int n_fourccs;
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue