vid->pending_eos = NULL;
+ vid->mute = ARG_DEFAULT_MUTE;
+
/* Create src and sink ghost pads */
vid->sinkpad = gst_ghost_pad_new_no_target ("sink", GST_PAD_SINK);
gst_element_add_pad (GST_ELEMENT (vid), vid->sinkpad);
GST_WARNING_OBJECT (vid, "unable to add volume element");
/* gst_camerabin_try_add_element() destroyed the element */
vid->volume = NULL;
+ } else {
+ g_object_set (vid->volume, "mute", vid->mute, NULL);
}
/* Add user set or default audio encoder element */
void
gst_camerabin_video_set_mute (GstCameraBinVideo * vid, gboolean mute)
{
- if (vid && vid->volume) {
- GST_DEBUG_OBJECT (vid, "setting mute %s", mute ? "on" : "off");
+ g_return_if_fail (vid != NULL);
+
+ GST_DEBUG_OBJECT (vid, "setting mute %s", mute ? "on" : "off");
+ vid->mute = mute;
+ if (vid->volume) {
g_object_set (vid->volume, "mute", mute, NULL);
}
}
gboolean
gst_camerabin_video_get_mute (GstCameraBinVideo * vid)
{
- gboolean mute = ARG_DEFAULT_MUTE;
+ g_return_val_if_fail (vid != NULL, FALSE);
- if (vid && vid->volume) {
- g_object_get (vid->volume, "mute", &mute, NULL);
+ if (vid->volume) {
+ g_object_get (vid->volume, "mute", &vid->mute, NULL);
}
- return mute;
+
+ return vid->mute;
}
GstElement *
#include <gst/gstbin.h>
G_BEGIN_DECLS
-
//#define USE_TIMEOVERLAY 1
-
#define ARG_DEFAULT_MUTE FALSE
-
#define GST_TYPE_CAMERABIN_VIDEO (gst_camerabin_video_get_type())
#define GST_CAMERABIN_VIDEO_CAST(obj) ((GstCameraBinVideo*)(obj))
#define GST_CAMERABIN_VIDEO(obj) (G_TYPE_CHECK_INSTANCE_CAST((obj),GST_TYPE_CAMERABIN_VIDEO,GstCameraBinVideo))
#define GST_CAMERABIN_VIDEO_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST((klass),GST_TYPE_CAMERABIN_VIDEO,GstCameraBinVideoClass))
#define GST_IS_CAMERABIN_VIDEO(obj) (G_TYPE_CHECK_INSTANCE_TYPE((obj),GST_TYPE_CAMERABIN_VIDEO))
#define GST_IS_CAMERABIN_VIDEO_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE((klass),GST_TYPE_CAMERABIN_VIDEO))
-
/**
* GstCameraBinVideo:
*
* The opaque #GstCameraBinVideo structure.
*/
-
typedef struct _GstCameraBinVideo GstCameraBinVideo;
typedef struct _GstCameraBinVideoClass GstCameraBinVideoClass;
GstElement *muxer; /* Muxer */
GstEvent *pending_eos;
+
+ gboolean mute;
};
struct _GstCameraBinVideoClass
GstElement *gst_camerabin_video_get_audio_src (GstCameraBinVideo * vid);
G_END_DECLS
-
#endif /* #ifndef __CAMERABIN_VIDEO_H__ */