summaryrefslogtreecommitdiff
path: root/gst/camerabin2/gstwrappercamerabinsrc.c
diff options
context:
space:
mode:
Diffstat (limited to 'gst/camerabin2/gstwrappercamerabinsrc.c')
-rw-r--r--gst/camerabin2/gstwrappercamerabinsrc.c13
1 files changed, 12 insertions, 1 deletions
diff --git a/gst/camerabin2/gstwrappercamerabinsrc.c b/gst/camerabin2/gstwrappercamerabinsrc.c
index c263296b7..3b7a1d70c 100644
--- a/gst/camerabin2/gstwrappercamerabinsrc.c
+++ b/gst/camerabin2/gstwrappercamerabinsrc.c
@@ -280,9 +280,20 @@ gst_wrapper_camera_bin_src_vidsrc_probe (GstPad * pad, GstPadProbeInfo * info,
ret = GST_PAD_PROBE_OK;
} else if (self->video_rec_status == GST_VIDEO_RECORDING_STATUS_FINISHING) {
+ GstPad *peer;
+
/* send eos */
GST_DEBUG_OBJECT (self, "Finishing video recording, pushing eos");
- gst_pad_push_event (pad, gst_event_new_eos ());
+
+ peer = gst_pad_get_peer (self->vidsrc);
+
+ if (peer) {
+ /* send to the peer as we don't want our pads with eos flag */
+ gst_pad_send_event (peer, gst_event_new_eos ());
+ gst_object_unref (peer);
+ } else {
+ GST_WARNING_OBJECT (camerasrc, "No peer pad for vidsrc");
+ }
self->video_rec_status = GST_VIDEO_RECORDING_STATUS_DONE;
gst_base_camera_src_finish_capture (camerasrc);
} else {