summaryrefslogtreecommitdiff
path: root/gst/imagefreeze
diff options
context:
space:
mode:
authorSebastian Dröge <sebastian.droege@collabora.co.uk>2012-07-05 13:13:09 +0200
committerSebastian Dröge <sebastian.droege@collabora.co.uk>2012-07-05 13:13:09 +0200
commitaeafc3a09384e5fb07ea1fd7c9812331e0fe2815 (patch)
treee3eaa08a52da00edb5748d4c3a7917ed6729cb01 /gst/imagefreeze
parent2e90ff9bb92ea7d23a66277a80cbcbaf2cf2e558 (diff)
downloadgstreamer-plugins-good-aeafc3a09384e5fb07ea1fd7c9812331e0fe2815.tar.gz
gst: Implement segment-done event
Diffstat (limited to 'gst/imagefreeze')
-rw-r--r--gst/imagefreeze/gstimagefreeze.c9
1 files changed, 7 insertions, 2 deletions
diff --git a/gst/imagefreeze/gstimagefreeze.c b/gst/imagefreeze/gstimagefreeze.c
index 34041e0d4..0617cef90 100644
--- a/gst/imagefreeze/gstimagefreeze.c
+++ b/gst/imagefreeze/gstimagefreeze.c
@@ -794,15 +794,20 @@ gst_image_freeze_src_loop (GstPad * pad)
if (eos) {
if ((self->segment.flags & GST_SEEK_FLAG_SEGMENT)) {
GstMessage *m;
+ GstEvent *e;
GST_DEBUG_OBJECT (pad, "Sending segment done at end of segment");
- if (self->segment.rate >= 0)
+ if (self->segment.rate >= 0) {
m = gst_message_new_segment_done (GST_OBJECT_CAST (self),
GST_FORMAT_TIME, self->segment.stop);
- else
+ e = gst_event_new_segment_done (GST_FORMAT_TIME, self->segment.stop);
+ } else {
m = gst_message_new_segment_done (GST_OBJECT_CAST (self),
GST_FORMAT_TIME, self->segment.start);
+ e = gst_event_new_segment_done (GST_FORMAT_TIME, self->segment.start);
+ }
gst_element_post_message (GST_ELEMENT_CAST (self), m);
+ gst_pad_push_event (self->srcpad, e);
} else {
GST_DEBUG_OBJECT (pad, "Sending EOS at end of segment");
gst_pad_push_event (self->srcpad, gst_event_new_eos ());