From eaad9f698d8eff93b803b99dfed48cc2be25cda1 Mon Sep 17 00:00:00 2001 From: Zaheer Abbas Merali Date: Thu, 26 Aug 2004 00:32:00 +0000 Subject: [PATCH] ext/lame/gstlame.*: Added new media support to lame Original commit message from CVS: 2004-08-26 Zaheer Abbas Merali * ext/lame/gstlame.c: (gst_lame_init), (gst_lame_chain): * ext/lame/gstlame.h: Added new media support to lame --- ext/lame/gstlame.c | 16 ++++++++++++++++ ext/lame/gstlame.h | 3 +++ 2 files changed, 19 insertions(+) diff --git a/ext/lame/gstlame.c b/ext/lame/gstlame.c index 6aefa6b..f5265d4 100644 --- a/ext/lame/gstlame.c +++ b/ext/lame/gstlame.c @@ -581,6 +581,7 @@ gst_lame_init (GstLame * lame) id3tag_init (lame->lgf); + lame->newmediacount = 0; GST_DEBUG_OBJECT (lame, "done initializing"); } @@ -951,6 +952,21 @@ gst_lame_chain (GstPad * pad, GstData * _data) } gst_pad_event_default (pad, GST_EVENT (buf)); break; + case GST_EVENT_DISCONTINUOUS: + if (GST_EVENT_DISCONT_NEW_MEDIA (GST_EVENT (buf))) { + /* do not re-initialise if it is first new media discont */ + if (lame->newmediacount++ > 0) { + lame_close (lame->lgf); + lame->lgf = lame_init (); + lame->initialized = FALSE; + lame->last_ts = GST_CLOCK_TIME_NONE; + + gst_lame_setup (lame); + } + } + gst_pad_event_default (pad, GST_EVENT (buf)); + + break; default: gst_pad_event_default (pad, GST_EVENT (buf)); break; diff --git a/ext/lame/gstlame.h b/ext/lame/gstlame.h index 1eccb83..fbb01c7 100644 --- a/ext/lame/gstlame.h +++ b/ext/lame/gstlame.h @@ -100,6 +100,9 @@ struct _GstLame { /* time tracker */ guint64 last_ts, last_offs, last_duration; + + /* new media count */ + gint16 newmediacount; }; struct _GstLameClass { -- 2.7.4