summaryrefslogtreecommitdiff
authorThiago Santos <thiago.sousa.santos@collabora.co.uk>2011-02-01 14:19:53 (GMT)
committer Thiago Santos <thiago.sousa.santos@collabora.co.uk>2011-02-03 22:09:20 (GMT)
commit48b05a3002f48faffdaabfbf3997b2bdda273aaf (patch) (side-by-side diff)
tree6850855cbadfb42dfd2838833b1329bf2435c1e0
parent1a62d9374b228dc5bd3fb8c7da2212ceb5506430 (diff)
downloadgst-plugins-bad-48b05a3002f48faffdaabfbf3997b2bdda273aaf.zip
gst-plugins-bad-48b05a3002f48faffdaabfbf3997b2bdda273aaf.tar.gz
wrappercamerabinsrc: Fix preview messages
Image previews where being posted in sync with the buffers timestamps, this makes no sense as previews should be posted ASAP. Also adds some debugging messages.
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--gst/camerabin2/camerabingeneral.c2
-rw-r--r--gst/camerabin2/gstwrappercamerabinsrc.c19
2 files changed, 17 insertions, 4 deletions
diff --git a/gst/camerabin2/camerabingeneral.c b/gst/camerabin2/camerabingeneral.c
index 26edc12..2f5bd05 100644
--- a/gst/camerabin2/camerabingeneral.c
+++ b/gst/camerabin2/camerabingeneral.c
@@ -375,6 +375,8 @@ gst_camerabin_create_preview_pipeline (GstElement * element,
gst_app_sink_set_callbacks ((GstAppSink *) data->appsink, &callbacks, data,
NULL);
+ g_object_set (data->appsink, "sync", FALSE, NULL);
+
data->element = element;
data->filter = filter;
diff --git a/gst/camerabin2/gstwrappercamerabinsrc.c b/gst/camerabin2/gstwrappercamerabinsrc.c
index 0f2e609..bfe8c47 100644
--- a/gst/camerabin2/gstwrappercamerabinsrc.c
+++ b/gst/camerabin2/gstwrappercamerabinsrc.c
@@ -115,9 +115,13 @@ gst_wrapper_camera_bin_src_set_property (GObject * object,
case PROP_PREVIEW_CAPS:
gst_caps_replace (&self->preview_caps,
(GstCaps *) gst_value_get_caps (value));
- if (self->preview_pipeline)
+ if (self->preview_pipeline) {
+ GST_DEBUG_OBJECT (self,
+ "Setting preview pipeline caps %" GST_PTR_FORMAT,
+ self->preview_caps);
gst_camerabin_preview_set_caps (self->preview_pipeline,
(GstCaps *) gst_value_get_caps (value));
+ }
break;
case PROP_PREVIEW_FILTER:
if (self->preview_filter)
@@ -236,8 +240,10 @@ gst_wrapper_camera_bin_src_imgsrc_probe (GstPad * pad, GstBuffer * buffer,
/* post preview */
/* TODO This can likely be optimized if the viewfinder caps is the same as
* the preview caps, avoiding another scaling of the same buffer. */
- if (self->post_previews)
+ if (self->post_previews) {
+ GST_DEBUG_OBJECT (self, "Posting preview for image");
gst_camerabin_preview_pipeline_post (self->preview_pipeline, buffer);
+ }
if (self->image_capture_count == 0) {
gst_base_camera_src_finish_capture (camerasrc);
@@ -285,8 +291,10 @@ gst_wrapper_camera_bin_src_vidsrc_probe (GstPad * pad, GstBuffer * buffer,
self->video_rec_status = GST_VIDEO_RECORDING_STATUS_RUNNING;
/* post preview */
- if (self->post_previews)
+ if (self->post_previews) {
+ GST_DEBUG_OBJECT (self, "Posting preview for video");
gst_camerabin_preview_pipeline_post (self->preview_pipeline, buffer);
+ }
ret = TRUE;
} else if (self->video_rec_status == GST_VIDEO_RECORDING_STATUS_FINISHING) {
@@ -504,8 +512,11 @@ gst_wrapper_camera_bin_src_construct_pipeline (GstBaseCameraSrc * bcamsrc)
g_assert (self->preview_pipeline != NULL);
self->preview_filter_changed = FALSE;
- if (self->preview_caps)
+ if (self->preview_caps) {
+ GST_DEBUG_OBJECT (self, "Setting preview pipeline caps %" GST_PTR_FORMAT,
+ self->preview_caps);
gst_camerabin_preview_set_caps (self->preview_pipeline, self->preview_caps);
+ }
ret = TRUE;
self->elements_created = TRUE;