+2008-11-24 David Schleef <ds@schleef.org>
+
+ * ext/ogg/gstoggmux.c:
+ * ext/ogg/gstoggmux.h:
+ If we're muxing a dirac stream, flush the page after every picture.
+
2008-11-24 Stefan Kost <ensonic@users.sf.net>
* gst-libs/gst/audio/gstbaseaudiosink.c:
res = g_list_append (res, pad->buffer);
pad->buffer = pad->next_buffer;
pad->next_buffer = NULL;
+ pad->always_flush_page = TRUE;
} else {
GST_LOG_OBJECT (thepad, "caps don't have streamheader");
}
if (gst_structure_has_name (structure, "video/x-theora")) {
GST_DEBUG_OBJECT (thepad, "putting %s page at the front", "Theora");
hbufs = g_list_prepend (hbufs, hbuf);
+ pad->always_flush_page = TRUE;
} else if (gst_structure_has_name (structure, "video/x-dirac")) {
GST_DEBUG_OBJECT (thepad, "putting %s page at the front", "Dirac");
hbufs = g_list_prepend (hbufs, hbuf);
+ pad->always_flush_page = TRUE;
} else {
hbufs = g_list_append (hbufs, hbuf);
}
tmpbuf = NULL;
/* we flush when we see a new keyframe */
- force_flush = (pad->prev_delta && !delta_unit);
+ force_flush = (pad->prev_delta && !delta_unit) || pad->always_flush_page;
if (duration != -1) {
pad->duration += duration;
/* if page duration exceeds max, flush page */