diff options
author | Zaheer Abbas Merali <zaheerabbas@merali.org> | 2004-09-19 17:55:04 +0000 |
---|---|---|
committer | Zaheer Abbas Merali <zaheerabbas@merali.org> | 2004-09-19 17:55:04 +0000 |
commit | e3beb3a1d5437100d6a52c1145d279f44e9aae45 (patch) | |
tree | 22976d388c9ad282a1b6fd9482c3e818a96ce86f /gst | |
parent | dd6ce2d6ba36c818729bc6a2fa66fc3a8631350e (diff) |
gst/wavenc/gstwavenc.*: Added newmedia support to wavenc
Original commit message from CVS:
2004-09-19 Zaheer Abbas Merali <zaheerabbas at merali dot org>
* gst/wavenc/gstwavenc.c: (gst_wavenc_init), (gst_wavenc_chain):
* gst/wavenc/gstwavenc.h:
Added newmedia support to wavenc
Diffstat (limited to 'gst')
-rw-r--r-- | gst/wavenc/gstwavenc.c | 13 | ||||
-rw-r--r-- | gst/wavenc/gstwavenc.h | 2 |
2 files changed, 14 insertions, 1 deletions
diff --git a/gst/wavenc/gstwavenc.c b/gst/wavenc/gstwavenc.c index 10f77547..afb6067f 100644 --- a/gst/wavenc/gstwavenc.c +++ b/gst/wavenc/gstwavenc.c @@ -294,7 +294,7 @@ gst_wavenc_init (GstWavEnc * wavenc) wavenc->setup = FALSE; wavenc->flush_header = TRUE; - + wavenc->newmediacount = 0; GST_FLAG_SET (wavenc, GST_ELEMENT_EVENT_AWARE); } @@ -619,6 +619,17 @@ gst_wavenc_chain (GstPad * pad, GstData * _data) gst_wavenc_stop_file (wavenc); gst_pad_push (wavenc->srcpad, _data); gst_element_set_eos (GST_ELEMENT (wavenc)); + } else if (GST_EVENT_TYPE (buf) == GST_EVENT_DISCONTINUOUS) { + if (GST_EVENT_DISCONT_NEW_MEDIA (buf)) { + /* new media */ + if (wavenc->newmediacount++ > 0) { + gst_wavenc_stop_file (wavenc); + wavenc->setup = FALSE; + wavenc->flush_header = TRUE; + gst_wavenc_setup (wavenc); + } + gst_pad_event_default (wavenc->srcpad, GST_EVENT (buf)); + } } else { gst_pad_event_default (wavenc->srcpad, GST_EVENT (buf)); } diff --git a/gst/wavenc/gstwavenc.h b/gst/wavenc/gstwavenc.h index 8810001a..03292f29 100644 --- a/gst/wavenc/gstwavenc.h +++ b/gst/wavenc/gstwavenc.h @@ -57,6 +57,8 @@ struct _GstWavEnc { gboolean setup, flush_header, pad_eos; guchar header[WAV_HEADER_LEN]; + + guint16 newmediacount; }; struct _GstWavEncClass { |