<html>
We can hypothesize about the why, but my guess is it is hardware
related.&nbsp; The why isn't really all that relevant.&nbsp; All we need
to know for zss and splitstream is that the MPEG packet may be fragmented
across multiple TY records.&nbsp;&nbsp; Here are some examples :<br>
<br>
Here<font size=1> the sequence header (MPEG packer type B3) is fragmented
accross the first two records.&nbsp; Total size is 88 Bytes.&nbsp; The
GOP which is record 3 is all contained in that record.<br>
<br>
</font>As to what is in this MPEG packet, the fixed size of a sequence
header is 12 Bytes.&nbsp; Byte 11 though includes a &quot;(load non-intra
quantiser matrix)&quot; flag which in this case is set.&nbsp; The matrix
occupies 64 bytes and they are appended to the fixed portion for a total
size of 12 + 64 = 76.&nbsp; The remaining 12 bytes look to be pad.<br>
<font face="Fixedsys" size=1>00 05 47 E0&nbsp; 30 20 56 40&nbsp; 00 00 00
00&nbsp; 00 00 00 00&nbsp;
</font><font face="Fixedsys" size=1 color="#008000">size=00054</font><font face="Fixedsys" size=1>
</font><font face="Fixedsys" size=1 color="#800000">(vid-H)</font><font face="Fixedsys" size=1>
| </font><font face="Fixedsys" size=1 color="#FF0000">00 00
00</font><font face="Fixedsys" size=1>&nbsp; 00 00 01 B3&nbsp; 1E 01 E0
24&nbsp; 08 8B A3 81&nbsp; 10 11 11 12<br>
00 00 42 E0&nbsp; 30 00 B9 94&nbsp; 00 00 00 00&nbsp; 00 00 00 00&nbsp;
</font><font face="Fixedsys" size=1 color="#008000">size=00004</font><font face="Fixedsys" size=1>
</font><font face="Fixedsys" size=1 color="#800080">(video)</font><font face="Fixedsys" size=1>
| </font><font face="Fixedsys" size=1 color="#FF0000">82 00
01</font><font face="Fixedsys" size=1>&nbsp; 00 00 00 00
</font><font face="Fixedsys" size=1 color="#FF0000"> 00 00 01 B8&nbsp; 00
00 00 00&nbsp; 00 00 01 E0 <br>
<br>
</font><font face="Fixedsys" size=1>00 00 8C E0&nbsp; 30 00 B9 98&nbsp;
00 00 00 00&nbsp; 00 00 00 00&nbsp;
</font><font face="Fixedsys" size=1 color="#008000">size=00008</font><font face="Fixedsys" size=1>
</font><font face="Fixedsys" size=1 color="#800080">(video)</font><font face="Fixedsys" size=1>
| </font><font face="Fixedsys" size=1 color="#FF0000">00 00
00</font><font face="Fixedsys" size=1>&nbsp; 00 00 01 B8&nbsp; 00 00 00
00 </font><font face="Fixedsys" size=1 color="#FF0000"> 00 00 01 E0&nbsp;
00 00 8C 80 <br>
<br>
</font>Here the I-Frame spans two records.&nbsp; Total size is $4 + $AA6C
= 43632 Bytes<br>
<font face="Fixedsys" size=1>00 00 48 E0&nbsp; 30 00 B9 B0&nbsp; 00 00 00
00&nbsp; 00 00 00 00&nbsp;
</font><font face="Fixedsys" size=1 color="#008000">size=00004</font><font face="Fixedsys" size=1>
</font><font face="Fixedsys" size=1 color="#800080">(video)</font><font face="Fixedsys" size=1>
| </font><font face="Fixedsys" size=1 color="#FF0000">93 FF
FF</font><font face="Fixedsys" size=1>&nbsp; 00 00 00 00
</font><font face="Fixedsys" size=1 color="#FF0000"> 01 00 00 8F&nbsp; FF
F8 00 00&nbsp; 01 B5 8F FF <br>
</font><font face="Fixedsys" size=1>0A A6 C2 E0&nbsp; 30 20 56 A0&nbsp;
00 00 00 00&nbsp; 00 00 00 00&nbsp;
</font><font face="Fixedsys" size=1 color="#008000">size=0AA6C</font><font face="Fixedsys" size=1>
</font><font face="Fixedsys" size=1 color="#800080">(video)</font><font face="Fixedsys" size=1>
| </font><font face="Fixedsys" size=1 color="#FF0000">00 00
00</font><font face="Fixedsys" size=1>&nbsp; 01 00 00 8F&nbsp; FF F8 00
00&nbsp; 01 B5 8F FF&nbsp; F3 9C 00 00<br>
<br>
00 01 06 E0&nbsp; 30 00 B9 B4&nbsp; 00 00 00 00&nbsp; 00 00 00 00&nbsp;
</font><font face="Fixedsys" size=1 color="#008000">size=00010</font><font face="Fixedsys" size=1>
</font><font face="Fixedsys" size=1 color="#FF0000">(vid-P)</font><font face="Fixedsys" size=1>
| </font><font face="Fixedsys" size=1 color="#FF0000">ED 27
30</font><font face="Fixedsys" size=1>&nbsp; 00 00 01 E0&nbsp; 00 00 8C
80&nbsp; 07 21 00 07&nbsp; 18 A5 FF FF<br>
</font>In this case the MPEG record starts in the short 4 byte packet
which carries the I-Frame sub-type and then continues in the 0x2
sub-type.&nbsp; There looks to be no padding at the end of this
packet.<br>
<br>
In this case the B-Frame starts out in a 4 byte packet types 0xB which is
what marks the start of the B - Frame, then two 0x2 packets which need to
be appended.&nbsp; In the last 4 byte packet note that only the last byte
is 00, so if there is padding it may only be 1 byte worth of it.<br>
<font face="Fixedsys" size=1>00 00 4B E0&nbsp; 30 00 B9 F0&nbsp; 00 00 00
00&nbsp; 00 00 00 00&nbsp;
</font><font face="Fixedsys" size=1 color="#008000">size=00004</font><font face="Fixedsys" size=1>
</font><font face="Fixedsys" size=1 color="#800080">(video)</font><font face="Fixedsys" size=1>
| </font><font face="Fixedsys" size=1 color="#FF0000">07 FF
FF</font><font face="Fixedsys" size=1>&nbsp; 00 00 00 00
</font><font face="Fixedsys" size=1 color="#FF0000"> 00 01 00 00&nbsp; DF
FF FB B8&nbsp; 00 00 01 B5 <br>
</font><font face="Fixedsys" size=1>01 F0 82 E0&nbsp; 30 21 82 E4&nbsp;
00 00 00 00&nbsp; 00 00 00 00&nbsp;
</font><font face="Fixedsys" size=1 color="#008000">size=01F08</font><font face="Fixedsys" size=1>
</font><font face="Fixedsys" size=1 color="#800080">(video)</font><font face="Fixedsys" size=1>
| </font><font face="Fixedsys" size=1 color="#FF0000">00 00
00</font><font face="Fixedsys" size=1>&nbsp; 00 01 00 00&nbsp; DF FF FB
B8&nbsp; 00 00 01 B5&nbsp; 83 23 23 9C <br>
00 00 42 E0&nbsp; 30 00 B9 F4&nbsp; 00 00 00 00&nbsp; 00 00 00 00&nbsp;
</font><font face="Fixedsys" size=1 color="#008000">size=00004</font><font face="Fixedsys" size=1>
</font><font face="Fixedsys" size=1 color="#800080">(video)</font><font face="Fixedsys" size=1>
| </font><font face="Fixedsys" size=1 color="#FF0000">19 0B
27</font><font face="Fixedsys" size=1>&nbsp; C0 33 80 00
</font><font face="Fixedsys" size=1 color="#FF0000"> 00 00 01 C0&nbsp; 03
6A 8C 80&nbsp; 07 21 00 05 <br>
<br>
</font>I am no expert in MPEG, but forced alignment seems very
unlikely.&nbsp; This sounds to me to be either TiVo hardware related or
TiVo software related.&nbsp; I don't see why these extra pads couldn't be
stripped for MPEG export.<br>
<br>
MPEG allows for multiple video and audio streams.&nbsp; Each stream is
identified by Ex with x 0 to F (I guess a total of 16 different video
streams).&nbsp; Same goes for audio (with a total of 32 different audio
streams).&nbsp; The TiVo is recording a single composite video signal no
matter what input it uses.&nbsp; That means the source media has a
maximum of 1 video channel and up to 2 audio channels.&nbsp; To support
both audio channels the TiVo would need hardware to be able to encode
both audio channels simultaneously.&nbsp; Assuming it has it (I don't
think it does), then it also needs a software upgrade that would allow it
to record MAIN and SAP.&nbsp; If all those conditions were met then
theoretically we could see MAIN on C0 and SAP on C1.<br>
<br>
<blockquote type=cite cite><tt>Interesting... so the 4-byte packets [for
the most part] Tivo's way<br>
of saying to the decoder -- &quot;Hold up - there's a little bit more
MPEG<br>
info on it's way, but we had to wrap it in something...&quot;<br>
So do you know if the padding is optional, or is it necessary for 
a)<br>
timing purposes or b) &quot;error control&quot; to ensure enough '00'
data to<br>
let the decoder know definitively that the next header won't get<br>
'lost' in the data?<br>
Also - I noticed that in the MPEG spec that audio blocks use not
just<br>
C0, but C0 - DF as Stream ID's, and video blocks can actually use 
E0<br>
thru EF as Stream ID's. In the splitstream (and of course zss) code<br>
it checks the Tivo headers for C0 &amp; E0 for audio &amp; video<br>
respectively... any chance that the Tivo code might use more than
one<br>
Stream ID as well?<br>
<br>
Conspiring minds want to know... ;-)<br>
<br>
Laterz,<br>
Roger &quot;Merch&quot; Merchberger<br>
<br>
__________________________________________________<br>
Do You Yahoo!?<br>
Yahoo! Tax Center - online filing with TurboTax<br>
<a href="http://taxes.yahoo.com/">http://taxes.yahoo.com/</a><br>
</tt><br>
<font size=2 color="#003399"><b>Yahoo! Groups Sponsor</b></font> <br>
<font face="arial" size=1>ADVERTISEMENT</font><br>
<br>
<tt>To unsubscribe from this group, send an email to:<br>
ExtractStream-unsubscribe@yahoogroups.com<br>
<br>
</tt><br>
<br>
<tt>Your use of Yahoo! Groups is subject to the
<a href="http://docs.yahoo.com/info/terms/">Yahoo! Terms of
Service</a>.</tt> </blockquote><br>
</html>