summaryrefslogtreecommitdiff
path: root/ext/audiofile/gstafsink.c
diff options
context:
space:
mode:
authorRonald S. Bultje <rbultje@ronald.bitfreak.net>2004-01-07 13:18:08 +0000
committerRonald S. Bultje <rbultje@ronald.bitfreak.net>2004-01-07 13:18:08 +0000
commit1b63854c1fc093234b7432f03c9f415936e4d21c (patch)
treeab4b97641300961fca2c237fcd5743610b273171 /ext/audiofile/gstafsink.c
parent11207007164b355e5d9a69e09a579d36ebf296d1 (diff)
Fix for instantiate-test (see core). Also remove dead code from jpegenc (which still needs fixing, but that's lower o...
Original commit message from CVS: 2004-01-07 Ronald Bultje <rbultje@ronald.bitfreak.net> * ext/audiofile/gstafsink.c: (gst_afsink_init), (gst_afsink_chain), (gst_afsink_handle_event): * ext/jpeg/gstjpegenc.c: (gst_jpegenc_init): * gst/avi/gstavimux.c: (gst_avimux_request_new_pad): * sys/dxr3/dxr3audiosink.c: (dxr3audiosink_init): * sys/dxr3/dxr3spusink.c: (dxr3spusink_init): * sys/dxr3/dxr3videosink.c: (dxr3videosink_init): Fix for instantiate-test (see core). Also remove dead code from jpegenc (which still needs fixing, but that's lower on my TODO list...). * sys/v4l2/gstv4l2src.c: (gst_v4l2src_getcaps): Never return NULL as caps.
Diffstat (limited to 'ext/audiofile/gstafsink.c')
-rw-r--r--ext/audiofile/gstafsink.c21
1 files changed, 17 insertions, 4 deletions
diff --git a/ext/audiofile/gstafsink.c b/ext/audiofile/gstafsink.c
index 5b6b702ea..02e28f8b4 100644
--- a/ext/audiofile/gstafsink.c
+++ b/ext/audiofile/gstafsink.c
@@ -190,7 +190,6 @@ gst_afsink_init (GstAFSink *afsink)
gst_element_add_pad (GST_ELEMENT (afsink), afsink->sinkpad);
gst_pad_set_chain_function (afsink->sinkpad, gst_afsink_chain);
- gst_pad_set_event_function (afsink->sinkpad, gst_afsink_handle_event);
afsink->filename = NULL;
afsink->file = NULL;
@@ -387,14 +386,19 @@ gst_afsink_close_file (GstAFSink *sink)
static void
gst_afsink_chain (GstPad *pad, GstData *_data)
{
- GstBuffer *buf = GST_BUFFER (_data);
+ GstBuffer *buf;
GstAFSink *afsink;
int ret = 0;
g_return_if_fail (pad != NULL);
g_return_if_fail (GST_IS_PAD (pad));
- g_return_if_fail (buf != NULL);
+ if (GST_IS_EVENT (_data)) {
+ gst_afsink_handle_event (pad, GST_EVENT (_data));
+ return;
+ }
+
+ buf = GST_BUFFER (_data);
afsink = GST_AFSINK (gst_pad_get_parent (pad));
/* we use audiofile now
if (GST_FLAG_IS_SET (afsink, GST_AFSINK_OPEN))
@@ -484,7 +488,16 @@ gst_afsink_handle_event (GstPad *pad, GstEvent *event)
afsink = GST_AFSINK (gst_pad_get_parent (pad));
GST_DEBUG ("DEBUG: afsink: got event");
- gst_afsink_close_file (afsink);
+
+ switch (GST_EVENT_TYPE (event)) {
+ case GST_EVENT_EOS:
+ gst_afsink_close_file (afsink);
+ break;
+ default:
+ break;
+ }
+
+ gst_pad_event_default (pad, event);
return TRUE;
}