diff --git a/ChangeLog b/ChangeLog index 092cbe09a6..3cc50467a5 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,18 @@ +2004-01-07 Ronald Bultje + + * 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. + 2004-01-07 David Schleef * configure.ac: diff --git a/ext/audiofile/gstafsink.c b/ext/audiofile/gstafsink.c index 5b6b702ea1..02e28f8b4f 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; } diff --git a/sys/dxr3/dxr3audiosink.c b/sys/dxr3/dxr3audiosink.c index bff4759408..58709e8053 100644 --- a/sys/dxr3/dxr3audiosink.c +++ b/sys/dxr3/dxr3audiosink.c @@ -93,13 +93,6 @@ GST_STATIC_PAD_TEMPLATE ( ); -GST_PAD_EVENT_MASK_FUNCTION(dxr3audiosink_get_event_mask, - { GST_EVENT_FLUSH, 0 }, - { GST_EVENT_DISCONTINUOUS, 0 }, - { GST_EVENT_EOS, 0 } -) - - static void dxr3audiosink_class_init (Dxr3AudioSinkClass *klass); static void dxr3audiosink_base_init (Dxr3AudioSinkClass *klass); static void dxr3audiosink_init (Dxr3AudioSink *sink); @@ -235,12 +228,6 @@ dxr3audiosink_init (Dxr3AudioSink *sink) gst_element_add_pad (GST_ELEMENT (sink), sink->ac3_sinkpad); GST_FLAG_SET (GST_ELEMENT(sink), GST_ELEMENT_EVENT_AWARE); - gst_pad_set_event_function (sink->pcm_sinkpad, dxr3audiosink_handle_event); - gst_pad_set_event_mask_function (sink->pcm_sinkpad, - dxr3audiosink_get_event_mask); - gst_pad_set_event_function (sink->ac3_sinkpad, dxr3audiosink_handle_event); - gst_pad_set_event_mask_function (sink->ac3_sinkpad, - dxr3audiosink_get_event_mask); sink->card_number = 0; diff --git a/sys/dxr3/dxr3spusink.c b/sys/dxr3/dxr3spusink.c index 00969c4253..0b1ba010cd 100644 --- a/sys/dxr3/dxr3spusink.c +++ b/sys/dxr3/dxr3spusink.c @@ -70,13 +70,6 @@ GST_STATIC_PAD_TEMPLATE ( ); -GST_PAD_EVENT_MASK_FUNCTION (dxr3spusink_get_event_mask, - { GST_EVENT_FLUSH, 0 }, - { GST_EVENT_DISCONTINUOUS, 0 }, - { GST_EVENT_EOS, 0 } -) - - static void dxr3spusink_class_init (Dxr3SpuSinkClass *klass); static void dxr3spusink_base_init (Dxr3SpuSinkClass *klass); static void dxr3spusink_init (Dxr3SpuSink *dxr3spusink); @@ -228,8 +221,6 @@ dxr3spusink_init (Dxr3SpuSink *sink) gst_pad_set_chain_function (pad, dxr3spusink_chain); GST_FLAG_SET (GST_ELEMENT (sink), GST_ELEMENT_EVENT_AWARE); - gst_pad_set_event_function (pad, dxr3spusink_handle_event); - gst_pad_set_event_mask_function (pad, dxr3spusink_get_event_mask); sink->card_number = 0; diff --git a/sys/dxr3/dxr3videosink.c b/sys/dxr3/dxr3videosink.c index 596a3831fe..9c4605e599 100644 --- a/sys/dxr3/dxr3videosink.c +++ b/sys/dxr3/dxr3videosink.c @@ -93,13 +93,6 @@ GST_STATIC_PAD_TEMPLATE ( ); -GST_PAD_EVENT_MASK_FUNCTION (dxr3videosink_get_event_mask, - { GST_EVENT_FLUSH, 0 }, - { GST_EVENT_DISCONTINUOUS, 0 }, - { GST_EVENT_EOS, 0 } -) - - static void dxr3videosink_class_init (Dxr3VideoSinkClass *klass); static void dxr3videosink_base_init (Dxr3VideoSinkClass *klass); static void dxr3videosink_init (Dxr3VideoSink *dxr3videosink); @@ -219,8 +212,6 @@ dxr3videosink_init (Dxr3VideoSink *sink) gst_pad_set_chain_function (pad, dxr3videosink_chain); GST_FLAG_SET (GST_ELEMENT (sink), GST_ELEMENT_EVENT_AWARE); - gst_pad_set_event_function (pad, dxr3videosink_handle_event); - gst_pad_set_event_mask_function (pad, dxr3videosink_get_event_mask); sink->card_number = 0; diff --git a/sys/v4l2/gstv4l2src.c b/sys/v4l2/gstv4l2src.c index b6e86b0a91..0c275b2cc5 100644 --- a/sys/v4l2/gstv4l2src.c +++ b/sys/v4l2/gstv4l2src.c @@ -743,7 +743,7 @@ gst_v4l2src_getcaps (GstPad *pad) int min_w, max_w, min_h, max_h; if (!GST_V4L2_IS_OPEN(GST_V4L2ELEMENT(v4l2src))) { - return NULL; + return gst_caps_new_any (); } /* build our own capslist */