diff options
-rw-r--r-- | ChangeLog | 6 | ||||
m--------- | common | 0 | ||||
-rw-r--r-- | gst/videoparse/gstvideoparse.c | 11 |
3 files changed, 16 insertions, 1 deletions
@@ -1,5 +1,11 @@ 2007-12-15 Sebastian Dröge <slomo@circular-chaos.org> + * gst/videoparse/gstvideoparse.c: (gst_video_parse_dispose), + (gst_video_parse_sink_event): + Free the adapter on dispose and correctly reset on newsegment events. + +2007-12-15 Sebastian Dröge <slomo@circular-chaos.org> + * gst/videoparse/gstvideoparse.c: (gst_video_parse_sink_event), (gst_video_parse_src_event), (gst_video_parse_src_query): Improve duration query by first asking upstream and if it can't handle diff --git a/common b/common -Subproject ea5f2cfab1a164a5d285fe745343cbe0a476a90 +Subproject a00d4c1966aab517c2694c61d580489ebcbce44 diff --git a/gst/videoparse/gstvideoparse.c b/gst/videoparse/gstvideoparse.c index 36c59189..9e6958d5 100644 --- a/gst/videoparse/gstvideoparse.c +++ b/gst/videoparse/gstvideoparse.c @@ -337,7 +337,12 @@ gst_video_parse_init (GstVideoParse * vp, GstVideoParseClass * g_class) static void gst_video_parse_dispose (GObject * object) { - //GstVideoParse *vp = GST_VIDEO_PARSE (object); + GstVideoParse *vp = GST_VIDEO_PARSE (object); + + if (vp->adapter) { + g_object_unref (vp->adapter); + vp->adapter = NULL; + } G_OBJECT_CLASS (parent_class)->dispose (object); } @@ -725,6 +730,10 @@ gst_video_parse_sink_event (GstPad * pad, GstEvent * event) ret = gst_pad_push_event (vp->srcpad, event); } + + vp->n_frames = 0; + vp->discont = TRUE; + gst_adapter_clear (vp->adapter); break; } default: |