From: Wim Taymans Date: Tue, 25 Feb 2003 21:34:10 +0000 (+0000) Subject: Forward events. X-Git-Tag: OSLOSUMMIT1-200303051~15 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=d3504602470893d76b0f5e3c28cab55f77646e3f;p=platform%2Fupstream%2Fgst-plugins-good.git Forward events. Original commit message from CVS: Forward events. --- diff --git a/gst/smpte/gstsmpte.c b/gst/smpte/gstsmpte.c index c28f16a..3a7d2f4 100644 --- a/gst/smpte/gstsmpte.c +++ b/gst/smpte/gstsmpte.c @@ -318,20 +318,30 @@ gst_smpte_loop (GstElement *element) ts = smpte->position * GST_SECOND / smpte->fps; - if (GST_PAD_IS_USABLE (smpte->sinkpad1)) { + while (GST_PAD_IS_USABLE (smpte->sinkpad1) && in1 == NULL) { in1 = gst_pad_pull (smpte->sinkpad1); - ts = GST_BUFFER_TIMESTAMP (in1); + if (GST_IS_EVENT (in1)) { + gst_pad_push (smpte->srcpad, in1); + in1 = NULL; + } + else + ts = GST_BUFFER_TIMESTAMP (in1); } - else { + if (GST_PAD_IS_USABLE (smpte->sinkpad2) && in2 == NULL) { + in2 = gst_pad_pull (smpte->sinkpad2); + if (GST_IS_EVENT (in2)) { + gst_pad_push (smpte->srcpad, in2); + in2 = NULL; + } + else + ts = GST_BUFFER_TIMESTAMP (in2); + } + + if (in1 == NULL) { in1 = gst_buffer_new_and_alloc (smpte->width * smpte->height * 3); fill_i420 (GST_BUFFER_DATA (in1), smpte->width, smpte->height, 7); } - - if (GST_PAD_IS_USABLE (smpte->sinkpad2)) { - in2 = gst_pad_pull (smpte->sinkpad2); - ts = GST_BUFFER_TIMESTAMP (in2); - } - else { + if (in2 == NULL) { in2 = gst_buffer_new_and_alloc (smpte->width * smpte->height * 3); fill_i420 (GST_BUFFER_DATA (in2), smpte->width, smpte->height, 0); }