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 {