[prev in list] [next in list] [prev in thread] [next in thread] 

List:       theora
Subject:    Re: [theora] [theora-dev] Theora 1.0 final release!
From:       "ogg.k.ogg.k () googlemail ! com" <ogg ! k ! ogg ! k () googlemail ! com>
Date:       2008-11-12 11:07:14
Message-ID: ccbc6dd90811120307n123d2c6dv7a90c18ec652c7eb () mail ! gmail ! com
[Download RAW message or body]

Fixed, attached.
I'm not sure this fix is optimal though: if there's no sync point,
it sends everything. That's the reason the stream was blocking
on skeleton.
Tested with libshout's example.c and XMMS.

["icecast-skeleton.diff" (text/x-patch)]

diff -ru /mnt/dvd/svn/xiph/icecast/src/format.c ./src/format.c
--- /mnt/dvd/svn/xiph/icecast/src/format.c	2008-09-12 11:55:46.000000000 +0100
+++ ./src/format.c	2008-11-11 18:46:33.000000000 +0000
@@ -98,6 +98,7 @@
 static void find_client_start (source_t *source, client_t *client)
 {
     refbuf_t *refbuf = source->burst_point;
+    refbuf_t *refbuf_start;
 
     /* we only want to attempt a burst at connection time, not midstream
      * however streams like theora may not have the most recent page marked as
@@ -116,6 +117,7 @@
         }
     }
 
+    refbuf_start = refbuf;
     while (refbuf)
     {
         if (refbuf->sync_point)
@@ -128,6 +130,15 @@
         }
         refbuf = refbuf->next;
     }
+
+    if (!refbuf)
+    {
+        DEBUG0("good sync point not found, starting anywhere anyway");
+        client_set_queue (client, refbuf_start);
+        client->check_buffer = format_advance_queue;
+        client->write_to_client = source->format->write_buf_to_client;
+        client->intro_offset = -1;
+    }
 }
 
 


_______________________________________________
theora mailing list
theora@xiph.org
http://lists.xiph.org/mailman/listinfo/theora


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic