wrappercamerabinsrc: Add local mode
authorThiago Santos <thiago.sousa.santos@collabora.co.uk>
Fri, 17 Dec 2010 01:49:24 +0000 (22:49 -0300)
committerThiago Santos <thiago.sousa.santos@collabora.co.uk>
Thu, 23 Dec 2010 16:24:55 +0000 (13:24 -0300)
gst/camerabin2/gstwrappercamerabinsrc.c
gst/camerabin2/gstwrappercamerabinsrc.h

index bcbddc6..747913b 100644 (file)
@@ -417,6 +417,9 @@ gst_wrapper_camera_bin_src_set_mode (GstBaseCameraSrc * bcamsrc,
     GstCameraBinMode mode)
 {
   GstPhotography *photography = gst_base_camera_src_get_photography (bcamsrc);
+  GstWrapperCameraBinSrc *self = GST_WRAPPER_CAMERA_BIN_SRC (bcamsrc);
+
+  self->mode = mode;
 
   if (photography) {
     if (g_object_class_find_property (G_OBJECT_GET_CLASS (photography),
@@ -691,10 +694,10 @@ gst_wrapper_camera_bin_src_start_capture (GstBaseCameraSrc * camerasrc)
   GstWrapperCameraBinSrc *src = GST_WRAPPER_CAMERA_BIN_SRC (camerasrc);
 
   /* TODO shoud we access this directly? Maybe a macro is better? */
-  if (camerasrc->mode == MODE_IMAGE) {
+  if (src->mode == MODE_IMAGE) {
     src->image_capture_count = 1;
     start_image_capture (src);
-  } else if (camerasrc->mode == MODE_VIDEO) {
+  } else if (src->mode == MODE_VIDEO) {
     if (src->video_rec_status == GST_VIDEO_RECORDING_STATUS_DONE) {
       src->video_rec_status = GST_VIDEO_RECORDING_STATUS_STARTING;
     }
@@ -711,7 +714,7 @@ gst_wrapper_camera_bin_src_stop_capture (GstBaseCameraSrc * camerasrc)
   GstWrapperCameraBinSrc *src = GST_WRAPPER_CAMERA_BIN_SRC (camerasrc);
 
   /* TODO shoud we access this directly? Maybe a macro is better? */
-  if (camerasrc->mode == MODE_VIDEO) {
+  if (src->mode == MODE_VIDEO) {
     if (src->video_rec_status == GST_VIDEO_RECORDING_STATUS_STARTING) {
       GST_DEBUG_OBJECT (src, "Aborting, had not started recording");
       src->video_rec_status = GST_VIDEO_RECORDING_STATUS_DONE;
@@ -794,6 +797,9 @@ gst_wrapper_camera_bin_src_init (GstWrapperCameraBinSrc * self,
   /* TODO where are variables reset? */
   self->image_capture_count = 0;
   self->video_rec_status = GST_VIDEO_RECORDING_STATUS_DONE;
+  self->video_renegotiate = FALSE;
+  self->image_renegotiate = FALSE;
+  self->mode = GST_BASE_CAMERA_SRC_CAST (self)->mode;
 }
 
 gboolean
index c06a9bb..dc65f33 100644 (file)
@@ -57,6 +57,8 @@ struct _GstWrapperCameraBinSrc
 {
   GstBaseCameraSrc parent;
 
+  GstCameraBinMode mode;
+
   GstPad *vfsrc;
   GstPad *imgsrc;
   GstPad *vidsrc;