qcamsrc: add binning property
This commit is contained in:
parent
6c62aa3548
commit
b13bcc5212
@ -78,7 +78,8 @@ enum
|
|||||||
PROP_X,
|
PROP_X,
|
||||||
PROP_Y,
|
PROP_Y,
|
||||||
PROP_WIDTH,
|
PROP_WIDTH,
|
||||||
PROP_HEIGHT
|
PROP_HEIGHT,
|
||||||
|
PROP_BINNING
|
||||||
};
|
};
|
||||||
|
|
||||||
#define DEFAULT_PROP_DEVICE_INDEX 0
|
#define DEFAULT_PROP_DEVICE_INDEX 0
|
||||||
@ -92,7 +93,7 @@ enum
|
|||||||
#define DEFAULT_PROP_Y 0
|
#define DEFAULT_PROP_Y 0
|
||||||
#define DEFAULT_PROP_WIDTH 0
|
#define DEFAULT_PROP_WIDTH 0
|
||||||
#define DEFAULT_PROP_HEIGHT 0
|
#define DEFAULT_PROP_HEIGHT 0
|
||||||
|
#define DEFAULT_PROP_BINNING 1
|
||||||
|
|
||||||
/* pad templates */
|
/* pad templates */
|
||||||
static GstStaticPadTemplate gst_qcamsrc_src_template =
|
static GstStaticPadTemplate gst_qcamsrc_src_template =
|
||||||
@ -207,6 +208,10 @@ gst_qcamsrc_class_init (GstQcamSrcClass * klass)
|
|||||||
g_param_spec_int ("height", "ROI height", "ROI height", 0, G_MAXINT,
|
g_param_spec_int ("height", "ROI height", "ROI height", 0, G_MAXINT,
|
||||||
DEFAULT_PROP_HEIGHT,
|
DEFAULT_PROP_HEIGHT,
|
||||||
(GParamFlags) (G_PARAM_STATIC_STRINGS | G_PARAM_READWRITE)));
|
(GParamFlags) (G_PARAM_STATIC_STRINGS | G_PARAM_READWRITE)));
|
||||||
|
g_object_class_install_property (G_OBJECT_CLASS (klass), PROP_BINNING,
|
||||||
|
g_param_spec_int ("binning", "Binning", "Symmetrical binning", 1, 8,
|
||||||
|
DEFAULT_PROP_BINNING,
|
||||||
|
(GParamFlags) (G_PARAM_STATIC_STRINGS | G_PARAM_READWRITE)));
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
@ -222,6 +227,7 @@ gst_qcamsrc_reset (GstQcamSrc * src)
|
|||||||
src->y = DEFAULT_PROP_Y;
|
src->y = DEFAULT_PROP_Y;
|
||||||
src->width = DEFAULT_PROP_WIDTH;
|
src->width = DEFAULT_PROP_WIDTH;
|
||||||
src->height = DEFAULT_PROP_HEIGHT;
|
src->height = DEFAULT_PROP_HEIGHT;
|
||||||
|
src->binning = DEFAULT_PROP_BINNING;
|
||||||
|
|
||||||
src->last_frame_count = 0;
|
src->last_frame_count = 0;
|
||||||
src->total_dropped_frames = 0;
|
src->total_dropped_frames = 0;
|
||||||
@ -329,6 +335,9 @@ gst_qcamsrc_set_property (GObject * object, guint property_id,
|
|||||||
case PROP_HEIGHT:
|
case PROP_HEIGHT:
|
||||||
src->height = g_value_get_int (value);
|
src->height = g_value_get_int (value);
|
||||||
break;
|
break;
|
||||||
|
case PROP_BINNING:
|
||||||
|
src->binning = g_value_get_int (value);
|
||||||
|
break;
|
||||||
default:
|
default:
|
||||||
G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
|
G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
|
||||||
break;
|
break;
|
||||||
@ -378,6 +387,9 @@ gst_qcamsrc_get_property (GObject * object, guint property_id,
|
|||||||
case PROP_HEIGHT:
|
case PROP_HEIGHT:
|
||||||
g_value_set_int (value, src->height);
|
g_value_set_int (value, src->height);
|
||||||
break;
|
break;
|
||||||
|
case PROP_BINNING:
|
||||||
|
g_value_set_int (value, src->binning);
|
||||||
|
break;
|
||||||
default:
|
default:
|
||||||
G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
|
G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
|
||||||
break;
|
break;
|
||||||
@ -513,6 +525,7 @@ gst_qcamsrc_setup_stream (GstQcamSrc * src)
|
|||||||
}
|
}
|
||||||
|
|
||||||
err = QCam_SetParam (&src->qsettings, qprmImageFormat, src->format);
|
err = QCam_SetParam (&src->qsettings, qprmImageFormat, src->format);
|
||||||
|
err = QCam_SetParam (&src->qsettings, qprmBinning, src->binning);
|
||||||
err = QCam_SetParam (&src->qsettings, qprmRoiX, src->x);
|
err = QCam_SetParam (&src->qsettings, qprmRoiX, src->x);
|
||||||
err = QCam_SetParam (&src->qsettings, qprmRoiX, src->y);
|
err = QCam_SetParam (&src->qsettings, qprmRoiX, src->y);
|
||||||
if (src->width > 0)
|
if (src->width > 0)
|
||||||
|
|||||||
@ -56,6 +56,7 @@ struct _GstQcamSrc
|
|||||||
gint y;
|
gint y;
|
||||||
gint width;
|
gint width;
|
||||||
gint height;
|
gint height;
|
||||||
|
gint binning;
|
||||||
|
|
||||||
GAsyncQueue *queue;
|
GAsyncQueue *queue;
|
||||||
GstClockTime base_time;
|
GstClockTime base_time;
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user