@@ -40,6 +40,7 @@ GST_DEBUG_CATEGORY_STATIC (gst_inference_base_overlay_debug_category);
40
40
#define MAX_THICKNESS 100
41
41
#define DEFAULT_LABELS NULL
42
42
#define DEFAULT_NUM_LABELS 0
43
+ #define DEFAULT_ENABLE TRUE
43
44
44
45
#define MIN_STYLE CLASSIC
45
46
#define DEFAULT_STYLE CLASSIC
56
57
PROP_THICKNESS,
57
58
PROP_LABELS,
58
59
PROP_STYLE,
59
- PROP_ALPHA_OVERLAY
60
+ PROP_ALPHA_OVERLAY,
61
+ PROP_ENABLE,
60
62
};
61
63
62
64
GType
@@ -85,6 +87,7 @@ struct _GstInferenceBaseOverlayPrivate
85
87
gint num_labels;
86
88
LineStyleBoundingBox style;
87
89
gdouble alpha_overlay;
90
+ gboolean enable;
88
91
};
89
92
/* prototypes */
90
93
static void gst_inference_base_overlay_set_property (GObject * object,
@@ -149,8 +152,14 @@ gst_inference_base_overlay_class_init (GstInferenceBaseOverlayClass * klass)
149
152
" Line style to draw the bounding box" , LINE_STYLE_BOUNDING_BOX,
150
153
DEFAULT_STYLE, G_PARAM_READWRITE));
151
154
g_object_class_install_property (gobject_class, PROP_ALPHA_OVERLAY,
152
- g_param_spec_double (" alpha_overlay" , " alpha" , " Overlay transparency" , MIN_ALPHA_OVERLAY,
153
- MAX_ALPHA_OVERLAY, DEFAULT_ALPHA_OVERLAY, G_PARAM_READWRITE));
155
+ g_param_spec_double (" alpha_overlay" , " alpha" , " Overlay transparency" ,
156
+ MIN_ALPHA_OVERLAY, MAX_ALPHA_OVERLAY, DEFAULT_ALPHA_OVERLAY,
157
+ G_PARAM_READWRITE));
158
+
159
+ g_object_class_install_property (gobject_class, PROP_ENABLE,
160
+ g_param_spec_boolean (" enable" , " Enable" ,
161
+ " Whether or not to overlay predictions on the buffers" ,
162
+ DEFAULT_ENABLE, G_PARAM_READWRITE));
154
163
155
164
base_transform_class->start =
156
165
GST_DEBUG_FUNCPTR (gst_inference_base_overlay_start);
@@ -173,6 +182,7 @@ gst_inference_base_overlay_init (GstInferenceBaseOverlay * inference_overlay)
173
182
priv->num_labels = DEFAULT_NUM_LABELS;
174
183
priv->style = DEFAULT_STYLE;
175
184
priv->alpha_overlay = DEFAULT_ALPHA_OVERLAY;
185
+ priv->enable = DEFAULT_ENABLE;
176
186
}
177
187
178
188
void
@@ -217,8 +227,11 @@ gst_inference_base_overlay_set_property (GObject * object, guint property_id,
217
227
break ;
218
228
case PROP_ALPHA_OVERLAY:
219
229
priv->alpha_overlay = g_value_get_double (value);
220
- GST_DEBUG_OBJECT (inference_overlay, " Changed overlay transparency to %lf" ,
221
- priv->alpha_overlay );
230
+ GST_DEBUG_OBJECT (inference_overlay,
231
+ " Changed overlay transparency to %lf" , priv->alpha_overlay );
232
+ break ;
233
+ case PROP_ENABLE:
234
+ priv->enable = g_value_get_boolean (value);
222
235
break ;
223
236
default :
224
237
G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
@@ -253,6 +266,9 @@ gst_inference_base_overlay_get_property (GObject * object, guint property_id,
253
266
case PROP_ALPHA_OVERLAY:
254
267
g_value_set_double (value, priv->alpha_overlay );
255
268
break ;
269
+ case PROP_ENABLE:
270
+ g_value_set_boolean (value, priv->enable );
271
+ break ;
256
272
default :
257
273
G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
258
274
break ;
@@ -337,6 +353,12 @@ gst_inference_base_overlay_transform_frame_ip (GstVideoFilter * trans,
337
353
338
354
g_return_val_if_fail (io_class->process_meta != NULL , GST_FLOW_ERROR);
339
355
356
+ if (FALSE == priv->enable ) {
357
+ GST_LOG_OBJECT (trans, " Overlay disabled" );
358
+ ret = GST_FLOW_OK;
359
+ goto out;
360
+ }
361
+
340
362
meta = gst_buffer_get_meta (frame->buffer , io_class->meta_type );
341
363
if (NULL == meta) {
342
364
GST_LOG_OBJECT (trans, " No inference meta found" );
0 commit comments