summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorZaheer Abbas Merali <zaheerabbas@merali.org>2004-09-19 17:55:04 +0000
committerZaheer Abbas Merali <zaheerabbas@merali.org>2004-09-19 17:55:04 +0000
commite3beb3a1d5437100d6a52c1145d279f44e9aae45 (patch)
tree22976d388c9ad282a1b6fd9482c3e818a96ce86f
parentdd6ce2d6ba36c818729bc6a2fa66fc3a8631350e (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
-rw-r--r--ChangeLog6
-rw-r--r--gst/wavenc/gstwavenc.c13
-rw-r--r--gst/wavenc/gstwavenc.h2
3 files changed, 20 insertions, 1 deletions
diff --git a/ChangeLog b/ChangeLog
index 463a7e4b..aa47e190 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,9 @@
+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
+
2004-09-17 Wim Taymans <wim@fluendo.com>
* gst/tcp/gstfdset.c: (gst_fdset_fd_has_closed),
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 {