{
struct v4l2_format fmt;
GValue interlace_formats = { 0, };
- GstVideoInterlaceMode interlace_mode;
+ GstVideoInterlaceMode interlace_mode, prev = -1;
const gchar *mode_strings[] = { "progressive",
"interleaved",
g_value_init (&interlace_enum, G_TYPE_STRING);
g_value_set_string (&interlace_enum, mode_strings[interlace_mode]);
gst_value_list_append_and_take_value (&interlace_formats, &interlace_enum);
+ prev = interlace_mode;
}
memset (&fmt, 0, sizeof (fmt));
fmt.fmt.pix.field = V4L2_FIELD_INTERLACED;
if (gst_v4l2_object_try_fmt (v4l2object, &fmt) == 0 &&
- gst_v4l2_object_get_interlace_mode (fmt.fmt.pix.field, &interlace_mode)) {
+ gst_v4l2_object_get_interlace_mode (fmt.fmt.pix.field, &interlace_mode) &&
+ prev != interlace_mode) {
GValue interlace_enum = { 0, };
g_value_init (&interlace_enum, G_TYPE_STRING);
g_value_set_string (&interlace_enum, mode_strings[interlace_mode]);