ext/theora/theoraparse.c: Set the BOS flag on the BOS packet. Fixes #553244.
authorogg.k.ogg.k <ogg.k.ogg.k@googlemail.com>
Thu, 25 Sep 2008 10:46:00 +0000 (10:46 +0000)
committerWim Taymans <wim.taymans@gmail.com>
Thu, 25 Sep 2008 10:46:00 +0000 (10:46 +0000)
Original commit message from CVS:
Patch by: ogg.k.ogg.k <ogg dot k dot ogg dot k at googlemail dot com>
* ext/theora/theoraparse.c: (theora_parse_set_streamheader):
Set the BOS flag on the BOS packet. Fixes #553244.

ChangeLog
ext/theora/theoraparse.c

index 5b92879527e0aa6b859cda8ab01768a755f170b5..4e34d759db27cbc1ac37157be695d3628a888f47 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,10 @@
+2008-09-25  Wim Taymans  <wim.taymans@collabora.co.uk>
+
+       Patch by: ogg.k.ogg.k <ogg dot k dot ogg dot k at googlemail dot com>
+
+       * ext/theora/theoraparse.c: (theora_parse_set_streamheader):
+       Set the BOS flag on the BOS packet. Fixes #553244.
+
 2008-09-23  Wim Taymans  <wim.taymans@collabora.co.uk>
 
        * gst-libs/gst/rtsp/gstrtspmessage.c:
index 44423af1ce1f62fdda20f480f5707b4b8cac95dd..ae49ea657dab3f79a75d0ecf5becc9283c1f2bc6 100644 (file)
@@ -317,6 +317,7 @@ theora_parse_set_streamheader (GstTheoraParse * parse)
   for (i = 0; i < 3; i++) {
     ogg_packet packet;
     GstBuffer *buf;
+    int ret;
 
     buf = parse->streamheader[i];
     gst_buffer_set_caps (buf, GST_PAD_CAPS (parse->srcpad));
@@ -326,7 +327,12 @@ theora_parse_set_streamheader (GstTheoraParse * parse)
     packet.granulepos = GST_BUFFER_OFFSET_END (buf);
     packet.packetno = i + 1;
     packet.e_o_s = 0;
-    theora_decode_header (&parse->info, &parse->comment, &packet);
+    packet.b_o_s = (i == 0);
+    ret = theora_decode_header (&parse->info, &parse->comment, &packet);
+    if (ret < 0) {
+      GST_WARNING_OBJECT (parse, "Failed to decode Theora header %d: %d\n",
+          i + 1, ret);
+    }
   }
 
   parse->fps_n = parse->info.fps_numerator;