mirror of
https://gitlab.freedesktop.org/gstreamer/gstreamer.git
synced 2025-06-07 07:58:51 +00:00
jpegparse: Forward segment event after caps
Store it until we know what our caps are.
This commit is contained in:
parent
1648c0ba6a
commit
ce81c4eb48
1 changed files with 6 additions and 1 deletions
|
@ -92,6 +92,7 @@ struct _GstJpegParsePrivate
|
||||||
|
|
||||||
/* a new segment arrived */
|
/* a new segment arrived */
|
||||||
gboolean new_segment;
|
gboolean new_segment;
|
||||||
|
GstSegment segment;
|
||||||
|
|
||||||
/* the parsed frame size */
|
/* the parsed frame size */
|
||||||
guint16 width, height;
|
guint16 width, height;
|
||||||
|
@ -859,6 +860,8 @@ gst_jpeg_parse_push_buffer (GstJpegParse * parse, guint len)
|
||||||
("Can't set caps to the src pad"), ("Can't set caps to the src pad"));
|
("Can't set caps to the src pad"), ("Can't set caps to the src pad"));
|
||||||
return GST_FLOW_ERROR;
|
return GST_FLOW_ERROR;
|
||||||
}
|
}
|
||||||
|
gst_pad_push_event (parse->priv->srcpad,
|
||||||
|
gst_event_new_segment (&parse->priv->segment));
|
||||||
|
|
||||||
if (parse->priv->tags) {
|
if (parse->priv->tags) {
|
||||||
GST_DEBUG_OBJECT (parse, "Pushing tags: %" GST_PTR_FORMAT,
|
GST_DEBUG_OBJECT (parse, "Pushing tags: %" GST_PTR_FORMAT,
|
||||||
|
@ -975,7 +978,8 @@ gst_jpeg_parse_sink_event (GstPad * pad, GstObject * parent, GstEvent * event)
|
||||||
/* Discard any data in the adapter. There should have been an EOS before
|
/* Discard any data in the adapter. There should have been an EOS before
|
||||||
* to flush it. */
|
* to flush it. */
|
||||||
gst_adapter_clear (parse->priv->adapter);
|
gst_adapter_clear (parse->priv->adapter);
|
||||||
res = gst_pad_push_event (parse->priv->srcpad, event);
|
gst_event_copy_segment (event, &parse->priv->segment);
|
||||||
|
gst_event_unref (event);
|
||||||
parse->priv->new_segment = TRUE;
|
parse->priv->new_segment = TRUE;
|
||||||
break;
|
break;
|
||||||
case GST_EVENT_TAG:{
|
case GST_EVENT_TAG:{
|
||||||
|
@ -1024,6 +1028,7 @@ gst_jpeg_parse_change_state (GstElement * element, GstStateChange transition)
|
||||||
parse->priv->caps_width = parse->priv->caps_height = -1;
|
parse->priv->caps_width = parse->priv->caps_height = -1;
|
||||||
|
|
||||||
parse->priv->new_segment = FALSE;
|
parse->priv->new_segment = FALSE;
|
||||||
|
gst_segment_init (&parse->priv->segment, GST_FORMAT_UNDEFINED);
|
||||||
|
|
||||||
parse->priv->next_ts = GST_CLOCK_TIME_NONE;
|
parse->priv->next_ts = GST_CLOCK_TIME_NONE;
|
||||||
parse->priv->duration = GST_CLOCK_TIME_NONE;
|
parse->priv->duration = GST_CLOCK_TIME_NONE;
|
||||||
|
|
Loading…
Reference in a new issue