From: <za...@ke...> - 2007-03-07 17:15:10
|
CVS Root: /cvs/gstreamer Module: gstreamer Changes by: zaheer Date: Wed Mar 07 2007 17:15:05 UTC Log message: 2007-03-07 Zaheer Abbas Merali <zaheerabbas at merali dot org> * plugins/elements/gstidentity.c: (gst_identity_check_perfect): Only post bus message at max, once per buffer received. Modified files: . : ChangeLog plugins/elements: gstidentity.c Links: http://freedesktop.org/cgi-bin/viewcvs.cgi/gstreamer/gstreamer/ChangeLog.diff?r1=1.3100&r2=1.3101 http://freedesktop.org/cgi-bin/viewcvs.cgi/gstreamer/gstreamer/plugins/elements/gstidentity.c.diff?r1=1.110&r2=1.111 ====Begin Diffs==== Index: ChangeLog =================================================================== RCS file: /cvs/gstreamer/gstreamer/ChangeLog,v retrieving revision 1.3100 retrieving revision 1.3101 diff -u -d -r1.3100 -r1.3101 --- ChangeLog 7 Mar 2007 17:13:17 -0000 1.3100 +++ ChangeLog 7 Mar 2007 17:14:52 -0000 1.3101 @@ -1,3 +1,8 @@ +2007-03-07 Zaheer Abbas Merali <zaheerabbas at merali dot org> + + * plugins/elements/gstidentity.c: (gst_identity_check_perfect): + Only post bus message at max, once per buffer received. 2007-03-07 Wim Taymans <wi...@fl...> * docs/design/Makefile.am: Index: gstidentity.c RCS file: /cvs/gstreamer/gstreamer/plugins/elements/gstidentity.c,v retrieving revision 1.110 retrieving revision 1.111 diff -u -d -r1.110 -r1.111 --- gstidentity.c 7 Mar 2007 17:02:51 -0000 1.110 +++ gstidentity.c 7 Mar 2007 17:14:53 -0000 1.111 @@ -311,6 +311,7 @@ gst_identity_check_perfect (GstIdentity * identity, GstBuffer * buf) { GstClockTime timestamp; + gboolean posted_bus_message = FALSE; timestamp = GST_BUFFER_TIMESTAMP (buf); @@ -361,6 +362,7 @@ GST_BUFFER_DURATION (buf), "cur-offset", G_TYPE_UINT64, GST_BUFFER_OFFSET (buf), "cur-offset-end", G_TYPE_UINT64, GST_BUFFER_OFFSET_END (buf), NULL))); + posted_bus_message = TRUE; } offset = GST_BUFFER_OFFSET (buf); @@ -369,17 +371,19 @@ "Buffer not data-contiguous with previous one: " "prev offset_end %" G_GINT64_FORMAT ", new offset %" G_GINT64_FORMAT, identity->prev_offset_end, offset); - gst_element_post_message (GST_ELEMENT (identity), - gst_message_new_element (GST_OBJECT (identity), - gst_structure_new ("imperfect", "prev-timestamp", G_TYPE_UINT64, - identity->prev_timestamp, "prev-duration", G_TYPE_UINT64, - identity->prev_duration, "prev-offset", G_TYPE_UINT64, - identity->prev_offset, "prev-offset-end", G_TYPE_UINT64, - identity->prev_offset_end, "cur-timestamp", G_TYPE_UINT64, - timestamp, "cur-duration", G_TYPE_UINT64, - GST_BUFFER_DURATION (buf), "cur-offset", G_TYPE_UINT64, - GST_BUFFER_OFFSET (buf), "cur-offset-end", G_TYPE_UINT64, - GST_BUFFER_OFFSET_END (buf), NULL))); + if (!posted_bus_message) { + gst_element_post_message (GST_ELEMENT (identity), + gst_message_new_element (GST_OBJECT (identity), + gst_structure_new ("imperfect", "prev-timestamp", + G_TYPE_UINT64, identity->prev_timestamp, "prev-duration", + G_TYPE_UINT64, identity->prev_duration, "prev-offset", + G_TYPE_UINT64, identity->prev_offset, "prev-offset-end", + G_TYPE_UINT64, identity->prev_offset_end, "cur-timestamp", + G_TYPE_UINT64, timestamp, "cur-duration", G_TYPE_UINT64, + GST_BUFFER_DURATION (buf), "cur-offset", G_TYPE_UINT64, + GST_BUFFER_OFFSET (buf), "cur-offset-end", G_TYPE_UINT64, + GST_BUFFER_OFFSET_END (buf), NULL))); + } } else { GST_DEBUG_OBJECT (identity, "can't check time-contiguity, no timestamp " |