Author: ArcRiley
Date: 2007-07-05 03:26:18 -0400 (Thu, 05 Jul 2007)
New Revision: 361
Modified:
trunk/pysoy/src/transports/Transport.pxi
Log:
read in all header pages during init
Modified: trunk/pysoy/src/transports/Transport.pxi
===================================================================
--- trunk/pysoy/src/transports/Transport.pxi 2007-07-05 07:02:09 UTC (rev
360)
+++ trunk/pysoy/src/transports/Transport.pxi 2007-07-05 07:26:18 UTC (rev
361)
@@ -74,6 +74,7 @@
# Ogg functions
#
cdef void _headOgg(self) :
+ cdef int _sn
cdef unsigned int m
cdef char *_magic
cdef ogg.ogg_page _page
@@ -90,21 +91,29 @@
while self._readOggPage(&_page) :
if not ogg.ogg_page_bos(&_page) :
(<soy._internals.Loadable> self._objs['video'])._load(&_page)
- break
- ogg.ogg_stream_init(&_testStream, ogg.ogg_page_serialno(&_page))
+ break
+ _sn = ogg.ogg_page_serialno(&_page)
+ ogg.ogg_stream_init(&_testStream, _sn)
ogg.ogg_stream_pagein(&_testStream, &_page)
ogg.ogg_stream_packetout(&_testStream, &_packet)
ogg.oggpackB_readinit(&_buffer, _packet.packet, _packet.bytes)
m = ogg.oggpackB_read(&_buffer, 32)
if m == 2155112549L and not self._objs.has_key('video') :
self._objs['video'] = soy.textures.Video()
- self._snos[ogg.ogg_page_serialno(&_page)] = 'video'
+ self._snos[_sn] = 'video'
(<soy._internals.Loadable> self._objs['video'])._load(&_page)
# 24538994 = vorbis
# 7828073 = writ
# 1399874917L = speex
# 2135313473L = flac
ogg.ogg_stream_clear(&_testStream)
+ # Grab the rest of the headers so codec instances can fully init
+ while ogg.ogg_page_granulepos(&_page) == 0 :
+ if not self._readOggPage(&_page) :
+ break
+ _sn = ogg.ogg_page_serialno(&_page)
+ if self._snos.has_key(_sn) :
+ (<soy._internals.Loadable> self._objs[self._snos[_sn]])._load(&_page)
self._vers = 0 # Ogg
self._mode = 1 # Loading
_______________________________________________
PySoy-SVN mailing list
[email protected]
http://www.pysoy.org/mailman/listinfo/pysoy-svn