diff options
Diffstat (limited to 'gst/camerabin2/gstwrappercamerabinsrc.c')
-rw-r--r-- | gst/camerabin2/gstwrappercamerabinsrc.c | 13 |
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 { |