ExtractStream + new SVR2000 FIXED!

jeremyjgordonhome jgordon at s...
Sun, 06 Jan 2002 20:01:31 -0000


Hi,

AFAIK the conversion from tyStream to MPEG2 is pretty lightweight; 
tyStream fundamentally has the same MPEG2 audio and video streams, 
they are just glued together in a non-standard way. I'm not 
attempting to re-encode, or even transcode the MPEG2 of the Tivo, 
just DeMux/Mux it. It's my current belief (and I'm in the middle of 
finding out how right or wrong I am) that the TiVo does have enough 
spare cycles to perform the manipulation of PES timestamps and basic 
tyStream format into as proper an MPEG2 System stream (at least as 
standard as I can figure out how to create).

As far as the green bar, and the 480x480 go; these are definitely 
limitations of the setup. Regarding the 480x480, I'm pretty sure 
that both Quicktime 5 and Windows Media Player embedded in an HTML 
page can be told (by OBJECT tag properties) to display the source 
video in any X,Y size, essentially scaling the video. So imagine an 
HTML page served up by a modified TivoWeb that specifies to display 
a 480x480 video in 640x480 resolution with the source being an MPEG 
at the URL served up by this "StreamServer" application.

Regarding the green bar, I think I can live with that. In my 
dreams, I can imagine finding the right macroblocks in the stream to 
replace with all black macroblocks, but this may be too involved for 
my skill/patience level, or the search too intensive for the Tivo.

As far as the direct to SVCD someone already posted that they 
modified their Tivo bitrates in the MFS for one of the settings 
(basic or medium, I can't remember which) to make sure that Tivo's 
MPEG2 streams had SVCD compliant bitrates from the start; no re-
encoding necessary.

I guess the biggest issues right now for me are:

1) Can I put in enough sleep()'s, access the media devices nicely 
enough (small reads), or change my process priority low enough that 
my drive access does not choke out other processes drive accesses

2) I'm assuming (without having gotten enough coded yet) that the 
processing performed by tyConvert.exe (the Delphi application) or 
tivoApp.exe (the MFC application) to convert tyStream to semi-
standard MPEG2 System streams is similar to a DeMux / Mux operation 
with non-standard MPEG2 DeMux code and standard MPEG2 Mux code. 
>From my experience writing this kind of MPEG2 code, it's around 5-
10% of a 33MHZ R3000, or pretty nominal (of course the I/O time to 
read/write this to a hard-disk is very noticeable, even on a 1gig 
athalon!).

I hope to have some answers shortly!

Regards,

Jeremy

--- In ExtractStream@y..., "Edmond E. Shwayri" <eshwayri@n...> wrote:
> I have the same exact problem as you with the same exact hardware 
as you.
> 
> If you want to stream up an MPEG-2 stream to Media Player, the 
TiVo would 
> have to do the conversion, but as I understand it the TiVo does 
not have 
> all that many spare CPU cycles. Also portions of the picture need 
to be 
> blanked and/or chopped off (left and top contain extra information 
which is 
> not picture related). Also, the picture is in 480x480 which is a 
nasty 
> size to look at. Way way too square. The picture should be 
> resized. Those are too may thing for the TiVo to do.
> 
> A better choice in my opinion would be to go with a 2 stage 
process. One 
> program runs on the TiVo. Its sole job would be to extract the 
TyStream 
> and return it via TCP/IP. Another program would run as a daemon 
on a 
> PC. This program would have the job of accepting incoming 
connections from 
> Media Player or whatever streaming media player. It would connect 
to the 
> first program on the TiVo and obtain the TyStream, modify it as 
needed and 
> then serve it up to the media player. PC CPU cycles these days 
are 
> abundant. This method would be cool because if written correctly, 
the PC 
> program could be very configurable in what filters it applies. As 
times 
> goes on further smarts could be added to the PC program such as 
automatic 
> extraction and conversion, etc....
> 
> At 07:39 AM 1/6/02, you wrote:
> >Hi All,
> >
> >Well, I think I've figured out the issues with the SVR2000 and
> >ExtractStream (and variants). The issue is that the two media
> >partitions (/dev/hda10 and /dev/hda11) which normally exist from 
the
> >factory are actually four on the SVR2000 (additionally /dev/hda12
> >and /dev/hda13).
> >
> >I've written a new C++ program "StreamServer", which can handle 
this
> >configuration, and can currently serve up the raw tyStream's over
> >HTTP (instead of all the telnet window stuff) without totally
> >choking the Tivo.
> >
> >Basically, /dev/hda10 on my system (and Tivo's since the dawn of
> >time) is small (256 megs) and AFAIK used to store the general MFS
> >database stuff. /dev/hda11 is much larger (on my system 16gig,
> >smaller than previous SVR2000's) and used to store the actual
> >video/audio tyStream data.
> >
> >As mentioned above, /dev/hda12 and /dev/hda13 mirror this
> >configuration (another 256 meg partition, and 16gig partition). 
I'm
> >not yet sure why some FSID's should use the normal ExtractStream
> >calculation to map FSID to physical sector on the MFS database
> >partition A (/dev/hda10), and sometimes use my calculation to map
> >FSID to physical sector on the MFS database partition B
> >(/dev/hda12), but right now I coded it so that if it fails to get 
a
> >valid signature with the FSID on MFS partition A, it will go look 
on
> >partition B. I look at the first sector of /dev/hda10 to 
determine
> >the partition configurations, so I'm not sure it will work for all
> >configs, but I think it will work for both pre-December and post-
> >December SVR2000's automagically.
> >
> >I'm still cleaning stuff up; should be able to post the source and
> >binary tomorrow evening. The goal of this "StreamServer" program 
is
> >do all the tyConvert type work on the TiVo. Basically, I want to 
be
> >able to point Internet Explorer at my TiVo and watch MPEG2 streams
> >in the browser (with the ever lovely Windows Media Player), and/or
> >be able to "download" SVCD bitrate ready MPEG2 streams in ~15min 
to
> >archive my shows.
> >
> >I still plan on using the TCL application TivoWeb on port 80, but
> >modified so that the "Now Showing" of a recorded show has a new
> >hyperlink that specifies a URL's to the nicepri'd native
> >application "StreamServer" running on port 81.
> >
> >Regards,
> >
> >Jeremy
> >
> >
> >
> >Yahoo! Groups Sponsor
> >ADVERTISEMENT
> >
> >To unsubscribe from this group, send an email to:
> >ExtractStream-unsubscribe@y...
> >
> >
> >
> >Your use of Yahoo! Groups is subject to the 
> ><http://docs.yahoo.com/info/terms/>Yahoo! Terms of Service.