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
@ -280,9 +280,20 @@ gst_wrapper_camera_bin_src_vidsrc_probe (GstPad * pad, GstPadProbeInfo * info,
|
|||||||
|
|
||||||
ret = GST_PAD_PROBE_OK;
|
ret = GST_PAD_PROBE_OK;
|
||||||
} else if (self->video_rec_status == GST_VIDEO_RECORDING_STATUS_FINISHING) {
|
} else if (self->video_rec_status == GST_VIDEO_RECORDING_STATUS_FINISHING) {
|
||||||
|
GstPad *peer;
|
||||||
|
|
||||||
/* send eos */
|
/* send eos */
|
||||||
GST_DEBUG_OBJECT (self, "Finishing video recording, pushing 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;
|
self->video_rec_status = GST_VIDEO_RECORDING_STATUS_DONE;
|
||||||
gst_base_camera_src_finish_capture (camerasrc);
|
gst_base_camera_src_finish_capture (camerasrc);
|
||||||
} else {
|
} else {
|
||||||
|
Loading…
x
Reference in New Issue
Block a user