From 6f25fde21851e81dc8b2a279cbcc95813d325d88 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tim-Philipp=20M=C3=BCller?= Date: Thu, 7 Jun 2007 14:25:32 +0000 Subject: [PATCH] ext/ogg/gstoggmux.c: The BOS page of the first Dirac video stream needs to come before the BOS page of any Vorbis str... Original commit message from CVS: * ext/ogg/gstoggmux.c: (gst_ogg_mux_send_headers): The BOS page of the first Dirac video stream needs to come before the BOS page of any Vorbis streams or other audio streams, just like it is with Theora. --- ChangeLog | 7 +++++++ ext/ogg/gstoggmux.c | 14 ++++++++++---- 2 files changed, 17 insertions(+), 4 deletions(-) diff --git a/ChangeLog b/ChangeLog index 1cdda5f7ad..62871909c9 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,10 @@ +2007-06-07 Tim-Philipp Müller + + * ext/ogg/gstoggmux.c: (gst_ogg_mux_send_headers): + The BOS page of the first Dirac video stream needs to come before + the BOS page of any Vorbis streams or other audio streams, just like + it is with Theora. + 2007-06-07 Wim Taymans * gst/playback/gstqueue2.c: (gst_queue_get_range): diff --git a/ext/ogg/gstoggmux.c b/ext/ogg/gstoggmux.c index 8bae9cdb81..df4dca2100 100644 --- a/ext/ogg/gstoggmux.c +++ b/ext/ogg/gstoggmux.c @@ -1078,11 +1078,17 @@ gst_ogg_mux_send_headers (GstOggMux * mux) GST_LOG_OBJECT (mux, "swapped out page with mime type %s", gst_structure_get_name (structure)); - /* quick hack: put theora pages at the front. + /* quick hack: put Theora and Dirac video pages at the front. * Ideally, we would have a settable enum for which Ogg - * profile we work with, and order based on that */ - if (strcmp (gst_structure_get_name (structure), "video/x-theora") == 0) { - GST_DEBUG_OBJECT (thepad, "putting Theora page at the front"); + * profile we work with, and order based on that. + * (FIXME: if there is more than one video stream, shouldn't we only put + * one's BOS into the first page, followed by an audio stream's BOS, and + * only then followed by the remaining video and audio streams?) */ + 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); + } 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); } else { hbufs = g_list_append (hbufs, hbuf);