mirror of
https://gitlab.freedesktop.org/gstreamer/gstreamer.git
synced 2024-11-23 18:21:04 +00:00
wrappercamerabinsrc: rework video recording eos push
Push EOS outside of wrappercamerabinsrc so that none of the internal elements gets its pads into eos state, preventing any further data from passing
This commit is contained in:
parent
4f2bcc3243
commit
9fd555c3d0
1 changed files with 12 additions and 1 deletions
|
@ -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 {
|
||||
|
|
Loading…
Reference in a new issue