uvch264src: No need to drop segment events
In 1.0, segment events are sticky and not additive, no need to prevent their accumulation.
This commit is contained in:
parent
fb9fbc8fba
commit
5ac10edde7
@ -533,8 +533,6 @@ gst_uvc_h264_src_init (GstUvcH264Src * self)
|
|||||||
g_signal_connect (self->vfsrc, "unlinked",
|
g_signal_connect (self->vfsrc, "unlinked",
|
||||||
(GCallback) gst_uvc_h264_src_pad_linking_cb, self);
|
(GCallback) gst_uvc_h264_src_pad_linking_cb, self);
|
||||||
|
|
||||||
self->vid_newseg = FALSE;
|
|
||||||
self->vf_newseg = FALSE;
|
|
||||||
self->v4l2_fd = -1;
|
self->v4l2_fd = -1;
|
||||||
gst_base_camera_src_set_mode (GST_BASE_CAMERA_SRC (self), MODE_VIDEO);
|
gst_base_camera_src_set_mode (GST_BASE_CAMERA_SRC (self), MODE_VIDEO);
|
||||||
|
|
||||||
@ -1516,15 +1514,6 @@ gst_uvc_h264_src_event_probe (GstPad * pad, GstPadProbeInfo * info,
|
|||||||
case GST_EVENT_EOS:
|
case GST_EVENT_EOS:
|
||||||
ret = self->reconfiguring ? GST_PAD_PROBE_DROP : GST_PAD_PROBE_OK;
|
ret = self->reconfiguring ? GST_PAD_PROBE_DROP : GST_PAD_PROBE_OK;
|
||||||
break;
|
break;
|
||||||
case GST_EVENT_SEGMENT:
|
|
||||||
if (pad == self->vidsrc) {
|
|
||||||
ret = self->vid_newseg ? GST_PAD_PROBE_DROP : GST_PAD_PROBE_OK;
|
|
||||||
self->vid_newseg = TRUE;
|
|
||||||
} else if (pad == self->vfsrc) {
|
|
||||||
ret = self->vf_newseg ? GST_PAD_PROBE_DROP : GST_PAD_PROBE_OK;
|
|
||||||
self->vf_newseg = TRUE;
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
default:
|
default:
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
@ -1725,7 +1714,7 @@ gst_uvc_h264_src_event (GstPad * pad, GstObject * parent, GstEvent * event)
|
|||||||
|
|
||||||
switch (GST_EVENT_TYPE (event)) {
|
switch (GST_EVENT_TYPE (event)) {
|
||||||
case GST_EVENT_SEGMENT:
|
case GST_EVENT_SEGMENT:
|
||||||
if (!self->vid_newseg && pad == self->vidsrc) {
|
if (pad == self->vidsrc) {
|
||||||
const GstSegment *s;
|
const GstSegment *s;
|
||||||
|
|
||||||
gst_event_parse_segment (event, &s);
|
gst_event_parse_segment (event, &s);
|
||||||
@ -1733,12 +1722,8 @@ gst_uvc_h264_src_event (GstPad * pad, GstObject * parent, GstEvent * event)
|
|||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case GST_EVENT_FLUSH_STOP:
|
case GST_EVENT_FLUSH_STOP:
|
||||||
if (pad == self->vidsrc) {
|
if (pad == self->vidsrc)
|
||||||
gst_segment_init (&self->segment, GST_FORMAT_UNDEFINED);
|
gst_segment_init (&self->segment, GST_FORMAT_UNDEFINED);
|
||||||
self->vid_newseg = FALSE;
|
|
||||||
}
|
|
||||||
if (pad == self->vfsrc)
|
|
||||||
self->vf_newseg = FALSE;
|
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
if (gst_uvc_h264_src_parse_event (self, pad, event))
|
if (gst_uvc_h264_src_parse_event (self, pad, event))
|
||||||
@ -3134,10 +3119,6 @@ gst_uvc_h264_src_change_state (GstElement * element, GstStateChange trans)
|
|||||||
goto end;
|
goto end;
|
||||||
|
|
||||||
switch (trans) {
|
switch (trans) {
|
||||||
case GST_STATE_CHANGE_PAUSED_TO_READY:
|
|
||||||
self->vid_newseg = FALSE;
|
|
||||||
self->vf_newseg = FALSE;
|
|
||||||
break;
|
|
||||||
case GST_STATE_CHANGE_READY_TO_NULL:
|
case GST_STATE_CHANGE_READY_TO_NULL:
|
||||||
gst_uvc_h264_src_destroy_pipeline (self, TRUE);
|
gst_uvc_h264_src_destroy_pipeline (self, TRUE);
|
||||||
break;
|
break;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user