mirror of
https://gitlab.freedesktop.org/gstreamer/gstreamer.git
synced 2025-02-17 11:45:25 +00:00
gst/: Sync _handle_src_event() with oggdemux. In avidemux also ref the element when we should, but not when we its no...
Original commit message from CVS: * gst/avi/gstavidemux.c: * gst/qtdemux/qtdemux.c: Sync _handle_src_event() with oggdemux. In avidemux also ref the element when we should, but not when we its not needed.
This commit is contained in:
parent
546ec34716
commit
8ae866e5c6
3 changed files with 18 additions and 15 deletions
|
@ -1,3 +1,10 @@
|
||||||
|
2007-11-12 Stefan Kost <ensonic@users.sf.net>
|
||||||
|
|
||||||
|
* gst/avi/gstavidemux.c:
|
||||||
|
* gst/qtdemux/qtdemux.c:
|
||||||
|
Sync _handle_src_event() with oggdemux. In avidemux also ref the
|
||||||
|
element when we should, but not when we its not needed.
|
||||||
|
|
||||||
2007-11-08 Stefan Kost <ensonic@users.sf.net>
|
2007-11-08 Stefan Kost <ensonic@users.sf.net>
|
||||||
|
|
||||||
* gst/wavparse/gstwavparse.c:
|
* gst/wavparse/gstwavparse.c:
|
||||||
|
|
|
@ -374,7 +374,7 @@ gst_avi_demux_src_convert (GstPad * pad,
|
||||||
gint64 src_value, GstFormat * dest_format, gint64 * dest_value)
|
gint64 src_value, GstFormat * dest_format, gint64 * dest_value)
|
||||||
{
|
{
|
||||||
gboolean res = TRUE;
|
gboolean res = TRUE;
|
||||||
GstAviDemux *avidemux = GST_AVI_DEMUX (gst_pad_get_parent (pad));
|
GstAviDemux *avidemux = GST_AVI_DEMUX (GST_PAD_PARENT (pad));
|
||||||
|
|
||||||
avi_stream_context *stream = gst_pad_get_element_private (pad);
|
avi_stream_context *stream = gst_pad_get_element_private (pad);
|
||||||
|
|
||||||
|
@ -446,7 +446,6 @@ done:
|
||||||
GST_LOG_OBJECT (avidemux,
|
GST_LOG_OBJECT (avidemux,
|
||||||
"Returning res:%d dest_format:%s dest_value:%" G_GUINT64_FORMAT, res,
|
"Returning res:%d dest_format:%s dest_value:%" G_GUINT64_FORMAT, res,
|
||||||
gst_format_get_name (*dest_format), *dest_value);
|
gst_format_get_name (*dest_format), *dest_value);
|
||||||
gst_object_unref (avidemux);
|
|
||||||
return res;
|
return res;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -467,7 +466,7 @@ static gboolean
|
||||||
gst_avi_demux_handle_src_query (GstPad * pad, GstQuery * query)
|
gst_avi_demux_handle_src_query (GstPad * pad, GstQuery * query)
|
||||||
{
|
{
|
||||||
gboolean res = TRUE;
|
gboolean res = TRUE;
|
||||||
GstAviDemux *avi = GST_AVI_DEMUX (GST_PAD_PARENT (pad));
|
GstAviDemux *avi = GST_AVI_DEMUX (gst_pad_get_parent (pad));
|
||||||
|
|
||||||
avi_stream_context *stream = gst_pad_get_element_private (pad);
|
avi_stream_context *stream = gst_pad_get_element_private (pad);
|
||||||
|
|
||||||
|
@ -571,6 +570,7 @@ gst_avi_demux_handle_src_query (GstPad * pad, GstQuery * query)
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
gst_object_unref (avi);
|
||||||
return res;
|
return res;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -591,7 +591,7 @@ static gboolean
|
||||||
gst_avi_demux_handle_src_event (GstPad * pad, GstEvent * event)
|
gst_avi_demux_handle_src_event (GstPad * pad, GstEvent * event)
|
||||||
{
|
{
|
||||||
gboolean res = TRUE;
|
gboolean res = TRUE;
|
||||||
GstAviDemux *avi = GST_AVI_DEMUX (GST_PAD_PARENT (pad));
|
GstAviDemux *avi = GST_AVI_DEMUX (gst_pad_get_parent (pad));
|
||||||
|
|
||||||
GST_DEBUG_OBJECT (avi,
|
GST_DEBUG_OBJECT (avi,
|
||||||
"have event type %s: %p on src pad", GST_EVENT_TYPE_NAME (event), event);
|
"have event type %s: %p on src pad", GST_EVENT_TYPE_NAME (event), event);
|
||||||
|
@ -600,18 +600,15 @@ gst_avi_demux_handle_src_event (GstPad * pad, GstEvent * event)
|
||||||
case GST_EVENT_SEEK:
|
case GST_EVENT_SEEK:
|
||||||
/* handle seeking */
|
/* handle seeking */
|
||||||
res = gst_avi_demux_handle_seek (avi, pad, event);
|
res = gst_avi_demux_handle_seek (avi, pad, event);
|
||||||
break;
|
gst_event_unref (event);
|
||||||
case GST_EVENT_QOS:
|
|
||||||
/* FIXME, we can do something clever here like skip to the next keyframe
|
|
||||||
* based on the QoS values. */
|
|
||||||
res = FALSE;
|
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
/* most other events are not very usefull */
|
res = gst_pad_event_default (pad, event);
|
||||||
res = FALSE;
|
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
gst_event_unref (event);
|
|
||||||
|
gst_object_unref (avi);
|
||||||
|
|
||||||
return res;
|
return res;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -842,14 +842,13 @@ gst_qtdemux_handle_src_event (GstPad * pad, GstEvent * event)
|
||||||
GST_DEBUG_OBJECT (qtdemux, "cannot seek in streaming mode");
|
GST_DEBUG_OBJECT (qtdemux, "cannot seek in streaming mode");
|
||||||
res = FALSE;
|
res = FALSE;
|
||||||
}
|
}
|
||||||
|
gst_object_unref (qtdemux);
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
res = FALSE;
|
res = gst_pad_event_default (pad, event);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
gst_object_unref (qtdemux);
|
|
||||||
|
|
||||||
gst_event_unref (event);
|
gst_event_unref (event);
|
||||||
|
|
||||||
return res;
|
return res;
|
||||||
|
|
Loading…
Reference in a new issue