Re: Theora 1.0 final release!
| Newsgroups | gmane.comp.multimedia.ogg.theora.devel |
|---|---|
| Message-ID | <ccbc6dd90811120307n123d2c6dv7a90c18ec652c7eb__39615.3214657263$1226488153$gmane$org@mail.gmail.com> |
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. _______________________________________________ theora-dev mailing list [email protected] http://lists.xiph.org/mailman/listinfo/theora-dev
icecast-skeleton.diff
(text/x-patch, 1 KB)
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;
+ }
}