summaryrefslogtreecommitdiffstats
path: root/gst
diff options
context:
space:
mode:
authorStefan Kost <ensonic@users.sourceforge.net>2007-11-12 17:06:32 +0000
committerStefan Kost <ensonic@users.sourceforge.net>2007-11-12 17:06:32 +0000
commit8ae866e5c6ea204034e9fb371a66db2d34dbabec (patch)
tree7f24403ab8c962c7e8eab1673331b07ee0d2a47e /gst
parent546ec34716cf67038e8546f0ba47e4a307bc5c7d (diff)
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.
Diffstat (limited to 'gst')
-rw-r--r--gst/avi/gstavidemux.c21
-rw-r--r--gst/qtdemux/qtdemux.c5
2 files changed, 11 insertions, 15 deletions
diff --git a/gst/avi/gstavidemux.c b/gst/avi/gstavidemux.c
index 2a1c907a..d37db1b5 100644
--- a/gst/avi/gstavidemux.c
+++ b/gst/avi/gstavidemux.c
@@ -374,7 +374,7 @@ gst_avi_demux_src_convert (GstPad * pad,
gint64 src_value, GstFormat * dest_format, gint64 * dest_value)
{
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);
@@ -446,7 +446,6 @@ done:
GST_LOG_OBJECT (avidemux,
"Returning res:%d dest_format:%s dest_value:%" G_GUINT64_FORMAT, res,
gst_format_get_name (*dest_format), *dest_value);
- gst_object_unref (avidemux);
return res;
}
@@ -467,7 +466,7 @@ static gboolean
gst_avi_demux_handle_src_query (GstPad * pad, GstQuery * query)
{
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);
@@ -571,6 +570,7 @@ gst_avi_demux_handle_src_query (GstPad * pad, GstQuery * query)
break;
}
+ gst_object_unref (avi);
return res;
}
@@ -591,7 +591,7 @@ static gboolean
gst_avi_demux_handle_src_event (GstPad * pad, GstEvent * event)
{
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,
"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:
/* handle seeking */
res = gst_avi_demux_handle_seek (avi, pad, event);
- break;
- case GST_EVENT_QOS:
- /* FIXME, we can do something clever here like skip to the next keyframe
- * based on the QoS values. */
- res = FALSE;
+ gst_event_unref (event);
break;
default:
- /* most other events are not very usefull */
- res = FALSE;
+ res = gst_pad_event_default (pad, event);
break;
}
- gst_event_unref (event);
+
+ gst_object_unref (avi);
+
return res;
}
diff --git a/gst/qtdemux/qtdemux.c b/gst/qtdemux/qtdemux.c
index 48500dfa..169862f6 100644
--- a/gst/qtdemux/qtdemux.c
+++ b/gst/qtdemux/qtdemux.c
@@ -842,14 +842,13 @@ gst_qtdemux_handle_src_event (GstPad * pad, GstEvent * event)
GST_DEBUG_OBJECT (qtdemux, "cannot seek in streaming mode");
res = FALSE;
}
+ gst_object_unref (qtdemux);
break;
default:
- res = FALSE;
+ res = gst_pad_event_default (pad, event);
break;
}
- gst_object_unref (qtdemux);
-
gst_event_unref (event);
return res;