diff -bru a/gst/videoparsers/gsth264parse.c b/gst/videoparsers/gsth264parse.c
--- a/gst/videoparsers/gsth264parse.c	2012-12-23 20:00:17.000000000 +0400
+++ b/gst/videoparsers/gsth264parse.c	2013-03-18 12:33:47.628421342 +0400
@@ -1528,6 +1528,17 @@
     gst_h264_parse_prepare_key_unit (h264parse, event);
   }
 
+  char au_delim[] = { 0x00, 0x00, 0x00, 0x01,  /* nal prefix */
+                      0x09,  /* nal_unit_type = access unit delimiter */
+                      0xf0   /* allow any slice type */ };
+  GstBuffer *au_delim_buf = gst_buffer_new_allocate (
+          NULL, sizeof (au_delim), NULL);
+  gst_buffer_fill (au_delim_buf, 0, au_delim, sizeof (au_delim_buf));
+  GST_BUFFER_TIMESTAMP (au_delim_buf) = GST_BUFFER_TIMESTAMP (buffer);
+  GST_BUFFER_DURATION (au_delim_buf) = 0;
+  GST_DEBUG_OBJECT (h264parse, "sending AU delimiter");
+  gst_pad_push (GST_BASE_PARSE_SRC_PAD (h264parse), au_delim_buf);
+
   /* periodic SPS/PPS sending */
   if (h264parse->interval > 0 || h264parse->push_codec) {
     GstClockTime timestamp = GST_BUFFER_TIMESTAMP (buffer);
