From cd9b0d71689e735ac363e70cc844345acccf6afa Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sebastian=20Dr=C3=B6ge?= Date: Sat, 15 Dec 2007 17:52:46 +0000 Subject: gst/videoparse/gstvideoparse.c: Free the adapter on dispose and correctly reset on newsegment events. Original commit message from CVS: * gst/videoparse/gstvideoparse.c: (gst_video_parse_dispose), (gst_video_parse_sink_event): Free the adapter on dispose and correctly reset on newsegment events. --- ChangeLog | 6 ++++++ common | 2 +- gst/videoparse/gstvideoparse.c | 11 ++++++++++- 3 files changed, 17 insertions(+), 2 deletions(-) diff --git a/ChangeLog b/ChangeLog index 0f721825..d54c9766 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,9 @@ +2007-12-15 Sebastian Dröge + + * 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 * gst/videoparse/gstvideoparse.c: (gst_video_parse_sink_event), diff --git a/common b/common index ea5f2cfa..a00d4c19 160000 --- a/common +++ b/common @@ -1 +1 @@ -Subproject commit ea5f2cfab1a164a5d285fe745343cbe0a476a904 +Subproject commit a00d4c1966aab517c2694c61d580489ebcbce448 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: -- cgit v1.2.1