PDA

View Full Version : ty enabled mplayer [beta test]



Pages : [1] 2 3 4 5

cwingert
03-24-2003, 03:38 AM
==Purpose==
Allows streaming of recorded programs off a TiVo or local TiVo streams
to play onto a PC. No intermediate storage is required. No re-muxing
is required My goal is to use my TiVos as SD recording devices that sit
in my closet and PCs around my house as playback devices.

NOTE - If you want to make DVD-Video, please use tydemux, this is not
the project your are looking for.


==Features==
-Local playback with complete skip control
-Remote playback (on TiVo) with complete skip control


==Tested the following streams as working==
-Minor testing with SA Version 1.3
-Significant testing with SA Version 2.5
-Minor testing of DTiVo MPEG Audio
-Minor testing of DTiVO AC-3 Audio

==Download==
http://tivo-mplayer.sf.net/MPlayer-0.90rc4-tivo-0.1.tar.gz
http://tivo-mplayer.sf.net/vserver-1.0.tar.gz

==Requirements==
-Some Tivo streams on your hard drive -OR-
-Tivo with some sort of fast TCP connection (ie TivoNet, TurboNet, AirNet)


==Issues==
-If tystream part header is not present, mplayer will not know where
to stop decoding in the stream. Streams allocated in the MFS Database
usually allocate more disk bytes than necessary. The only place the correct
size is known is in the part header. Possible issues :
| -The mplayer MPEG library may crash because of the P/B Frames may be
referencing something that is not there.
| -MPlayer may go on fat, dumb, and happy playing another stream (if you
are lucky enough to end on an I Frame.
-Seeking may cause lip sync to be off for a few seconds as mplayer
"catches" up.
-I am not sure how many concurrent streams you can pull from a single
TiVo. I have done 2 at the same time, however, I am not sure of
the impact on recording. I am interested in more information here.


==Notes==
-Fixing 2% of the actual streams, that are broken, is not my goal with these modifications. If you have a
really bad stream, you should pass it through Olaf and team's tystudio.
However, if there is enough demand, I will produce a tool to correct really
bad ty streams.
-The final intent of these modifications is to go into the mainstream mplayer
source.
-This *should* work with different types of streams (other than TiVo
streams), just like stock mplayer.
-This should work on Windows as well with a cygwin install. As mplayer
supports a video out driver for DirectX. I have not compiled it for
Windows yet, but I would appreciate any feedback.



==Installation==
-vserver-1.0.tar.gz is required only if you want to stream directly from
the TiVo's harddrive.
If you want to build this, you will need to install the TiVo cross compiler.
If not, you can just use the vserver binary included in the package.
Simply :
-Uncompress the archive
# tar xvfz vserver-1.0.tar.gz
-copy vserver to your TiVo
-Execute it
# ./vserver
You may want to start it from your TiVo startup script.

-MPlayer-0.90rc4-tivo-0.1.tar.gz is required for both streaming from
a TiVo and for playing locally stored TiVo streams. No binaries are
included as mplayer prefers to be built for the target machine.
-Unpack the archive
# tar xvfz MPlayer-0.90rc4-tivo-0.1.tar.gz
-Configure the distribution
# ./configure
-Make it
# make
-Install it
# make install
-Run it
# mplayer


==Usage==
-Play a locally stored stream
# mplayer stream.ty
-Retrieve the now showing list from a TiVo, tivohost is the host name of
your tivo, alternately you can use the TiVo's IP Address
# mplayer tivo://tivohost/list
-Play a remote stream, 12345 is the FSID provided in the now showing list
# mplayer tivo://tivohost/12345


==Credit==
-Tridge (of course), all of the streaming code is based on his (mostly
overlooked) work. 80% of MPlayer*/vstream is his code.
-Olaf Beck for his help regarding informational support of tystream and
MPEG information. He also provided me with DTiVo streams, as I
have no direct access to a DTiVo.
-Arpad Gereoffy for mplayer, a very flexible (but complicated) framework.
An awesome multi-faceted player too!


==Version Notes==
Version 0.1
-This version is intended to get mplayer out. In the next week I will
be cleaning up the code base and optimizing it for submission to the
mplayer author.
-I will be accepting bug reports at this time, however, please verify
with tydemux that your stream is not majorly faulty.


==ToDo==
-Code Cleanup
-Closed Caption Support
-Ty Stream Repair


==Contact==
tivo@wingert.org

burriko
03-24-2003, 09:56 AM
I've spent the last hour or so trying to compile this under cygwin. I've never used cygwin, so you'll have to forgive me if i've overlooked something simple.

Mplayer seems to be compiling fine until it get's to the vstream part. I've copied the output from make below.

It has problems finding the include file asm/unistd.h. Could this be causing the problem?

I appreciate any help you can give me.



make -C vstream
make[1]: Entering directory `/home/Graeme/MPlayer-0.90rc4/vstream'
gcc -c -O4 -march=i586 -mcpu=i586 -pipe -ffast-math -fomit-frame-pointer -D_LARG
EFILE_SOURCE -D_FILE_OFFSET_BITS=64 -D__CYGWIN__ -I../loader -o mfs.o mfs.c
In file included from mfs.c:7:
mfs.h:24:24: asm/unistd.h: No such file or directory
In file included from mfs.c:7:
mfs.h:76: parse error before "u64"
mfs.h:76: warning: data definition has no type or storage class
In file included from mfs.h:209,
from mfs.c:7:
proto.h:9: parse error before "u64"
proto.h:11: parse error before "mfs_fsid_size"
proto.h:11: warning: data definition has no type or storage class
proto.h:17: parse error before "u64"
proto.h:19: parse error before "limit"
proto.h:37: parse error before "llseek"
proto.h:37: parse error before "u64"
proto.h:37: warning: data definition has no type or storage class
mfs.c:280: parse error before "u64"
mfs.c: In function `mfs_fsid_pread':
mfs.c:286: `ofs' undeclared (first use in this function)
mfs.c:286: (Each undeclared identifier is reported only once
mfs.c:286: for each function it appears in.)
mfs.c:287: parse error before "size"
mfs.c:289: `fsid' undeclared (first use in this function)
mfs.c:293: `count' undeclared (first use in this function)
mfs.c:297: `buf' undeclared (first use in this function)
mfs.c:301: `size' undeclared (first use in this function)
mfs.c: At top level:
mfs.c:351: parse error before "mfs_fsid_size"
mfs.c: In function `mfs_fsid_size':
mfs.c:361: parse error before "inode"
mfs.c: At top level:
mfs.c:554: parse error before "u64"
mfs.c: In function `bitmap_fn':
mfs.c:562: `limit' undeclared (first use in this function)
mfs.c:572: `zone' undeclared (first use in this function)
mfs.c: In function `mfs_zone_bitmap':
mfs.c:588: `zone' undeclared (first use in this function)
mfs.c: At top level:
mfs.c:618: parse error before "limit"
mfs.c: In function `mfs_purge_all':
mfs.c:625: `limit' undeclared (first use in this function)
make[1]: *** [mfs.o] Error 1
make[1]: Leaving directory `/home/Graeme/MPlayer-0.90rc4/vstream'

cwingert
03-24-2003, 10:57 AM
Thanks for the reply.

Can you drop the following mfs.h in your vstream directory and try the compile again?

Thanks

burriko
03-24-2003, 11:13 AM
put that file in and it's fixed those errors, but has created a bunch of new errors.

here's the output



make -C vstream
make[1]: Entering directory `/home/Graeme/MPlayer-0.90rc4/vstream'
gcc -c -O4 -march=i586 -mcpu=i586 -pipe -ffast-math -fomit-frame-pointer -D_LARG
EFILE_SOURCE -D_FILE_OFFSET_BITS=64 -D__CYGWIN__ -I../loader -o mfs.o mfs.c
gcc -c -O4 -march=i586 -mcpu=i586 -pipe -ffast-math -fomit-frame-pointer -D_LARG
EFILE_SOURCE -D_FILE_OFFSET_BITS=64 -D__CYGWIN__ -I../loader -o object.o obj
ect.c
gcc -c -O4 -march=i586 -mcpu=i586 -pipe -ffast-math -fomit-frame-pointer -D_LARG
EFILE_SOURCE -D_FILE_OFFSET_BITS=64 -D__CYGWIN__ -I../loader -o schema.o sch
ema.c
gcc -c -O4 -march=i586 -mcpu=i586 -pipe -ffast-math -fomit-frame-pointer -D_LARG
EFILE_SOURCE -D_FILE_OFFSET_BITS=64 -D__CYGWIN__ -I../loader -o query.o quer
y.c
gcc -c -O4 -march=i586 -mcpu=i586 -pipe -ffast-math -fomit-frame-pointer -D_LARG
EFILE_SOURCE -D_FILE_OFFSET_BITS=64 -D__CYGWIN__ -I../loader -o util.o util.
c
gcc -c -O4 -march=i586 -mcpu=i586 -pipe -ffast-math -fomit-frame-pointer -D_LARG
EFILE_SOURCE -D_FILE_OFFSET_BITS=64 -D__CYGWIN__ -I../loader -o bitmap.o bit
map.c
gcc -c -O4 -march=i586 -mcpu=i586 -pipe -ffast-math -fomit-frame-pointer -D_LARG
EFILE_SOURCE -D_FILE_OFFSET_BITS=64 -D__CYGWIN__ -I../loader -o io.o io.c
io.c: In function `mfs_read_sectors':
io.c:141: `loff_t' undeclared (first use in this function)
io.c:141: (Each undeclared identifier is reported only once
io.c:141: for each function it appears in.)
io.c:141: parse error before "start"
io.c:151: `start' undeclared (first use in this function)
io.c: In function `mfs_write_sectors':
io.c:177: `loff_t' undeclared (first use in this function)
io.c:177: parse error before "start"
io.c:187: `start' undeclared (first use in this function)
make[1]: *** [io.o] Error 1
make[1]: Leaving directory `/home/Graeme/MPlayer-0.90rc4/vstream'
make: *** [vstream/vstream.a] Error 2

rd001
03-24-2003, 12:15 PM
Nice project. This could develop into some very nice solutions.

gardenhose
03-24-2003, 01:05 PM
hi cwingert! Nice job.

I'm on macosx and I had gotten vplayer2 to compile ok over there (see posts below.)

To fix the u64 thing, I just had to replace all instances of loff_t with "long long" and copy a unistd.h from somewhere else into the local directory.

cwingert
03-24-2003, 01:16 PM
Here is another mfs.h. Please try this one.

If it doesn't work, I'll download cygwin and give it a whirl.

cwingert
03-24-2003, 01:29 PM
Wow. I didn't know anyone was using vplayer2.

It really was a crappy solution to the problem. I wish I would have looked into the MFS stream format earlier. The amount of time I spent on vplayer2 was pretty much equivalent to the mplayer patches.

Getting mplayer, vsplit, and X to play nice together was a bitch.



Originally posted by gardenhose
hi cwingert! Nice job.

I'm on macosx and I had gotten vplayer2 to compile ok over there (see posts below.)

To fix the u64 thing, I just had to replace all instances of loff_t with "long long" and copy a unistd.h from somewhere else into the local directory.

burriko
03-24-2003, 01:45 PM
awesome, that last version of mfs.h seems to have fixed the problems with vstream.
but now the compile is choking on libdvdcss.c.
i'm going to read through the mplayer-cygwin mailing list to see if anyone has had this problem before.

btw, the output is



libdvdcss.c: In function `dvdcss_open':
libdvdcss.c:237: warning: assignment makes pointer from integer without a cast
libdvdcss.c:380: too few arguments to function `mkdir'
libdvdcss.c:393: too few arguments to function `mkdir'
make[1]: *** [libdvdcss.o] Error 1
make[1]: Leaving directory `/home/Graeme/MPlayer-0.90rc4/libmpdvdkit2'
make: *** [libmpdvdkit2/libmpdvdkit.a] Error 2

cwingert
03-24-2003, 01:50 PM
Cool.

Yes, this bug is outside the realm of my changes to support a tystream and must be in the stock mplayer rc4 code base.

I know there is an rc5 version of mplayer, but I have to clean up my code before I go to it.



Originally posted by burriko
awesome, that last version of mfs.h seems to have fixed the problems with vstream.
but now the compile is choking on libdvdcss.c.
i'm going to read through the mplayer-cygwin mailing list to see if anyone has had this problem before.

btw, the output is



libdvdcss.c: In function `dvdcss_open':
libdvdcss.c:237: warning: assignment makes pointer from integer without a cast
libdvdcss.c:380: too few arguments to function `mkdir'
libdvdcss.c:393: too few arguments to function `mkdir'
make[1]: *** [libdvdcss.o] Error 1
make[1]: Leaving directory `/home/Graeme/MPlayer-0.90rc4/libmpdvdkit2'
make: *** [libmpdvdkit2/libmpdvdkit.a] Error 2

gardenhose
03-24-2003, 02:39 PM
Hi Cwingert, I'll be able to get you a mac-osx working source setup of your new mplayer when I get back to home later on. I've got it almost compiled but just need to test it. Just had the same issues when compiled vplayer, i.e. trampolines and some missing libraries.

burriko
03-24-2003, 02:53 PM
i tried compiling again with mpdvdkit disabled (to bypass the problem i have with libdvdcss.c). and it seems to have kicked up another vstream related error.

does this mean anything to you?



gcc -O4 -march=i586 -mcpu=i586 -pipe -ffast-math -fomit-frame-pointer -D__CYGWIN
__ -Ilibmpdemux -Iloader -Ilibvo -o mplayer mplayer.o mp_msg.o cpudetect.o
codec-cfg.o cfgparser.o my_profile.o spudec.o playtree.o playtreeparser.o asxpar
ser.o vobsub.o subreader.o sub_cc.o find_sub.o m_config.o m_option.o parser-cfg.
o m_struct.o unrarlib.o mixer.o parser-mpcmd.o libvo/libvo.a libao2/libao2.a
libmpcodecs/libmpcodecs.a mp3lib/libMP3.a liba52/liba52.a libmpeg2/libmpeg2.a
libaf/libaf.a libmpdemux/libmpdemux.a input/libinput.a postproc/libpostproc.a po
stproc/libswscale.a linux/libosdep.a vstream/vstream.a libavcodec/libavcodec.a
-lz -ltermcap -lgdi32 -lwinmm -liconv -lintl -l
m
vstream/vstream.a(util.o)(.text+0x322):util.c: undefined reference to `_syscall'

vstream/vstream.a(util.o)(.text+0x38a):util.c: undefined reference to `_syscall'

vstream/vstream.a(util.o)(.text+0x40a):util.c: undefined reference to `_syscall'

collect2: ld returned 1 exit status
make: *** [mplayer] Error 1

cwingert
03-24-2003, 04:32 PM
I uploaded a new version to fix the syscall issue.
Could you give it a whirl?

Thanks

http://tivo-mplayer.sf.net/MPlayer-0.90rc4-tivo-0.2.tar.gz

burriko
03-24-2003, 06:47 PM
it compiled perfectly!

tried it on a small local ty file and it worked straight away :eek: wow, i'm really impressed.

now to try streaming from the tivo :)

thank you.

cwingert
03-24-2003, 06:58 PM
I just compiled it too. Works very cool.

Its nice to be cross platform so easily.

burriko
03-24-2003, 07:00 PM
streaming works too!

one problem though, programmes recorded at best quality stuttered occasionally, but the one programme on my tivo recorded at basic quality played back perfectly. so i'm assuming this a network traffic problem due to the high bitrate of 'best' quality.

i'm very impressed though. and thanks for making such quick updates to fix the problems that i was having compiling it.

burriko
03-24-2003, 07:09 PM
ran mplayer with the switch -cache 8192 to increase it's cache and now best quality streams without any stuttering.

now, how do i force mplayer to deinterlace mpeg2 streams?

AlphaWolf
03-24-2003, 07:23 PM
Originally posted by cwingert
-Fixing 2% of the actual streams, that are broken, is not my goal with these
modifications, mplayer is not a player for bad streams. If you have a
really bad stream, you should pass it through Olaf and team's tystudio.
However, if there is enough demand, I will produce a tool to correct really
bad ty streams.
-The final intent of these modifications is to go into the mainstream mplayer
source.

-----snip-----

==ToDo==
-Code Cleanup
-Closed Caption Support
-Ty Stream Repair
[/B]

The latest tydemux is made to function as a library. Might prove useful instead of rewriting the code from scratch :)

gardenhose
03-24-2003, 08:56 PM
I successfully got this working on mac os X. It works great, especially with -cache 16384 over my wireless connection. It's too big to post back here, so if anyone wants the binary let me know. The source changes I had to make:


compile in quartz SDL support. You need to get the 1.2.5 sdl from fink
on my tivo (still!) I need to change the "/Recording/NowShowing" to "/Recording/NowShowingByTitle" or else nothing shows up. This is in vstream.c
Various callback moves in query.c and schema.c; gcc on mac os x doesn't support trampolining for some reason, resulting in segfaults
syscall(llseek) is replaced with syscall(199) -- there's no macro defined for that in mac
use local copies of unistd, getopt and dlfcn.h files

cwingert
03-24-2003, 09:28 PM
I can add NowShowingByTitle to the search list.

Can you send me your updated query.c and schema.c?

Thanks


Originally posted by gardenhose
I successfully got this working on mac os X. It works great, especially with -cache 16384 over my wireless connection. It's too big to post back here, so if anyone wants the binary let me know. The source changes I had to make:


compile in quartz SDL support. You need to get the 1.2.5 sdl from fink
on my tivo (still!) I need to change the "/Recording/NowShowing" to "/Recording/NowShowingByTitle" or else nothing shows up. This is in vstream.c
Various callback moves in query.c and schema.c; gcc on mac os x doesn't support trampolining for some reason, resulting in segfaults
syscall(llseek) is replaced with syscall(199) -- there's no macro defined for that in mac
use local copies of unistd, getopt and dlfcn.h files

gardenhose
03-24-2003, 09:44 PM
Sure-- attached is the mac os x versions of the vstream directory.

gardenhose
03-24-2003, 10:02 PM
Originally posted by burriko

now, how do i force mplayer to deinterlace mpeg2 streams? [/B]


mplayer -vop pp=lb tivo://tivo_ip/FSID

will do it!

zobetron
03-24-2003, 10:33 PM
Is there anything I need to know to get this to compile under cygwin? I tried it and it said it couldn't find inttypes.h (which is in the MPlayer-0.90rc4/etc directory)? Is it a path thing? Do I need to set some variable?

TIA,

Z

cwingert
03-24-2003, 11:16 PM
I made my own inttypes.h
<bof>
#ifndef INTTYPES_H
#define INTTYPES_H
#include <sys/types.h>
#include <cygwin/types.h>
#endif
<eof>

You are also going to need the DirectX headers.
http://www.videolan.org/vlc/dx7headers.tgz
and install them in /usr/include/

HTH


Originally posted by zobetron
Is there anything I need to know to get this to compile under cygwin? I tried it and it said it couldn't find inttypes.h (which is in the MPlayer-0.90rc4/etc directory)? Is it a path thing? Do I need to set some variable?

TIA,

Z

zobetron
03-25-2003, 12:11 AM
Originally posted by burriko
i tried compiling again with mpdvdkit disabled (to bypass the problem i have with libdvdcss.c). and it seems to have kicked up another vstream related error.

Could you explain how you disabled mpdvdkit?

TIA,

Z

zobetron
03-25-2003, 12:39 AM
Never mind, I figured it out.

./configure --disable-mpdvdkit


Works like a charm (local and streamed). Really cool...:)

olaf_sc
03-25-2003, 02:10 AM
He allready have the code :), the problem is that tydemux is not that sutible for random access. He can still use the functions but he will need to cache data etc...

Cheers Olaf


Originally posted by AlphaWolf
The latest tydemux is made to function as a library. Might prove useful instead of rewriting the code from scratch :)

burriko
03-25-2003, 07:31 AM
Originally posted by gardenhose


mplayer -vop pp=lb tivo://tivo_ip/FSID

will do it!

thanks for that, but i figured it out in the end. not overly impressed with mplayer's deinterlacing though, some things don't look quite right.

burriko
03-25-2003, 07:33 AM
Originally posted by zobetron
Is there anything I need to know to get this to compile under cygwin? I tried it and it said it couldn't find inttypes.h (which is in the MPlayer-0.90rc4/etc directory)? Is it a path thing? Do I need to set some variable?

TIA,

Z

the following page explains how to compile under cygwin, and where to get the inttypes.h file.

http://mplayerhq.hu/DOCS/documentation.html#cygwin

burriko
03-25-2003, 07:40 AM
Originally posted by cwingert

-The final intent of these modifications is to go into the mainstream mplayer
source.


I really hope that this happens. What i would love from this project is for it to be integrated into Xbox Media Player, which is quite likely to happen if it becomes a part of the mainsteam mplayer.
(XBMP is based on mplayer, so features from mplayer generally end up in XBMP)

saltydog4791
03-25-2003, 05:42 PM
I can not get this thing to compile for me at all on os x. I do have the dev tools installed as well as sdl from fink like gardenhose said but still no luck. Can anyone help me out with this? Or if you already have a rolled-up binary that would be great as well. Thanks.

saltydog4791

gardenhose
03-25-2003, 09:38 PM
saltydog: what errors do you get when trying to compile? Did you change all the loff_t's to long longs? Post your error here and we'll figure it out. It's a lot better if you can compile it yourself instead of use my binary because mine is optimized for my specific processor, etc.

saltydog4791
03-25-2003, 10:21 PM
gardenhose-

where would I change loff_t's to long longs?

I am compiling it now and this is a snippet of what I get at the bail-out. BTW, I swapped out the vstream folder included with the one you posted in this thread, which I assume is a good thing, right?

ranlib libvo/libvo.a
ranlib libaf/libaf.a
ranlib vstream/vstream.a
ranlib postproc/libpostproc.a
ranlib libmpdvdkit2/libmpdvdkit.a
gcc -O4 -pipe -ffast-math -fomit-frame-pointer -no-cpp-precomp -DSYS_DARWIN -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -Ilibmpdemux -Iloader -Ilibvo -I/sw/include/freetype2 -I/sw/include -I/sw/include/SDL -D_THREAD_SAFE -o mplayer mplayer.o mp_msg.o cpudetect.o codec-cfg.o cfgparser.o my_profile.o spudec.o playtree.o playtreeparser.o asxparser.o vobsub.o subreader.o sub_cc.o find_sub.o m_config.o m_option.o parser-cfg.o m_struct.o unrarlib.o mixer.o parser-mpcmd.o libvo/libvo.a libao2/libao2.a libmpcodecs/libmpcodecs.a mp3lib/libMP3.a liba52/liba52.a libmpeg2/libmpeg2.a libaf/libaf.a libmpdemux/libmpdemux.a input/libinput.a postproc/libpostproc.a postproc/libswscale.a linux/libosdep.a vstream/vstream.a -Llibmpdvdkit2 -lmpdvdkit libavcodec/libavcodec.a -lz -L/sw/lib -lfreetype -ltermcap -lGL -lXv -lXxf86vm -lXinerama -L/usr/X11R6/lib -lXext -lX11 -L/sw/lib -lSDLmain -lSDL -framework Cocoa -framework OpenGL -L/sw/lib -lesd -laudiofile -lm -lm
ld: Undefined symbols:
_libiconv
_libiconv_close
_libiconv_open
make: *** [mplayer] Error 1

gardenhose
03-25-2003, 10:50 PM
OK, forgot about the libiconv stuff. After running ./configure add this line to the end of config.mak:

ICONV_LIB = -L/sw/lib -liconv

And then in the Makefile, find the line that does COMMON_LIBS = ...

And add $(ICONV_LIB) to the end of the list.

(This is assuming you have libiconv in your /sw/lib directory. You should (it's pretty common), but if not add it with fink.)

saltydog4791
03-26-2003, 12:38 AM
sweet. thanks gardenhose. it compiled for me after those two changes. the problem I get now is from streaming. when I try to get the list I get the following error.

Playing tivo://192.168.0.100/list
Listing streams in /Recording/Complete
ty_streaming_start failed
Unable to open URL: tivo://192.168.0.100/list


Exiting... (End of file)


Any ideas? Is it because I am using the vstream dir that gardenhose posted and not the stock one?

saltydog4791

IWantMyDTV
03-26-2003, 12:50 AM
Originally posted by burriko
I really hope that this happens. What i would love from this project is for it to be integrated into Xbox Media Player, which is quite likely to happen if it becomes a part of the mainsteam mplayer.
(XBMP is based on mplayer, so features from mplayer generally end up in XBMP)


MMMMMMMMmmmmmm. Streaming TiVo to the XBox!

jodell
03-26-2003, 01:53 AM
Very cool enhancement to Mpalyer! I have watched a couple programs off my TiVo with only a couple problems.

I can use the command mplayer tivo:tivo2/fsid to stream a program from my tivo to my laptop. What I can't do is use tivo://tivo2/list to get a list of programs available. I get the following output on my linux PC:

Playing tivo://tivo2/list
Listing streams in /Recording/NowShowing
ty_streaming_start failed
Unable to open URL: tivo://tivo2/list


Exiting... (End of file)


I am running beta 0.2 on my Redhat 8 laptop.

Does anyone have an idea what might be wrong?

Thanks,
Jeff

saltydog4791
03-26-2003, 02:19 AM
hey jodell,

join the club. trying to figure it out right now.

saltydog4791

gardenhose
03-26-2003, 09:02 AM
jodell, saltydog: I think you're both having the same trouble I did with the /Recording/Nowshowing stuff. Go into vstream.c and change every instance of "/Recording/NowShowing" to "/Recording/NowShowingByTitle" and see if that helps.

OvitivO
03-26-2003, 01:14 PM
cwingert: awesome!!! :)

I was waiting for the current studio development to move along before requesting this, so this was quite a pleasant surprise!

fredisdead
03-26-2003, 11:25 PM
Can someone do this?

jodell
03-27-2003, 12:48 AM
Gardenhose,

Where do I find vstream.c ? I was looking for that file to try to make your suggested change. I expected it to be in the Tivo package but it was not. I also checked the Mplayer folder and didn't see it anyplace obvious. I will check there again as there were quite a few sub directories that I might not have checked carefully.

Thanks for the pointer

Jeff

gardenhose
03-27-2003, 10:26 AM
Originally posted by jodell
Gardenhose,

Where do I find vstream.c ? I was looking for that file to try to make your suggested change. I expected it to be in the Tivo package but it was not. I also checked the Mplayer folder and didn't see it anyplace obvious. I will check there again as there were quite a few sub directories that I might not have checked carefully.

Thanks for the pointer

Jeff


It's in {mplayer_directory}/vstream/vstream.c. Here's the code I have changed:



int vstream_list_streams( void )
{
char *path;

mfs_init();
if ( mfs_resolve( "/Recording/NowShowingByTitle" ) != 0 )
{
path = "/Recording/NowShowingByTitle";
}
else
{
path = "/Recording/Complete";
}
printf( "Listing streams in %s\n", path );
vstream_query_streams( path );
return( 0 );
}

samighi
03-27-2003, 04:47 PM
Originally posted by fredisdead
Can someone do this?

RE: Windows binaries. Are there some? I won't mind playing with them. Can you let me know where?

Thanks, SA

hom3l3ss
03-27-2003, 05:51 PM
just wanted to ask what tools i need to complie under mac osx and where do i download it from?

cwingert
03-27-2003, 06:17 PM
I am going to patch the mplayer stuff, for all the things found in this thread. Stuff I have seen so far, is the darwin vstream patches and the additional MFS Path for Now Showing streams. Anything else?

BTW, Arpi (from mplayer fame) *is* interested in these patches. I just need to get them to his coding standards before I submit the patches. I was also hoping to get some responses to how well (or not well) this works, before I submit it.

Thanks for the feedback.

burriko
03-27-2003, 07:56 PM
hi cwingert.

the only problems i've had so far are.

1. there are certain show's that just won't play (streaming from tivo). i can't see any pattern to the shows, and there are only a couple out of the many that i've tested. i've been meaning to extract the shows and see if they will play locally, but i haven't got around to it yet.
the output given is


Playing tivo://tivo/341451
Starting to stream from a TiVo tivo file 341451
Cache size set to 8192 KBytes
Connected to server: tivo
Cache fill: 0.00% (0 bytes) Falling back on trying to parse playlist tivo://
tivo/341451...
============ Sorry, this file format is not recognized/supported =============
=== If this file is an AVI, ASF or MPEG stream, please contact the author! ===


Exiting... (End of file)


2. audio sync. i could never get a ty file to stay in sync until tydemux came along, they would always gradually go out of sync. and i have this exact same problem with your version of mplayer, although so far it doesn't seem as bad as it was with tools like vsplit. i believe that this is related to uk tivos, but that's just my opinion, i don't have any proof.
perhaps if you incorporated some of olaf's tydemux code it could fix this.

gardenhose
03-27-2003, 08:32 PM
Originally posted by hom3l3ss
just wanted to ask what tools i need to complie under mac osx and where do i download it from?

You need

Developer's tools (latest version, download from Apple's site if they're not installed on your computer
Apple's X11 implementation
The SDK for Apple's X11 (download on the same site)
Fink
Fink packages: SDL, X11 support, there might be others...

Then just make the changes described here: add the libiconv to the Makefile, use the new vstream folder I posted before, change all the loff_t to "long long." That should do it...

invader zog
03-27-2003, 10:42 PM
not sure if anyone has mentioned this yet, but it would be awesome if this could get merged into the XBMP code base!!

jodell
03-27-2003, 10:44 PM
Gardenhose,

Thanks! Your fix worked perfectly. I just didn't spend enough time looking for vstream.c. Once I modified the two lines all is well!.

Thanks to everyone involved with bringing this great tool to the masses.

Jeff

cwingert
03-27-2003, 11:47 PM
I have only seen bad lip sync during stream skipping (and only for a few seconds.) Sounds like you have bad streams.

Is it possible for you to extract both the stream that doesn't play and the stream that gives you lip sync problems for me (first 100Megs of both would be great). I can give you an upload web page in a PM. Was this stream recorded recently?



Originally posted by burriko
hi cwingert.

the only problems i've had so far are.

1. there are certain show's that just won't play (streaming from tivo). i can't see any pattern to the shows, and there are only a couple out of the many that i've tested. i've been meaning to extract the shows and see if they will play locally, but i haven't got around to it yet.
the output given is


Playing tivo://tivo/341451
Starting to stream from a TiVo tivo file 341451
Cache size set to 8192 KBytes
Connected to server: tivo
Cache fill: 0.00% (0 bytes) Falling back on trying to parse playlist tivo://
tivo/341451...
============ Sorry, this file format is not recognized/supported =============
=== If this file is an AVI, ASF or MPEG stream, please contact the author! ===


Exiting... (End of file)


2. audio sync. i could never get a ty file to stay in sync until tydemux came along, they would always gradually go out of sync. and i have this exact same problem with your version of mplayer, although so far it doesn't seem as bad as it was with tools like vsplit. i believe that this is related to uk tivos, but that's just my opinion, i don't have any proof.
perhaps if you incorporated some of olaf's tydemux code it could fix this.

cwingert
03-27-2003, 11:49 PM
BTW - the only way for sync to skip over time is for bad time stamps which is really odd.


Originally posted by burriko
hi cwingert.

the only problems i've had so far are.

1. there are certain show's that just won't play (streaming from tivo). i can't see any pattern to the shows, and there are only a couple out of the many that i've tested. i've been meaning to extract the shows and see if they will play locally, but i haven't got around to it yet.
the output given is


Playing tivo://tivo/341451
Starting to stream from a TiVo tivo file 341451
Cache size set to 8192 KBytes
Connected to server: tivo
Cache fill: 0.00% (0 bytes) Falling back on trying to parse playlist tivo://
tivo/341451...
============ Sorry, this file format is not recognized/supported =============
=== If this file is an AVI, ASF or MPEG stream, please contact the author! ===


Exiting... (End of file)


2. audio sync. i could never get a ty file to stay in sync until tydemux came along, they would always gradually go out of sync. and i have this exact same problem with your version of mplayer, although so far it doesn't seem as bad as it was with tools like vsplit. i believe that this is related to uk tivos, but that's just my opinion, i don't have any proof.
perhaps if you incorporated some of olaf's tydemux code it could fix this.

Torg
03-28-2003, 12:07 AM
I can do it fine with no desync. I have found more often then not it is not a decode problem but rather the clock on your own system.

Mplayer can take effect of this if you use /dev/rtc

1) chmod o+r /dev/rtc (it may be /dev/misc/rtc, with /dev/rtc a symlink)
2) echo 1024 > /proc/sys/dev/rtc/max-user-freq

See if that helps you any.

My only gripe is the streams are about 2x the rate what I can push out my router :(. I've always wonderd if I could get the TiVo to do the mpeg2->mpeg1 and stream that. But alas its poor litle CPU cant handle the strain. Anybody have a hardware mpeg1 decoder hack :)

hom3l3ss
03-28-2003, 01:14 AM
where do u find these loff_t's ?? i'm trying to compile under mac osx and i get this errors
"make -C vstream
make[1]: *** No targets specified and no makefile found. Stop.
make: *** [vstream/vstream.a] Error 2
" after i do the command "#make", any idea what i'm doing wrong?


Originally posted by gardenhose
hi cwingert! Nice job.

I'm on macosx and I had gotten vplayer2 to compile ok over there (see posts below.)

To fix the u64 thing, I just had to replace all instances of loff_t with "long long" and copy a unistd.h from somewhere else into the local directory.

gardenhose
03-28-2003, 08:37 AM
Originally posted by hom3l3ss
where do u find these loff_t's ?? i'm trying to compile under mac osx and i get this errors
"make -C vstream
make[1]: *** No targets specified and no makefile found. Stop.
make: *** [vstream/vstream.a] Error 2
" after i do the command "#make", any idea what i'm doing wrong?

You shouldn't need to run make -C vstream from anywhere... just a simple "make" from the Mplayer directory that you extracted should do fine. That will also make the vstream stuff. Just make sure that new copy of the vstream directory I posted is overwriting the vstream directory in cwingert's post.

cwingert
03-28-2003, 11:35 AM
New hosting!
http://tivo-mplayer.sf.net
I wanted to keep all releases online.

MPlayer-0.90rc4-tivo-0.3.tar.gz
Version 0.3 primarily roll's GardenHose's Mac OSX patches into the release. Could someone with OSX give the build a try?

I have also included build instructions for Cygwin and OSX.

Does someone want to make Cygwin binaries? I can place them on the new hosting. It would be great if you could also provide a minimum list of Cygwin stuff that needs to be installed.

After I get word back that OSX patches work, I'll start patching the mplayer code for mainstream mplayer release.

gardenhose
03-28-2003, 03:09 PM
Almost cwingert! Looks great, glad to see it's getting 'official.' Here's the changes I had to make on v3:


CONFIG_DARWIN never gets set, but SYS_DARWIN does. So you need to change all of your if defined(CONFIG_DARWIN) with if defind(SYS_DARWIN)
You need to include or have the user copy over getopt.h and dlfcn.h (as well as unistd.h.)
There are two callbacks in schema.c that will probably trigger the same crash (but I can't be sure.) To be on the safe side, you just do the if defined(SYS_DARWIN), then set it up so that those two callbacks are pulled out of the calling function. This is a lot easier than the mess in query.c since there's no local stack to deal with.
Otherwise looks and compiles great! You should add in the readme that osx users need to run mplayer with -vo sdl -ao sdl, or set it up in their .mplayer config file.

hom3l3ss
03-28-2003, 03:59 PM
i got it to compile but when i try to list the shows i get these errors "Playing tivo://tivo/list
Listing streams in /Recording/Complete
ty_streaming_start failed
Unable to open URL: tivo://tivo/list


Exiting... (End of file)"
i tried to change the NowShowing stuff but it's already changed to "NowShwoingByTitle".

gardenhose
03-28-2003, 04:14 PM
Originally posted by hom3l3ss
i got it to compile but when i try to list the shows i get these errors "Playing tivo://tivo/list
Listing streams in /Recording/Complete
ty_streaming_start failed
Unable to open URL: tivo://tivo/list


Exiting... (End of file)"
i tried to change the NowShowing stuff but it's already changed to "NowShwoingByTitle".

You probably should use the original directory name.. if you downloaded my vstream directory I had already changed it to "NowShowingByTitle," which probably doesn't work for you. You should try changing it to "NowShowing"

cwingert
03-28-2003, 04:17 PM
If you have TiVoWeb installed can you take a snapshot of whats in the mfs directory /Recording/
from the Browse MFS applet?

Thanks


Originally posted by hom3l3ss
i got it to compile but when i try to list the shows i get these errors "Playing tivo://tivo/list
Listing streams in /Recording/Complete
ty_streaming_start failed
Unable to open URL: tivo://tivo/list


Exiting... (End of file)"
i tried to change the NowShowing stuff but it's already changed to "NowShwoingByTitle".

cwingert
03-28-2003, 04:24 PM
GardenHose,

Can you give it a try again?
http://tivo-mplayer.sf.net/

Once again, this is really only for OSX.

Thanks

hom3l3ss
03-28-2003, 04:46 PM
Originally posted by cwingert
If you have TiVoWeb installed can you take a snapshot of whats in the mfs directory /Recording/
from the Browse MFS applet?

Thanks

hom3l3ss
03-28-2003, 05:06 PM
tried to stream a ty file and i get this error "Checking audio filter chain for 48000Hz/2ch/16bit -> 48000Hz/2ch/16bit...
AF_pre: af format: 2 bps, 2 ch, 48000 hz, big endian signed int
AF_pre: 48000Hz 2ch Signed 16-bit (Big-Endian)
AO: [null] 48000Hz 2ch Signed 16-bit (Big-Endian) (2 bps)
Building audio filter chain for 48000Hz/2ch/16bit -> 48000Hz/2ch/16bit...
Starting playback...
VDec: vo config request - 480 x 480 (preferred csp: Planar YV12)
VDec: using Planar YV12 as output csp (no 0)
Movie-Aspect is 1.33:1 - prescaling to correct movie aspect.
VO: [x11] 480x480 => 640x480 Planar YV12
RGB32 not supported on big-endian systems, please contact the developers
FATAL: Cannot initialize video driver.
init_vo failed

FATAL: Could not initialize video filters (-vop) or video output (-vo).


Exiting... (End of file)"
tried to use option -vo sdl -oa sdl but still no luck

olaf_sc
03-28-2003, 05:08 PM
Hello,

I found out that the schema for 3.1 boxes is outdated in mfs (most probably from a 2.5 box). Hence you might want to check out the scheama_preload.h in the mfslib dir of TyStudio.

I also made some changes to how you get the fsid (Now showing for different Tivo models) - This code is present in tyindex.c under tyserver.

Cheers Olaf

gardenhose
03-28-2003, 05:28 PM
Originally posted by hom3l3ss
tried to stream a ty file and i get this error "Checking audio filter chain for

Can you run ./mplayer -vo help

and post the output here? It looks like your install is not finding the SDL driver.

hom3l3ss
03-28-2003, 05:34 PM
Reading config file /Users/chris/.mplayer/config
Available video output drivers:
xv X11/Xv
x11 X11 ( XImage/Shm )
gl X11 (OpenGL)
gl2 X11 (OpenGL) - multiple textures version
null Null video output
pgm PGM file
md5 MD5 sum
mpegpes Mpeg-PES file
yuv4mpeg yuv4mpeg output for mjpegtools (to "stream.yuv")



Originally posted by gardenhose
Can you run ./mplayer -vo help

and post the output here? It looks like your install is not finding the SDL driver.

gardenhose
03-28-2003, 05:39 PM
Originally posted by cwingert
GardenHose,

Can you give it a try again?
http://tivo-mplayer.sf.net/

Once again, this is really only for OSX.

Thanks

Awesome! Compiled right out of the package, except for the libiconv stuff (which I know is mplayer's fault and not yours.) Great job!

gardenhose
03-28-2003, 05:44 PM
Originally posted by hom3l3ss
Reading config file /Users/chris/.mplayer/config
Available video output drivers:
xv X11/Xv
x11 X11 ( XImage/Shm )
gl X11 (OpenGL)
gl2 X11 (OpenGL) - multiple textures version
null Null video output
pgm PGM file
md5 MD5 sum
mpegpes Mpeg-PES file
yuv4mpeg yuv4mpeg output for mjpegtools (to "stream.yuv")

Yeah, mplayer didn't find your sdl. Run "sdl-config --libs" and if it can't find that program, you don't have SDL installed properly. To fix it, type "sudo fink install sdl" If fink can't find sdl, do this:


cp /sw/fink/10.2/unstable/main/finkinfo/games/*sdl* /sw/fink/10.2/stable/main/finkinfo

and then run 'fink install sdl' again.

ronnythunder
03-28-2003, 05:59 PM
has anyone else had trouble building this under cygwin? i know there have been fixes, but i've got the latest build and it still won't go. here's an excerpt:
gcc -c -O4 -march=i686 -mcpu=i686 -pipe -ffast-math -fomit-frame-pointer -D__CYG
WIN__ -Ilibmpdemux -Iloader -Ilibvo -o mplayer.o mplayer.c
In file included from mplayer.c:42:
libvo/video_out.h:89: parse error before `uint32_t'
libvo/video_out.h:89: warning: no semicolon at end of struct or union
libvo/video_out.h:100: parse error before `*'
libvo/video_out.h:100: parse error before `width'
libvo/video_out.h:102: `uint32_t' declared as function returning a function
libvo/video_out.h:102: warning: data definition has no type or storage class
libvo/video_out.h:107: parse error before `*'
libvo/video_out.h:107: parse error before `request'
libvo/video_out.h:107: `uint32_t' declared as function returning a function
libvo/video_out.h:107: warning: data definition has no type or storage class
libvo/video_out.h:114: parse error before `*'
libvo/video_out.h:114: parse error before `*'
libvo/video_out.h:114: `uint32_t' declared as function returning a function
libvo/video_out.h:114: warning: data definition has no type or storage class
libvo/video_out.h:124: parse error before `*'
libvo/video_out.h:124: parse error before `*'
libvo/video_out.h:124: `uint32_t' declared as function returning a functionany ideas?

ronny

hom3l3ss
03-28-2003, 06:10 PM
i did what you told me and this is what i get "chris# sdl-config --libs
-L/sw/lib -lSDLmain -lSDL -framework Cocoa -framework OpenGL"
but when i type "mplayer -vo help" sdl still won't show up on the list

burriko
03-28-2003, 06:22 PM
Originally posted by cwingert
Is it possible for you to extract both the stream that doesn't play and the stream that gives you lip sync problems for me (first 100Megs of both would be great). I can give you an upload web page in a PM. Was this stream recorded recently?

hmm, ignore what i said about lip sync. i feel a bit stupid, i just tried a few shows and they were all fine. the one that i remembered having lip sync problems has since been deleted.

but the other problem (streams not playing at all) is definitely still here, and it's affecting a fair number of shows too. i extracted one of the streams that wouldn't play, so i could try playing it locally, and it worked perfectly. which suggests to me that the problem might be with vserver?
do you still want me to send you the first 100MB of one of these files, even though they play fine locally? do you mind which tool i use to extract the stream?

gardenhose
03-28-2003, 06:24 PM
Originally posted by hom3l3ss
i did what you told me and this is what i get "chris# sdl-config --libs
-L/sw/lib -lSDLmain -lSDL -framework Cocoa -framework OpenGL"
but when i type "mplayer -vo help" sdl still won't show up on the list

That is strange. Is there any message when you run ./configure in Mplayer-tivo about SDL? To check for SDL (and compile it in) Mplayer's ./configure just runs sdl-config to make sure it's there. It also checks for the version #, so maybe yours is out of date? What does sdl-config --version say?

hom3l3ss
03-28-2003, 06:30 PM
thanks gardenhouse for ur help i got it working only problem is it crashes after a few seconds of streaming and it's out of sync
"
MPlayer interrupted by signal 11 in module: decode_audio
- MPlayer crashed by bad usage of CPU/FPU/RAM.
Recompile MPlayer with --enable-debug and make a 'gdb' backtrace and
disassembly. For details, see DOCS/bugreports.html#crash.b.
- MPlayer crashed. This shouldn't happen.
It can be a bug in the MPlayer code _or_ in your drivers _or_ in your gcc
version. If you think it's MPlayer's fault, please read DOCS/bugreports.html
and follow the instructions there. We can't and won't help unless you provide
this information when reporting a possible bug."

TheAvatar
03-28-2003, 06:47 PM
can someone supply a binary for windows..... ?

cwingert
03-28-2003, 07:38 PM
This is very odd.

What is the exact error? Could you also verify that you used the fsid in the mplayer now showing list.

If it plays perfectly locally, I don't need the stream. I need your TiVo. So send it to me. :) J/K The only way for me to really debug this is to access your machine/TiVo.



Originally posted by burriko
but the other problem (streams not playing at all) is definitely still here, and it's affecting a fair number of shows too. i extracted one of the streams that wouldn't play, so i could try playing it locally, and it worked perfectly. which suggests to me that the problem might be with vserver?
do you still want me to send you the first 100MB of one of these files, even though they play fine locally? do you mind which tool i use to extract the stream?

cwingert
03-28-2003, 08:29 PM
For all you whiners :) that can't compile.

I compiled a Windows Binary and I *hate* Windows.

You need to do a basic Cygwin install, however, I am not sure of what basic packages are required. So download Cygwin and give it a whirl.

http://www.cygwin.com/setup.exe

The binary zip is located on at
http://tivo-mplayer.sf.net

BTW - This was configured on a PIII 450, so it may (or may not) work on your Processor. MPlayer tries to use as much processor optimizations as possible. I thought a PIII would be the lowest optimization for today's processors. Ideally, it should be compiled on the box for which it is intended.

burriko
03-28-2003, 08:31 PM
Originally posted by cwingert
This is very odd.

What is the exact error? Could you also verify that you used the fsid in the mplayer now showing list.


yep, definitely the correct fsid.

just to proof it, here's part of the list from mplayer


[ 341435][Jackass ][(null) ]
[ 341451][Friday Night With Jo][(null) ]
[ 341431][Monkey ][What Monkey Calls the Dog-woman ]

i then chose to play 341451, and here is the error message given


Playing tivo://tivo/341451
Starting to stream from a TiVo tivo file 341451
Cache size set to 640 KBytes
Connected to server: tivo
Cache fill: 0.00% (0 bytes) Falling back on trying to parse playlist tivo://
tivo/341451...
============ Sorry, this file format is not recognized/supported =============
=== If this file is an AVI, ASF or MPEG stream, please contact the author! ===


Exiting... (End of file)

cwingert
03-28-2003, 08:38 PM
What the hell is Monkey? :)

Seriously, what type and version of TiVo are you running?



Originally posted by burriko
yep, definitely the correct fsid.

just to proof it, here's part of the list from mplayer


[ 341435][Jackass ][(null) ]
[ 341451][Friday Night With Jo][(null) ]
[ 341431][Monkey ][What Monkey Calls the Dog-woman ]

i then chose to play 341451, and here is the error message given


Playing tivo://tivo/341451
Starting to stream from a TiVo tivo file 341451
Cache size set to 640 KBytes
Connected to server: tivo
Cache fill: 0.00% (0 bytes) Falling back on trying to parse playlist tivo://
tivo/341451...
============ Sorry, this file format is not recognized/supported =============
=== If this file is an AVI, ASF or MPEG stream, please contact the author! ===


Exiting... (End of file)

burriko
03-28-2003, 08:52 PM
It's a UK tivo, software version 2.5.5.

Anyone else using the ty enabled mplayer with a uk tivo?

Monkey is a 70's japanese tv show btw. it's a cult classic. mplayer won't play that either :(

osetivo
03-28-2003, 08:59 PM
Just take a look

http://www.monkeyheaven.com/

jjjones
03-28-2003, 10:15 PM
Is there any way to turn this into a codec recognized by windows media player?

jj

blax
03-29-2003, 01:01 AM
Installed cygwin and mplayer but...

-Finally when you run configure, you need to disable mpdvdkit as there
is some problem with the mplayer 0.90rc4 build for CYGWIN
# ./configure --disable-mpdvdkit



Cannot find configure anywhere, downloaded a ton of packages and cannot find it. Please help.

TIA.

ronnythunder
03-29-2003, 02:54 AM
Originally posted by cwingert
For all you whiners :) that can't compile.

I compiled a Windows Binary and I *hate* Windows. ha ha. i guess i'm one of those whiners, but i'm still whining.

can you rebuild the cygwin version with '-liberty' (that is, using the libiberty.a library, little play on words there). the libiberty.a is the only place where asprintf is defined. and mplayer complains that it can't find it on startup.

thanx for all of your work thus far

ronny

TheAvatar
03-29-2003, 11:28 PM
I am having the same problem withe the windows binaries, it complains that it can't find asprintf, anyone know ho wto fix this?

Pete Ruttman
03-29-2003, 11:52 PM
I am trying to view a local ty file using the windows binary version of mplayer. I do not get any video within the player. Here's the text output of the session. Lots of info there but I have never used mplayer before so I don't know what I should do to fix this issue.

thanks,

pete

C:\apps\cygwin\bin>mplayer "z:\tivo\Gargoyles-Avalon Part 1.ty"


MPlayer 0.90rc4-3.2 (C) 2000-2003 Arpad Gereoffy (see DOCS)

CPU: Intel Celeron 2/Pentium III Coppermine,Geyserville (Family: 6, Stepping: 10
)
Detected cache-line size is 32 bytes
CPUflags: MMX: 1 MMX2: 1 3DNow: 0 3DNow2: 0 SSE: 0 SSE2: 0
Compiled for x86 CPU with extensions: MMX MMX2 SSE

Reading config file /usr/local/etc/mplayer/mplayer.conf: No such file or directo
ry
Reading config file /home/pruttman/.mplayer/config: No such file or directory
Reading /home/pruttman/.mplayer/codecs.conf: can't open '/home/pruttman/.mplayer
/codecs.conf': No such file or directory
Reading /usr/local/etc/mplayer/codecs.conf: can't open '/usr/local/etc/mplayer/c
odecs.conf': No such file or directory
Using built-in default codecs.conf
font: can't open file: /home/pruttman/.mplayer/font/font.desc
font: can't open file: /usr/local/share/mplayer/font/font.desc
Using usleep() timing
Can't open input config file /home/pruttman/.mplayer/input.conf : No such file o
r directory
Can't open input config file /usr/local/etc/mplayer/input.conf : No such file or
directory
Falling back on default (hardcoded) input config

Playing z:\tivo\Gargoyles-Avalon Part 1.ty
TiVo file format detected.
VIDEO: MPEG2 480x480 (aspect 2) 29.97 fps 7250.0 kbps (906.2 kbyte/s)
==========================================================================
Opening audio decoder: [mp3lib] MPEG layer-2, layer-3
MP3lib: init layer2&3 finished, tables done
AUDIO: 32000 Hz, 2 ch, 16 bit (0x10), ratio: 24000->128000 (192.0 kbit)
Selected audio codec: [mp3] afm:mp3lib (mp3lib MPEG layer-2, layer-3)
==========================================================================
==========================================================================
Opening video decoder: [mpegpes] MPEG 1/2 Video passthrough
VDec: vo config request - 480 x 480 (preferred csp: Mpeg PES)
Could not find matching colorspace - retrying with -vop scale...
Opening video filter: [scale]
The selected video_out device is incompatible with this codec.
VDecoder init failed :(
Opening video decoder: [libmpeg2] MPEG 1/2 Video decoder v2.0
libmpeg2: Using MMXEXT for IDCT transform
libmpeg2: Using MMXEXT for motion compensation
VDec: vo config request - 480 x 480 (preferred csp: Planar YV12)
Could not find matching colorspace - retrying with -vop scale...
Opening video filter: [scale]
VDec: using Planar YV12 as output csp (no 0)
Movie-Aspect is 1.33:1 - prescaling to correct movie aspect.
Using MMX2 for colorspace transform
SwScaler: using unscaled Planar YV12 -> BGR 32-bit special converter
VO: [directx] 480x480 => 640x480 BGR 32-bit
<vo_directx><ERROR>UpdateOverlay failed
<vo_directx><ERROR>Overlay:x1:26,y1:45,x2:666,y2:525,w:640,h:480
<vo_directx><ERROR><vo_directx><ERROR>UpdateOverlay failed
<vo_directx><ERROR>Overlay:x1:26,y1:45,x2:666,y2:525,w:640,h:480
<vo_directx><ERROR>Selected video codec: [mpeg12] vfm:libmpeg2 (MPEG 1 or 2 (lib
mpeg2))
==========================================================================
Checking audio filter chain for 32000Hz/2ch/16bit -> 32000Hz/2ch/16bit...
AF_pre: af format: 2 bps, 2 ch, 32000 hz, little endian signed int
AF_pre: 32000Hz 2ch Signed 16-bit (Little-Endian)
AO: [win32] 32000Hz 2ch Signed 16-bit (Little-Endian) (2 bps)
Building audio filter chain for 32000Hz/2ch/16bit -> 32000Hz/2ch/16bit...
Starting playback...
A: 24.1 V: 23.0 A-V: 1.085 ct: 0.054 623/623 24% 28% 15.4% 1 0 0%0 0%
Exiting... (Quit)

C:\apps\cygwin\bin>

mpauley
03-30-2003, 12:05 AM
I got the cygwin version to work on XP Pro! I found that some file dont play locally (I have to find how I extracted them).

Great Job!!

Mickey

Pete Ruttman
03-30-2003, 08:37 AM
mpauley, what options did you install for the sygwin? What does your output look like, can you post it here?

pete

mpauley
03-30-2003, 11:27 AM
[list=1]
Install cygwin from here (http://www.cygwin.com/setup.exe) . (The whole process took about 35 minutes)
Place the DirectX (http://www.videolan.org/vlc/dx7headers.tgz) headers into /usr/include/.
Download and run vserver (http://tivo-mplayer.sourceforge.net/vserver-1.0.tar.gz) on your TiVo.
Place mplayer.exe (http://tivo-mplayer.sourceforge.net/MPlayer-0.90rc4-tivo-0.4.cygwin-bin.zip) in Cygwin's main directory (for me its C:\Cygwin\).
Start Cygwin's bash shell prompt (C:\Cygwin\cygwin.bat)
type "cd /"
type "./mplayer", and you should see the mplayer docs!
To play from your PC type - "./mplayer "C:\TYFILE.ty"
To play from your TiVo type - "mplayer tivo://tivoip/12345"
[/list=1]

**I removed the screenshot because it wouldnt capture the mplayer output.

--mickey

Share your Shows @ LookMa-NoHands.Com (http://www.LookMa-NoHands.Com)!

Pete Ruttman
03-30-2003, 12:06 PM
Well, I tried the setup on a desktop and got video and sound. I did get a lot of audio drift but I did has some processing going on in the background.


WIth mpauley's directions I went back to the laptop I couldn't get working before and ended up with the same problem on a fresh (different harddrive) installation.

I'm guessing this is the problem:

<vo_directx><ERROR>UpdateOverlay failed
<vo_directx><ERROR>Overlay:x1:136,y1:155,x2:776,y2:635,w:640,h:480
<vo_directx><ERROR><vo_directx><ERROR>UpdateOverlay failed
<vo_directx><ERROR>Overlay:x1:136,y1:155,x2:776,y2:635,w:640,h:480
<vo_directx><ERROR>Selected video codec: [mpeg12] vfm:libmpeg2 (MPEG 1 or 2 (lib

On the first harddrive I installed directX 9.x and it didn't help. I haven't tried it on this harddrive.

pete

cwingert
03-30-2003, 12:47 PM
For you Cygwin guys.

None of the changes in mplayer for TiVo streams are directly Windows relevant (ie I wrote no output drivers). There is a mailing list for Cygwin at the mplayer homepage :

http://mplayerhq.hu/mailman/listinfo/mplayer-cygwin

You may want to ask there.

In regard to the DirectX issues, just a guess, but it may be DirectX version related.

HTH

AlphaWolf
03-30-2003, 12:48 PM
Has anybody here tried xbox media player? Awesome peice of software. When you play tystreams converted to mpeg through it, they are displayed to your TV with FAR superior image quality (it features on the fly deinterlacing, and image processing (makes anime look especialy nice), especialy when you output from component video via the xbox), and the user interface is extremely fast (as opposed to how slow the tivo is) XBMP also has support for XMLTV guide.

What would be nice, is to be able to make the tivo basicaly function as a slave device to the xbox. Have the xbox download the guide data from the tivo, and have it basicaly function as the tivo user interface. Cwingerts mplayer plugin would come into play by streaming both livetv, and previous recordings to the xbox whenever you want to play them, because xbox media player is based on the mplayer source code.

cwingert
03-30-2003, 12:51 PM
Just a guess, but during the Cygwin install, you need to install more library packages, again not sure which. It looks like asprintf is located in the libc package.


Originally posted by TheAvatar
I am having the same problem withe the windows binaries, it complains that it can't find asprintf, anyone know ho wto fix this?

mpauley
03-30-2003, 12:53 PM
Originally posted by cwingert
Just a guess, but during the Cygwin install, you need to install more library packages, again not sure which. It looks like asprintf is located in the libc package.

I found that that error happens if you dont run it thru the cygwin shell.

mickey

cwingert
03-30-2003, 03:36 PM
Interesting. I was able to run it with and without the cygwin shell. I actually setup a .ty association on one machine.



Originally posted by mpauley
I found that that error happens if you dont run it thru the cygwin shell.

mickey

ronnythunder
03-30-2003, 03:42 PM
ok, here's what fixed it for me. i must have had a version of cygwin that was too old; i ran the setup program at cygwin.com and just let it take the defaults, and after the install finished, i now get the expected help screen when i run mplayer.

now to actually *try* it on something!

ronny

cwingert
03-30-2003, 03:45 PM
Interestingly this is exactly where I am going with these mod's. However, I am looking at using Mini-Itx Epia's instead of XBox's. Unfortunately XBox's draw almost 60 watts at idle, which is a bit ridiculous.

I am going to be running MythTV as a Front End, which already has program guide data support and an EPG. I just need to connect the EPG to the TiVo. I already have a script that can insert a recording into the database. I just need to connect it to a socket.



Originally posted by AlphaWolf
Has anybody here tried xbox media player? Awesome peice of software. When you play tystreams converted to mpeg through it, they are displayed to your TV with FAR superior image quality (it features on the fly deinterlacing, and image processing (makes anime look especialy nice), especialy when you output from component video via the xbox), and the user interface is extremely fast (as opposed to how slow the tivo is) XBMP also has support for XMLTV guide.

What would be nice, is to be able to make the tivo basicaly function as a slave device to the xbox. Have the xbox download the guide data from the tivo, and have it basicaly function as the tivo user interface. Cwingerts mplayer plugin would come into play by streaming both livetv, and previous recordings to the xbox whenever you want to play them, because xbox media player is based on the mplayer source code.

AlphaWolf
03-30-2003, 05:04 PM
I suppose either one would work. Xbox actualy boots up pretty quickly though, no need to leave it on 24/7. Plus, microsoft loses $100 for every one that you own, and you also get a video game system bundled into it :)

ronnythunder
03-30-2003, 08:27 PM
ok, i gave it a shot, and overall, it worked pretty good, but i did have two problems:

1. the audio had random "screeches" of less than a second in duration. i can't really describe it; it sounded like my pc had turrett's synndrome, without the swearing.

2. it crashed on one stream as it was about to go into commercial; i'll try to get the exact text and post it.

great work so far, though! by the way, all of my testing was with streams already on my pc.

ronny

ronnythunder
03-30-2003, 08:54 PM
ok, here's what happened when it crashed:
Starting playback...
A: 576.9 V: 576.8 A-V: 0.152 ct: 0.688 15878/15875 14% 1% 1.6% 21 0 0%0%
demux_mpg: 3:2 TELECINE detected, enabling inverse telecine fx. FPS changed to 2
3.976!
A: 583.9 V: 583.7 A-V: 0.159 ct: 0.728 16028/16024 14% 1% 1.6% 21 0 0%
demux_mpg: Progressive seq detected, leaving 3:2 TELECINE mode
Warning! FPS changed 23.976 -> 29.970 (-5.994000) [4] 4% 1% 1.6% 21 0 0%
A: 584.6 V: 584.5 A-V: 0.027 ct: 0.741 16039/16033 14% 1% 1.6% 21 0 0%
demux_mpg: 3:2 TELECINE detected, enabling inverse telecine fx. FPS changed to 2
3.976!
A: 588.3 V: 589.0 A-V: -0.674 ct: 0.772 16150/16144 14% 1% 1.6% 21 0 0%

MPlayer interrupted by signal 11 in module: decode_audio
- MPlayer crashed by bad usage of CPU/FPU/RAM.
Recompile MPlayer with --enable-debug and make a 'gdb' backtrace and
disassembly. For details, see DOCS/bugreports.html#crash.b.
- MPlayer crashed. This shouldn't happen.
It can be a bug in the MPlayer code _or_ in your drivers _or_ in your gcc
version. If you think it's MPlayer's fault, please read DOCS/bugreports.html
and follow the instructions there. We can't and won't help unless you provide
this information when reporting a possible bug.i was watching the good eats "fry hard" episode when it happend.

ronny

hom3l3ss
03-30-2003, 09:16 PM
got the same problem here ron!!

Originally posted by ronnythunder
ok, here's what happened when it crashed:
Starting playback...
A: 576.9 V: 576.8 A-V: 0.152 ct: 0.688 15878/15875 14% 1% 1.6% 21 0 0%0%
demux_mpg: 3:2 TELECINE detected, enabling inverse telecine fx. FPS changed to 2
3.976!
A: 583.9 V: 583.7 A-V: 0.159 ct: 0.728 16028/16024 14% 1% 1.6% 21 0 0%
demux_mpg: Progressive seq detected, leaving 3:2 TELECINE mode
Warning! FPS changed 23.976 -> 29.970 (-5.994000) [4] 4% 1% 1.6% 21 0 0%
A: 584.6 V: 584.5 A-V: 0.027 ct: 0.741 16039/16033 14% 1% 1.6% 21 0 0%
demux_mpg: 3:2 TELECINE detected, enabling inverse telecine fx. FPS changed to 2
3.976!
A: 588.3 V: 589.0 A-V: -0.674 ct: 0.772 16150/16144 14% 1% 1.6% 21 0 0%

MPlayer interrupted by signal 11 in module: decode_audio
- MPlayer crashed by bad usage of CPU/FPU/RAM.
Recompile MPlayer with --enable-debug and make a 'gdb' backtrace and
disassembly. For details, see DOCS/bugreports.html#crash.b.
- MPlayer crashed. This shouldn't happen.
It can be a bug in the MPlayer code _or_ in your drivers _or_ in your gcc
version. If you think it's MPlayer's fault, please read DOCS/bugreports.html
and follow the instructions there. We can't and won't help unless you provide
this information when reporting a possible bug.i was watching the good eats "fry hard" episode when it happend.

ronny

ronnythunder
03-31-2003, 12:02 AM
well, since my last post, i've played some other streams without it crashing, but the "e-turrett syndrome" still shows up.

since i updated my cygwin install, i've also been able to build from the sources; i configed it with 3dnowex and didn't notice much difference, but maybe the cpu usage is a little less.

thanks again cwingert, this is pretty cool!

ronny

TheAvatar
03-31-2003, 01:04 AM
I think to run the windows binaries all you need are the
Cygwin1.dll and cygz.dll files in the same folder with the
mplayer binary. Someone should host those two dlls with the binary so people don;t have to install the full Cygwin!
If I am wronga bout this, pleae let me know.

burriko
03-31-2003, 06:45 AM
The only needed dlls are
cygiconv-2.dll
cygintl-2.dll
cygwin1.dll
cygz.dll

I've got mplayer running on my brother's pc without installing cygwin by just copying those dlls over.
I could host the dlls and mplayer exe, but i'm not sure what license they're under. Is it okay to distribute mplayer executables without the source code or to distribute cygwin dlls? anyone know?

gardenhose
03-31-2003, 10:02 AM
Originally posted by burriko
The only needed dlls are
cygiconv-2.dll
cygintl-2.dll
cygwin1.dll
cygz.dll

I've got mplayer running on my brother's pc without installing cygwin by just copying those dlls over.
I could host the dlls and mplayer exe, but i'm not sure what license they're under. Is it okay to distribute mplayer executables without the source code or to distribute cygwin dlls? anyone know?

Cygwin is under the GPL, and they explicitly state that you have to distribute the source of the cygwin DLLs if you are distributing an application using the cygwin DLLs (without cygwin itself.) I found a FAQ that said you couldn't just point to the cygwin homepage, you had to actually provide the source on the download page or even in the same package as the compiled DLLs.

That said, for alpha/beta level software where you're just testing out stuff, it's rare that this would be misconstrued as breaking the license. When the app reaches 1.0 and it gets a fancy webpage, then you'll have to do it.

burriko
03-31-2003, 10:32 AM
Originally posted by gardenhose
Cygwin is under the GPL, and they explicitly state that you have to distribute the source of the cygwin DLLs if you are distributing an application using the cygwin DLLs (without cygwin itself.) I found a FAQ that said you couldn't just point to the cygwin homepage, you had to actually provide the source on the download page or even in the same package as the compiled DLLs.

thanks gardenhose. hqve you got a link to the FAQ you mentioned, i'm having trouble finding any decent info on this.

i did find this one guy who seems to have done something similar without offering any sources.
http://sources.redhat.com/ml/cygwin-xfree/2003-02/msg00064.html

cwingert
03-31-2003, 11:18 AM
Home3l3ss & RonnyThunder,

Are you guys using a DirectTivo?

Olaf forwarded me some streams that gave me some "bad" streams that caused the audio decoder some real heartache.

I guess one simple thing I could do is to repeat the last frame, once I find a hosed frame.

Are you two willing to upload some streams to me?

Thanks


Originally posted by hom3l3ss
got the same problem here ron!!

cwingert
03-31-2003, 11:19 AM
Is anyone still having the problem, where streaming a specific stream from the TiVo does NOT work, but after you extract the stream to local storage the stream DOES work?

I am going to prepare some debug code for this case. Let me know who is willing to test this? This may be a *VERY* interative process, so it may require a bit of dedication.

StanSimmons
03-31-2003, 11:22 AM
If someone will gzip the needed files and sources to keep it GPL legal, I have a fast ftp site I can drop it on.

ftp://tivo:later@ftp.twinbrothers.com

ronnythunder
03-31-2003, 11:55 AM
cwingert, sure, i can give you some streams. my upload is pretty slow, and i'm metered bandwidth dsl, so if you can use partial streams (e.g. tychopper), i can do that; otherwise, if you want, i could snail-mail you a dvd-r with them. pm me with your snail-mail address if you're interested in going that way.

yes, i'm using dtivo, btw.

ronny

burriko
03-31-2003, 11:56 AM
Originally posted by cwingert
Is anyone still having the problem, where streaming a specific stream from the TiVo does NOT work, but after you extract the stream to local storage the stream DOES work?

I am going to prepare some debug code for this case. Let me know who is willing to test this? This may be a *VERY* interative process, so it may require a bit of dedication.

i've had that problem the whole time. i'm willing to test your debug code if you want.

did you read the PM i sent you?

cwingert
03-31-2003, 11:59 AM
This release adds no functional changes. This version is meant for debugging purposes for people who are having streaming from TiVo problems.

Instructions :
1) Download and compile
http://tivo-mplayer.sf.net
2) Run with the following command line.
mplayer -v -v -v tivo://tivo/12345 > out
3) Verify that the stream did not play
4) Mail the "out" file to me at tivo@wingert.org

Thanks for helping debug.

Again, this is probably going to be iterative (unless you want to send me your TiVo :))

ronnythunder
03-31-2003, 12:38 PM
cwingert, what options did you build this debug version with? is all you did make with "--enable-debug"? i'm wondering if i can use the version i built.

ronny

cwingert
03-31-2003, 12:44 PM
I added debug output messages related to the TiVo parsing to the source, so the messages do not exist in a previous version


Originally posted by ronnythunder
cwingert, what options did you build this debug version with? is all you did make with "--enable-debug"? i'm wondering if i can use the version i built.

ronny

cwingert
03-31-2003, 12:48 PM
Burriko forwarded me some debug output, I *think* I may have found the problem.

I believe its an int overflow, but I have to do some paying work now, :) so I'll send a fix later in the day

Thanks to Burriko.

burriko
03-31-2003, 01:05 PM
you're welcome :cool:

i'll be happy to run anymore tests if you need them.

Chainsaw76
03-31-2003, 05:02 PM
I have a machine on my Intranet working perfectly with cygwin-Mplayer-Tivo(SA). I love it!

I'm trying to get a machine at work to be able to access the content (For my frequent down time.) What ports need to be open on the router the TIVO is conected to? I see 8074, and have it open and pointed to the tivo. What ports need to be open on the mplayer end?

when I try to do a list, I get a
ty_streaming_start failed

It could be my installation, but seeing as I have it running on one machine.... and Ive double checked the NowShowingByTitle fix.

I can see the request hit my Router at home, and I can see the tivo replying to it on some random 20xx port.

Also, on my home system, when I use -ss to continue a show, the I get a segment not found error after a few minutes of whatching the program.. (but not Immediatly).

-Jason

osetivo
03-31-2003, 05:38 PM
Originally posted by Chainsaw76
I have a machine on my Intranet working perfectly with cygwin-Mplayer-Tivo(SA). I love it!

I'm trying to get a machine at work to be able to access the content (For my frequent down time.)

-Jason

Which begs the question, What are the bandwidth requirements for this to run?

burriko
03-31-2003, 05:49 PM
Originally posted by osetivo
Which begs the question, What are the bandwidth requirements for this to run?

it all depends on what quality setting you record shows at. i use best for everything, which seems to average about 900kB/s.

cwingert
03-31-2003, 06:11 PM
Version 0.6 is up on the website.

http://tivo-mplayer.sf.net

This version *should* fix problems with studdering DTiVos. This version just basically drops any audio packet that is not one of the predetermined magic TiVo sizes. I hate to do things this way, but so be it. My SA doesn't suffer any problems in this regard.

Please note : I have very limited access to broken audio streams. If this version still doesn't work for you. You will need to upload a stream to me.

I am still working on the remote streaming issue.

osetivo
03-31-2003, 07:09 PM
Originally posted by burriko
it all depends on what quality setting you record shows at. i use best for everything, which seems to average about 900kB/s.

That's about what I thought. This prohibits me (and many others) from any remote streaming via DSL with a 256kb/s up connection.

eobiont
04-01-2003, 01:25 AM
This is very cool. I have mplayer compiled and running OK on my Mac. I can play local .ty files a-ok. THANKS! But biting off more than I can chew I tried to get vserver working to stream files and ran into problems

I run vserver and get
waiting for connections on port 8074

meanwhile, back on the mac, I typed
./mplayer tivo://tivo/list
and get

Playing tivo://tivo/list
Listing streams in /Recording/NowShowing
ty_streaming_start failed
Unable to open URL: tivo://tivo/list

It was mentioned by cwingert earlier ...

"I am going to patch the mplayer stuff, for all the things found in this thread. Stuff I have seen so far, is the darwin vstream patches and the additional MFS Path for Now Showing streams. Anything else?"

so I'm guessing that the now showing thing is supposed to be ok? so can anyone nudge me in the right direction? Probably I haven't put in enough configuration info for anyone to help me, so please let me know what else you need to know to help me. I have tivoweb running which I'm guessing the NowShowing data is supposed to come from.

Thanks.

ronnythunder
04-01-2003, 03:26 AM
cwingert, wow, the last update seems to have fixed my "e-turrette syndrome" problems! thanks..

one thing i noticed, though, and i don't recall it happening before (though i could be wrong): when ff or rew in the ty stream, the audio can get out of sync, by a second or more. it doesn't always happen, and i can't really see a pattern.

anyone else?

ronny

cwingert
04-01-2003, 03:27 AM
This is in the release notes. It should sync up within a few seconds of the seek.


Originally posted by ronnythunder
cwingert, wow, the last update seems to have fixed my "e-turrette syndrome" problems! thanks..

one thing i noticed, though, and i don't recall it happening before (though i could be wrong): when ff or rew in the ty stream, the audio can get out of sync, by a second or more. it doesn't always happen, and i can't really see a pattern.

anyone else?

ronny

cwingert
04-01-2003, 03:28 AM
The Mac OSX changes are in the latest release.



Originally posted by eobiont
This is very cool. I have mplayer compiled and running OK on my Mac. I can play local .ty files a-ok. THANKS! But biting off more than I can chew I tried to get vserver working to stream files and ran into problems

I run vserver and get
waiting for connections on port 8074

meanwhile, back on the mac, I typed
./mplayer tivo://tivo/list
and get

Playing tivo://tivo/list
Listing streams in /Recording/NowShowing
ty_streaming_start failed
Unable to open URL: tivo://tivo/list

It was mentioned by cwingert earlier ...

"I am going to patch the mplayer stuff, for all the things found in this thread. Stuff I have seen so far, is the darwin vstream patches and the additional MFS Path for Now Showing streams. Anything else?"

so I'm guessing that the now showing thing is supposed to be ok? so can anyone nudge me in the right direction? Probably I haven't put in enough configuration info for anyone to help me, so please let me know what else you need to know to help me. I have tivoweb running which I'm guessing the NowShowing data is supposed to come from.

Thanks.

cwingert
04-01-2003, 03:30 AM
Careful. B and b are almost an order of magnitude difference.

If you want an "Internet TiVo", you need realtime transcode. This *is* possible. Just need a fat processor.



Originally posted by osetivo
That's about what I thought. This prohibits me (and many others) from any remote streaming via DSL with a 256kb/s up connection.

cwingert
04-01-2003, 03:32 AM
Burriko has reported to me that he has problems with certain TiVo programs on the same TiVo being streamable and certain other streams fail to stream.

Is anyone else having this problem? If so, please report OS/Processor.

Thanks

osetivo
04-01-2003, 09:42 AM
Originally posted by cwingert
Careful. B and b are almost an order of magnitude difference.


I understand that my DSL is 256 kilo"b"its per second and not kilo"B"ytes, which IIRC is about 1.5MB per minute upstream.. "B" vs "b" is a magnitude of 8, if I recall correctly :p


Originally posted by cwingert
If you want an "Internet TiVo", you need realtime transcode. This *is* possible. Just need a fat processor.


Ah, the real question at hand. Obviously, at least I've been led to believe, that the TiVo doesn't have the horsepower. Is there anyone working on (or thinking about) transcoding, via DivX or other means, that is automatically handed off to a fast PC, so it could be streamed real time?

Yea, I know this is jumping way ahead of the game, just curious, what's in the pipeline or current thinking.

I was tinkering with streaming live Tivo via MS Windows Media Encoder (WME), which consistently crashed my Dell XPPro system (2.4Ghz w/512Mb) so I uninstalled it. By "crash" I mean that horrible "memory dump" screen that shuts the PC off "in order to protect the hardware from damage. real nasty

Anyone having success with WME?

burriko
04-01-2003, 10:42 AM
awesome! mencoder works as well as mplayer.

i just streamed a show to my pc and converted it to divx on the fly. it took about 1.5 mins to convert a 5 min show. the only problem is i didn't seem to convert the sound, just video. this is great for me, as i convert most of the shows that i extract to divx anway, so this'll greatly speed up the process!
now i've just got to work out how to use mencoder properly.

UPDATE: apparently audio worked fine, it's just that windows media player didn't like it. both mplayer and xbox media player play the audio perfectly.

ronnythunder
04-01-2003, 12:01 PM
Originally posted by cwingert
This is in the release notes. It should sync up within a few seconds of the seek. duh, of course, you are correct. i don't think i have anything to whine about at this point! :)

well, there is one thing. everybody keeps saying that if these changes make it into the mplayer release, it'll eventually get to the xbox media player, which would suggest a dvd player that can play raw ty streams from a dvd-r, which might mean that i'd have to buy an xbox, which would mean, damn you cwingert, you're costin me money! :)

great, great stuff!

ronny

ronnythunder
04-01-2003, 12:49 PM
ok, i read the release notes this time, really...

i'm playing back a dtivo stream (30 minute meals) that is local, extracted with tytool, and there's a spot in the middle of it that is "wonky". the vid and aud are playing fine, then all of a sudden, the vid gets scrambled briefly, and i hear some audio of what is probably a hockey game (since that's about the only other thing i record on this box).

in about a second, the vid clears up, the audio comes back and is in sync, and things continue on.

is this just weirdness in the ty stream? should i try extracting with the server that comes with mplayer?

ronny

cwingert
04-01-2003, 01:39 PM
I have never used TyTool. Is it possible that you could extract the stream with something like MFS Stream for TivoWeb and upload it to me?

Thanks


Originally posted by ronnythunder
ok, i read the release notes this time, really...

i'm playing back a dtivo stream (30 minute meals) that is local, extracted with tytool, and there's a spot in the middle of it that is "wonky". the vid and aud are playing fine, then all of a sudden, the vid gets scrambled briefly, and i hear some audio of what is probably a hockey game (since that's about the only other thing i record on this box).

in about a second, the vid clears up, the audio comes back and is in sync, and things continue on.

is this just weirdness in the ty stream? should i try extracting with the server that comes with mplayer?

ronny

cwingert
04-01-2003, 01:40 PM
Interesting, any idea what the output bit rate is?



Originally posted by burriko
awesome! mencoder works as well as mplayer.

i just streamed a show to my pc and converted it to divx on the fly. it took about 1.5 mins to convert a 5 min show. the only problem is i didn't seem to convert the sound, just video. this is great for me, as i convert most of the shows that i extract to divx anway, so this'll greatly speed up the process!
now i've just got to work out how to use mencoder properly.

UPDATE: apparently audio worked fine, it's just that windows media player didn't like it. both mplayer and xbox media player play the audio perfectly.

hom3l3ss
04-01-2003, 02:02 PM
which version is the latest release for Mac OSX on the website?

Originally posted by cwingert
The Mac OSX changes are in the latest release.

TCM
04-01-2003, 02:17 PM
i'm trying to compile under cygwin, is there anybody kind enough to tell me how to configure, build , & install gcc compiler to 3.1? cuz mplayer won't let me compile with my current gcc compiler not until i upgrade it. Thanks in advance

burriko
04-01-2003, 02:25 PM
Originally posted by cwingert
Interesting, any idea what the output bit rate is?

whatever you set it to be. so far i've left the bitrate setting out and it seems to default to about 800-900kbits/s.

i'm going to experiment with it some more tomorrow, but so far i'm very impressed.

wfg97079
04-01-2003, 03:19 PM
Anyone ever disconver what ports need to be opened up? Cant seem to access my tivo which is behind a home ethernet gateway (nat) I did open up the port that vserver says its listening on but no luck.

cwingert
04-01-2003, 03:40 PM
8074

I've done it with my TiVo.

NOTE : There is no security on this interface and Security through obscurity is a bad thing. A malicous hacker has the ability to WRITE to your MFS database through vserver. Standard disclaimers apply and YMMV.




Originally posted by wfg97079
Anyone ever disconver what ports need to be opened up? Cant seem to access my tivo which is behind a home ethernet gateway (nat) I did open up the port that vserver says its listening on but no luck.

cwingert
04-01-2003, 03:50 PM
Burriko has identified some streams that do not work correctly under Cygwin.

After some research and debugging, it turns out that Cygwin doesn't do Long File Support (ie 64 bits), it is limited to 32-bits (ie 2 GB). Unfortunately streams of greater than 4 parts will then fail to work under Cygwin. For those who do not know a Part is a file of about 500 MB in the TiVo MFS. One or more parts can make up a single Now Showing entry.

There are a few solutions to this problem :
1) Handle all file access mod 128k, which would require some code redesign. However, large local files would still not work.
2) Replace the off_t with an mplayer version of off_t
This has real far reaching mplayer code impact, that impacts many files.
3) All you Windows Weenies can buy a real OS. :) j/k
4) One solution that just came to mind is the ability to also specify a part in the tivo string. Consider tivo://tivo1/1234/1 to play part one.

Creative solutions to this problem are appreciated.

ronnythunder
04-02-2003, 12:07 AM
Originally posted by cwingert
I have never used TyTool. Is it possible that you could extract the stream with something like MFS Stream for TivoWeb and upload it to me? i used mfs-ftp to transfer the ty a second time to my pc. it still had the glitch, but if you still want the ty, i could upload it to you, though it'd be better if i could either send you part of it, or if i could spool it off onto a dvd-r or cd-r and snail-mail it to you. would a tychopped part help?

ronny

eobiont
04-02-2003, 12:27 AM
Earlier I posted about having a problem listing the programs on my tivo using MPlayer tivo://tivo/list A few others have had this problem. I am on a Mac, but someone else posted that they were on RedHat so it isn't just a Mac thing. It was suggested that an edit was needed for the vstream.c file which it did turn out to be the cause. What wasn't clear to me was that this file was in the MPlayer sources, not the vstream sources. As I said before, I'm a little daft. Perhaps everybody already has figured this out, but if I can save just one person... :)

I edited the vstream file as follows removing the first clause of the if statement and changing the else if to an if. This was necessary because on my Tivo, /Recording/NowShowing is present, but empty. I suppose you could also reverse the clauses to give NowShowingByTitle precident. Any way, I needed to edit the file at MPlayer/vstream/vstream.c, the rerun ./configure and rerun make. MPlayer works like a charm. Thanks for the great work.

int vstream_list_streams( void )
{
char *path;

mfs_init();
if ( mfs_resolve( "/Recording/NowShowingByTitle" ) != 0 )
{
path = "/Recording/NowShowingByTitle";
}
else
{
path = "/Recording/Complete";
}
printf( "Listing streams in %s\n", path );
vstream_query_streams( path );
return( 0 );
}

keithc
04-02-2003, 02:39 AM
Compiled fine according to instructions on WinXP Pro. Tested it on a local ty file but the video was slow - audio seemed ok.

It's using directx for video and having to scale from 480x576 to 768x576 in software and not coping. Confirmed this to be the problem as telling it not to scale was fine.

This is on a dual 1Ghz PIII box though only one cpu appears to be used. I'm using a Matrox G550 card - surely this is capable of HW scaling?

What kit are other cygwin people using?

ronnythunder
04-02-2003, 11:02 AM
Originally posted by keithc
What kit are other cygwin people using? i'm using a 900mhz duron with a ati aiw rage 128 pro, and it does fine with local streams (haven't tried remote streaming). i'm not doing scaling though.

ronny

ronnythunder
04-02-2003, 11:05 AM
Originally posted by cwingert
I have never used TyTool. Is it possible that you could extract the stream with something like MFS Stream for TivoWeb and upload it to me? another interesting update: i ran this "bad" stream through vsplitmux2c and it complained about out of band data at about the point where i saw the artifacts. when i played the resultant mpg file with mplayer, it played fine, and not only was the glitch not there, there was no break at all in the video or audio.

can your mplayer mods be enhanced to ignore the oob data?

ronny

ronnythunder
04-02-2003, 11:43 AM
closing in on the problem i think.. i used mfs-ftp to get the .tmf file for the stream so i could get the raw ty parts (512mb chunks). sure enough, the glitch happens right at the very end of the first chunk. so, it almost looks like the tivo knows where in the chunk the program ends, but our extraction tools either strip that info or don't know how to interpret it.

ronny

burriko
04-02-2003, 12:10 PM
Originally posted by cwingert
Burriko has identified some streams that do not work correctly under Cygwin.

After some research and debugging, it turns out that Cygwin doesn't do Long File Support (ie 64 bits), it is limited to 32-bits (ie 2 GB). Unfortunately streams of greater than 4 parts will then fail to work under Cygwin. For those who do not know a Part is a file of about 500 MB in the TiVo MFS. One or more parts can make up a single Now Showing entry.


i can confirm that you're definitely correct about this being a cygwin problem. i've just compiled mplayer under linux and it plays back the streams that i had problems with perfectly.

cwingert
04-03-2003, 04:00 PM
Is up on http://tivo-mplayer.sf.net

This version is primarily a workaround to support
Cygwin's 32-bit file implementation.

If you are running Cygwin :
-mplayer will attempt to stream up to 2 GB from the TiVo
-mplayer will allow you to play specific parts of a stream.

See the file "tivo-mplayer-cygwin" for more information.

Let me know how this works out.

AlphaWolf
04-03-2003, 04:44 PM
Originally posted by ronnythunder
another interesting update: i ran this "bad" stream through vsplitmux2c and it complained about out of band data at about the point where i saw the artifacts. when i played the resultant mpg file with mplayer, it played fine, and not only was the glitch not there, there was no break at all in the video or audio.

can your mplayer mods be enhanced to ignore the oob data?

ronny

Its funny you mention that, because I just noticed that xbox media player is able to perfectly play tystudio processed mpegs without any artefacting where a PC DVD player and the tivo normaly have artefacting. Could it be that the libmpeg2 code base (which IIRC, mplex uses) has code to correct that?

cwingert
04-03-2003, 05:23 PM
Olaf is actually repairing streams.

The mplayer ty additions do not repair streams, they only try to hide the really broken portions


Originally posted by AlphaWolf
Its funny you mention that, because I just noticed that xbox media player is able to perfectly play tystudio processed mpegs without any artefacting where a PC DVD player and the tivo normaly have artefacting. Could it be that the libmpeg2 code base (which IIRC, mplex uses) has code to correct that?

cwingert
04-03-2003, 05:27 PM
512mb is the size of a Part File. Many of these Part Files make up a Now Showing entry. Does anyone know if mfs-ftp adds stuff between part files? I actually have never played a tmf file directly.

In the TiVo, the first chunk of every part file is a header that tells information about that part file. I ignore the header during playback.


Originally posted by ronnythunder
closing in on the problem i think.. i used mfs-ftp to get the .tmf file for the stream so i could get the raw ty parts (512mb chunks). sure enough, the glitch happens right at the very end of the first chunk. so, it almost looks like the tivo knows where in the chunk the program ends, but our extraction tools either strip that info or don't know how to interpret it.

ronny

stealthdave
04-03-2003, 06:36 PM
I'm getting a build error on Mac OS X. I have SDL and iconv libs installed through Fink and have followed the build process at tivo-mplayer.sf.net. I configure with "./configure" or "./configure --with-extraincdir=/sw/include --with-extralibdir=/sw/lib" with the same result. When I run "make", it begins the compile and eventually runs into the following error:


gcc -I/sw/include -no-cpp-precomp -DSYS_DARWIN -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -Wall -g -DHAVE_AV_CONFIG_H -I.. -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -c -o ppc/dsputil_ppc.o ppc/dsputil_ppc.c
/var/tmp//ccdJfAde.s:160:Parameter error: r0 not allowed for parameter 1 (code as 0 not r0)
make[1]: *** [ppc/dsputil_ppc.o] Error 1
make: *** [libavcodec/libavcodec.a] Error 2


I'm compiling on a 700MHz iBook w/ OS X v. 10.2.4 (latest patches) and Fink 0.5.1. Any help would be apreciated!

- Stealth Dave

ronnythunder
04-03-2003, 11:10 PM
Originally posted by cwingert
512mb is the size of a Part File. Many of these Part Files make up a Now Showing entry. Does anyone know if mfs-ftp adds stuff between part files? I actually have never played a tmf file directly.

In the TiVo, the first chunk of every part file is a header that tells information about that part file. I ignore the header during playback. i know about the part files; that's what i was saying. the bad data appears at the very end of the first part in a two part show (two 512 mb parts). all a tmf is is a tar file with a xml description of the show and the part files in sequence (part01.ty, part02.ty etc.).

i think the key lies in your second paragraph. i'm willing to bet that something in header says "the vid starts at offset x in this part and ends at offset y". tydemux and vsplitmux don't seem to use this either; instead, they watch the sequence numbers and other data in the stream and just bypass anything that doesn't "fit". this is why i got the "oob" data when i processed the ty, and it's why the resultant mpg didn't have the glitch, because it wasn't really supposed to be in the file.

i guess what i'm saying is that, in order to move closer to perfection in this regard, mplayer either needs to skip over the oob data like vsplitmux and tydemux does, or use the header info to determine what to cut.

ronny

cwingert
04-03-2003, 11:21 PM
I think you are missing the point, mplayer does this already and I have no problem with OOB data on my SA1.

If you find out the problem with your particular setup or tmf file, I will happily accept a patch.



Originally posted by ronnythunder
i guess what i'm saying is that, in order to move closer to perfection in this regard, mplayer either needs to skip over the oob data like vsplitmux and tydemux does, or use the header info to determine what to cut.

ronny

d7o
04-04-2003, 06:36 PM
cwingert: do you have a patch for your stuff against mplayer? Looking through the source it appears that you've got changes in quite a few places.

I want to add this stuff to the xbox media player (http://xboxmediaplayer.de) so that we can stream directly from tivo to xbox. Patches against mplayer source (so that I can get your changes directly) would be very helpful.

Thanks,
duo

d7o
04-04-2003, 06:49 PM
n/m I just downloaded the rc4 sources from mplayer and did the diff myself.

:)

cwingert
04-04-2003, 07:19 PM
These patches are not ready for prime time yet.

They are close, though and I have already be in contact with Arpi regarding inclusion in CVS.


Originally posted by d7o
n/m I just downloaded the rc4 sources from mplayer and did the diff myself.

:)

d7o
04-04-2003, 08:05 PM
Well, I'll mark the feature experimental. A large part of my motivation is for my own use. :)

burriko
04-04-2003, 08:20 PM
Originally posted by d7o
I want to add this stuff to the xbox media player (http://xboxmediaplayer.de) so that we can stream directly from tivo to xbox. Patches against mplayer source (so that I can get your changes directly) would be very helpful.

Thanks,
duo

cool, i've been hoping someone who knows what they're doing would take this on. :D
I'm really looking forward to this feature.

burriko
04-05-2003, 10:18 AM
cwingert,
i just got around to testing 0.7, and unfortunately it seems to have made things worse for me. Now no files will stream at all, but local files still play fine.
I've tried it on both large and small streams and none will play.
Notice that it say's 'stream too big', even though the stream is only 81920KB.


Playing tivo://tivo/372208
Starting to stream from a TiVo tivo file 372208
WARNING stream too big for CYGWIN, will play as much as possible!
Cache size set to 16384 KBytes
Connected to server: tivo
Cache fill: 0.00% (0 bytes) Falling back on trying to parse playlist tivo://
tivo/372208...
============ Sorry, this file format is not recognized/supported =============
=== If this file is an AVI, ASF or MPEG stream, please contact the author! ===

cwingert
04-05-2003, 03:35 PM
Is up on the server.

Burriko,

Could you give it a try?

Thanks

burriko
04-05-2003, 04:49 PM
Originally posted by cwingert
Is up on the server.

Burriko,

Could you give it a try?

Thanks

much better. everything is playing now.

and it seems to be working as you said, it play's to 2GB and then stops.

thanks.

cwingert
04-06-2003, 09:07 PM
Can be downloaded from http://tivo-mplayer.sf.net

SBrk (from alt.org forum) found a bug in the part file change code during streaming. I believe this is the problem that some users reported earlier. SBrk also provided FreeBSD support.
Thanks to SBrk.

This should be the last release pre-1.0 and the initial release to MPlayer CVS.

I may add CC support (post 1.0), if there is interest.

AlphaWolf
04-06-2003, 09:12 PM
Originally posted by cwingert
Olaf is actually repairing streams.

The mplayer ty additions do not repair streams, they only try to hide the really broken portions

Right, but I also see artefacting when I play these streams in powerdvd, whereas xbox media player doesn't show any artefacting in several places where powerdvd does.

osetivo
04-06-2003, 09:37 PM
Anyone want to throw us Windows Weenies a compiled bone?

Fugg
04-06-2003, 11:10 PM
Oh! nevermind....
:)

osetivo
04-06-2003, 11:17 PM
Thanks, but I meant a new one. (that's .4)

The source is now up to .9. Sorry for not being clear.

FYI:

2003.04.06, Sunday :: Finally! MPlayer 0.90 released!

http://www.mplayerhq.hu/homepage/design6/news.html

cwingert
04-07-2003, 03:51 PM
Are at at http://tivo-mplayer.sf.net

Configured and compiled on a PIV.

osetivo
04-07-2003, 03:53 PM
Thank you, cwingert

You posted just as i edited my post above regarding mplayer .9 being released.

stealthdave
04-08-2003, 06:41 PM
Can anyone who has successfully compiled MPlayer, either the patched version or the standard, contact me via PM or e-mail? I've tried several times to compile, and it always fails while attempting to compile libavcodec. Specifically, it fails to compile dsputil_ppc.c (see my previous post for details). I get the same failure on the new "stable" release, so it's not a problem with the patch code, but none the less I'd like to get some help from someplace a bit more user-friendly than the MPlayer mailing-lists . What I'd really like to do is compare Fink installations and see what I'm missing that others are not to make it compile correctly. Or do I need to set an environment variable or something? Who knows? But I aim to find out!

- Stealth Dave

glider
04-08-2003, 08:12 PM
Hi, great idea (was looking for posts re mplayer&tystream but didn't have any luck then). But in any case, I'm not having any luck compiling this version
MPlayer-0.90rc4-tivo-0.9.tar.gz

Line 814 is:
demux_packet_t *dp;

And it seems like the def is included ??


gcc -c -O4 -march=i686 -mcpu=i686 -pipe -ffast-math -fomit-frame-pointer -D_REENTRANT -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -I../loader -o demux_mpg.o demux_mpg.c
demux_mpg.c: In function `demux_ty_fill_buffer':
demux_mpg.c:814: parse error before `*'
demux_mpg.c: In function `demux_seek_ty':
demux_mpg.c:1150: parse error before `newpos'
demux_mpg.c:1153: `newpos' undeclared (first use in this function)
demux_mpg.c:1153: (Each undeclared identifier is reported only once
demux_mpg.c:1153: for each function it appears in.)
demux_mpg.c:1179: `res' undeclared (first use in this function)
make[1]: *** [demux_mpg.o] Error 1
make[1]: Leaving directory `MPlayer-0.90rc4/libmpdemux'
make: *** [libmpdemux/libmpdemux.a] Error 2

swinokur
04-09-2003, 12:00 AM
Wow!

This is just brilliant! I've done a bunch of work on media streaming software in the past, with various companies - and this is just one of the coolest things I've seen in a while!

I'm wondering, would it be possible to make a directshow filter that would read from the tivo/vserver software? This way us windows folks could take advantage of the native audio/video codecs that exist.

(I have pretty much zero knowledge of mplayer, so please feel free to tell me why it is superior to the windows media framework ... as I am sure it is)

I'm asking because playback on my P3 1Ghz machine using the cygwin binaries just posted is a little choppy. And I play back MPEG-2 using the elecard codec just fine on this machine (e.g. don't tell me my machine is just too slow :) )

Oh, one other question ... how about a tivoweb module that lets you click on the video you want to watch?


thanks!

cwingert
04-09-2003, 12:25 AM
The long and the short of directshow is that, I don't do Windows.

Mplayer is just a solution for me on my OS. It just happened to work for other people as well.

If your video is choppy while streaming, you might want to add "-cache 8192" to your command line.

TiVoWeb module (or a simple addition to ui.itcl) would be very easy, but TCL isn't my forte.

In any regard patching to CVS (for mainstream inclusion in mplayer) turns out to be more difficult than I originally thought. MPlayer seems to have changed the mpegpes video driver between rc4 and today's CVS. In any regard, I'll be spending some time on this.

HTH


Originally posted by swinokur
Wow!

This is just brilliant! I've done a bunch of work on media streaming software in the past, with various companies - and this is just one of the coolest things I've seen in a while!

I'm wondering, would it be possible to make a directshow filter that would read from the tivo/vserver software? This way us windows folks could take advantage of the native audio/video codecs that exist.

(I have pretty much zero knowledge of mplayer, so please feel free to tell me why it is superior to the windows media framework ... as I am sure it is)

I'm asking because playback on my P3 1Ghz machine using the cygwin binaries just posted is a little choppy. And I play back MPEG-2 using the elecard codec just fine on this machine (e.g. don't tell me my machine is just too slow :) )

Oh, one other question ... how about a tivoweb module that lets you click on the video you want to watch?


thanks!

keithc
04-09-2003, 02:30 AM
I get messages about my dual-1Ghz PIII machine being too slow (mplayer is single-threaded and I gather likely to remain so).

In my case, it has to scale the image from 480x576 to 756x576 but it does this in software. Mucking about with the cache settings made no difference.

Are you running a big desktop? Things ran much better when I reduced to 1024x768 but frankly this is a PITA.

I'm going to try running on Linux when I find time to put in a sound card.

cwingert
04-09-2003, 02:32 AM
Windows or Linux?

Linux uses Xvideo for scaling and therefore hardware acceleration.



Originally posted by keithc
I get messages about my dual-1Ghz PIII machine being too slow (mplayer is single-threaded and I gather likely to remain so).

In my case, it has to scale the image from 480x576 to 756x576 but it does this in software. Mucking about with the cache settings made no difference.

Are you running a big desktop? Things ran much better when I reduced to 1024x768 but frankly this is a PITA.

I'm going to try running on Linux when I find time to put in a sound card.

cwingert
04-09-2003, 02:35 AM
After a bit of debugging I finally was able to get my patches applied to the CVS version of mplayer.

The long and the short, its ready for mainstream release and (more importantly) still works.

The patch and the tar is available on

http://tivo-mplayer.sf.net
MPlayer-20030408-tivo-0.1.tar.gz
mplayer-tivo-patch-cvs-20030408.gz

For those bleeding edgers that want to give it a try, please do.

I'll probably send it in a week.

Thanks

keithc
04-09-2003, 02:50 AM
Windows XP Pro.

Will Linux be able to hw scale running at any res? If Linux can do it, why can't Windows?


Originally posted by cwingert
Windows or Linux?

Linux uses Xvideo for scaling and therefore hardware acceleration.

Chainsaw76
04-09-2003, 10:47 AM
Originally posted by cwingert
After a bit of debugging I finally was able to get my patches applied to the CVS version of mplayer.

The long and the short, its ready for mainstream release and (more importantly) still works.

...


Has anyone gotton the lastest version to compile under CYGWIN? I've gotton previous versions to compile fine, but with the latest "CVS version" I get:

configured with --disable-mpdvdkit



libmpdemux/libmpdemux.a(network.o)(.text+0x399):network.c: undefined refrence to '_gethostbyname2'
libmpdemux/libmpdemux.a(network.o)(.text+0x409):network.c: undefined refrence to '_inet_ntop'
collect2: ld returned 1 exit status
make: *** [mplayer] Error 1


FOLLOW UP: Ok, I fixed both these issues. First i had to


configure with --disable-inet6


Next I had to edit libmpdemux/network.c and change the


inet_ntop call (there is only one)

with


inet_pton(af, host, our_s_addr);


And I can now even stream from my office! (very cool)..

Also NOTE: I am not a C prorgammer, or a linux person. but these two hacks worked for me.

-Jason

mrblack51
04-09-2003, 02:27 PM
just tried a video clip from my s2 dtivo...vid played fine, no audio (DOH!)...audio worked fine when i tried an mp3 with the same setup.

cwingert
04-09-2003, 02:30 PM
Can you send me (or post) the S2 stream?

mrblack51
04-09-2003, 03:05 PM
Originally posted by cwingert
Can you send me (or post) the S2 stream?

sure, pm me an ftp that i can upload it to.

A.C.
04-09-2003, 03:25 PM
Whew...Patches to Today's CVS
After a bit of debugging I finally was able to get my patches applied to the CVS version of mplayer.

The long and the short, its ready for mainstream release and (more importantly) still works.

The patch and the tar is available on

http://tivo-mplayer.sf.net
MPlayer-20030408-tivo-0.1.tar.gz
mplayer-tivo-patch-cvs-20030408.gz

For those bleeding edgers that want to give it a try, please do.

I'll probably send it in a week.

Thanks




What's the patch for? Just wondering. I just compiled and ran against your freshgear ty and it worked well. I had to use the -ao switch to get audio, but other than that it worked well. So what fix is in the patch?

sbrk
04-09-2003, 03:44 PM
Originally posted by glider
Hi, great idea (was looking for posts re mplayer&tystream but didn't have any luck then). But in any case, I'm not having any luck compiling this version
MPlayer-0.90rc4-tivo-0.9.tar.gz

Line 814 is:
demux_packet_t *dp;

And it seems like the def is included ??


gcc -c -O4 -march=i686 -mcpu=i686 -pipe -ffast-math -fomit-frame-pointer -D_REENTRANT -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -I../loader -o demux_mpg.o demux_mpg.c
demux_mpg.c: In function `demux_ty_fill_buffer':
demux_mpg.c:814: parse error before `*'
demux_mpg.c: In function `demux_seek_ty':
demux_mpg.c:1150: parse error before `newpos'
demux_mpg.c:1153: `newpos' undeclared (first use in this function)
demux_mpg.c:1153: (Each undeclared identifier is reported only once
demux_mpg.c:1153: for each function it appears in.)
demux_mpg.c:1179: `res' undeclared (first use in this function)
make[1]: *** [demux_mpg.o] Error 1
make[1]: Leaving directory `MPlayer-0.90rc4/libmpdemux'
make: *** [libmpdemux/libmpdemux.a] Error 2

gcc-2.95.x doesn't like it if you declare variables after calling functions (ie. you can't just throw a new variable willy-nilly in the middle of code). Looks like gcc-3.x relaxes this restriction. This is unfortunate, as it leads to sloppy code.

Simply delete the extra *dp declaration in the middle of the code and reorder the declaration of res and newpos.

--- sbrk()

cwingert
04-09-2003, 03:53 PM
The patch is for submission to mainstream mplayer code, so that I don't have to maintain this code in the long run.



Originally posted by A.C.
What's the patch for? Just wondering. I just compiled and ran against your freshgear ty and it worked well. I had to use the -ao switch to get audio, but other than that it worked well. So what fix is in the patch?

A.C.
04-09-2003, 04:42 PM
OK...I'm kinda new to linux and all. How do you install the patch? Thanks

cwingert
04-09-2003, 04:52 PM
You don't need to, if you are using one of the source tars at the http://tivo-mplayer.sf.net

You do if you want to take a stock mplayer CVS image and apply the patch.

HTH


Originally posted by A.C.
OK...I'm kinda new to linux and all. How do you install the patch? Thanks

A.C.
04-09-2003, 08:21 PM
I have found a problem in the mplayer.exe file that I downloaded from the website. This pertains to DirecTiVos and I don't know if this problem is with 3.1 or what. When you try to pull up a play list I noticed in my linux box the source was /Recordings/NowShowingByTitle, which worked great. In the Windows version it's /Recordings/NowShowing. So you can't pull up a file list. Another weird thing, the FSIDs aren't uniform. What I mean by this is that tytools will give you a different FSID than mplayer, so unless you can get a list from a linux box, you can't use mplayer.

A.C.
04-09-2003, 10:21 PM
I can't get audio to work in Redhat 8.... It worked on your freshgear ty but not my dtivo ty files.

cwingert
04-09-2003, 11:56 PM
Your probably looking at the difference between versions of my releases. Make sure you build the latest and greatest.



Originally posted by A.C.
I have found a problem in the mplayer.exe file that I downloaded from the website. This pertains to DirecTiVos and I don't know if this problem is with 3.1 or what. When you try to pull up a play list I noticed in my linux box the source was /Recordings/NowShowingByTitle, which worked great. In the Windows version it's /Recordings/NowShowing. So you can't pull up a file list. Another weird thing, the FSIDs aren't uniform. What I mean by this is that tytools will give you a different FSID than mplayer, so unless you can get a list from a linux box, you can't use mplayer.

glider
04-10-2003, 04:15 AM
Excellent work, cwingert!

In the first post you mention the closed caption support is on the ToDo list - have you had any chance of adding that yet ?

Also, your modified mplayer might have a little more a/v sync issues than a mpeg2 stream made by TyTool 6r3 (where I use the "-d Multiplex into (S)VCD sized PACKS (2324 bytes)" switch), does your code split up the a/v in a similar way ?
(I use the dxr3 hw mpeg2 decoder card, http://dxr3.sourceforge.net/, which seems extra sensitive to a/v problems)

rc3105
04-10-2003, 07:07 AM
Originally posted by cwingert
512mb is the size of a Part File. Many of these Part Files make up a Now Showing entry. Does anyone know if mfs-ftp adds stuff between part files? I actually have never played a tmf file directly.

In the TiVo, the first chunk of every part file is a header that tells information about that part file. I ignore the header during playback.

sorry I didn't catch this ? sooner, too many irons in the fire...

from mfs_ftp:

tmf has a tar header, xml data, then a tar header preceeds each fsid segment. not great for playing or converting directly.

ty is a plain vanilla tyfile from mfs_stream. 512 #'s are appended to the very end of the last segment, then the xml data, then 512 #'s again. that won't affect playback / conversion at all

tmf2mpg will extract ty from tmfs

tyx files SHOULD play ok, they convert fine with tystudio and include the info for reinsertion. the xml and vro header info is disguised as invalid header chunks so that the tystudio chunk_check ignores them. I haven't tried them with this yet though or released tyx insert code so that's definatly bleeding edge stuff...

--
Riley

A.C.
04-10-2003, 10:40 AM
Can anyone tell what's going on here. The make of mplayer didn't complete. I guess I should have mentioned this is in Win2K using cygwin.

libmpdemux/libmpdemux.a(network.o)(.text+0x399):network.c: undefined reference to `_gethostbyname
2'
libmpdemux/libmpdemux.a(network.o)(.text+0x409):network.c: undefined reference to `_inet_ntop'
collect2: ld returned 1 exit status
make: *** [mplayer] Error 1

cwingert
04-10-2003, 02:06 PM
Anyone extracted some of these, that they can upload to me? Please PM me.

Thanks

Chainsaw76
04-10-2003, 02:13 PM
AC, I posted this a day or two ago:


Originally posted by Chainsaw76

FOLLOW UP: Ok, I fixed both these issues. First i had to


configure with --disable-inet6


Next I had to edit libmpdemux/network.c and change the


inet_ntop call (there is only one)

with


inet_pton(af, host, our_s_addr);


NOTE: I am not a C prorgammer, or a linux person. but these two hacks worked for me.

-Jason [/B]
Hope this Helps.

cwingert
04-10-2003, 05:00 PM
Can you define what a tar header (in this context) is? Are all these "sub" files contiguous in a single file? If so, how do you denote where they begin and end?

Thanks


Originally posted by rc3105
sorry I didn't catch this ? sooner, too many irons in the fire...

from mfs_ftp:

tmf has a tar header, xml data, then a tar header preceeds each fsid segment. not great for playing or converting directly.

ty is a plain vanilla tyfile from mfs_stream. 512 #'s are appended to the very end of the last segment, then the xml data, then 512 #'s again. that won't affect playback / conversion at all

tmf2mpg will extract ty from tmfs

tyx files SHOULD play ok, they convert fine with tystudio and include the info for reinsertion. the xml and vro header info is disguised as invalid header chunks so that the tystudio chunk_check ignores them. I haven't tried them with this yet though or released tyx insert code so that's definatly bleeding edge stuff...

--
Riley

cwingert
04-10-2003, 08:15 PM
A new version is now up on the web site.

Changes :
-mrblack51 kindly provided me some DTiVo S2 Streams. These should work now with mplayer . Wouldn't you know TiVo changed the place where the PTS is located?
-a complete cleanup/optimization of the demuxer source for TiVo. It was getting very ugly with all the exceptions. It should be more flexible now, for changes such as this.

During my regression testing, I found that the CVS version (which now has H.264 support) falsely flagged one of my test streams as H.264. I think the mplayer H.264 author need to tighten up the H.264 detection routines. In any regard, it *is* CVS. I have the option of putting my changes further up in the MPEG detect chain, but decided against it. If you encounter a stream that outputs lots of messages, but no output, you need to force the TiVo demuxer with (-demuxer 31)

Let me know how this new (& improved) version works for you guys.

Still looking for SA S2 Streams... Anybody? Anybody?

rc3105
04-10-2003, 10:15 PM
a tmf is just a tar that contains showing.xml and part00.ty -partxx.ty

here's a primer on tar files. basically it's the original files cat'd together with two additions. there is a 512 byte header that describes each following file, and the data is padded to the next 512 byte boundry with \x00 bytes if it falls short of a 512 byte sector boundry

tarh - 512 bytes
xmldata - 903 bytes
null padding 121 bytes

total space taken inside tmf for xml header & data, 512+1024=1536 bytes

tarh - 512 bytes
part00.ty - 512 megabytes (4096 chunks * 128k (256*512 byte sectors)

total space taken inside tmf for part00.ty 512meg+512 bytes (lines up with 512 byte boundries so no padding is needed)

and so on till the end of the tmf for each partxx.ty

knowing that each header is 512 bytes, and reading the size from the header, you know where the next header starts so you can walk down the tmf to whatever chunk you want.

--
Riley

(tyx is the interesting twist) :D

rc3105
04-10-2003, 10:17 PM
TAR format
Offset Length Contents
0 100 bytes File name ('\0' terminated, 99 maxmum length)
100 8 bytes File mode (in octal ascii)
108 8 bytes User ID (in octal ascii)
116 8 bytes Group ID (in octal ascii)
124 12 bytes File size (s) (in octal ascii)
136 12 bytes Modify time (in octal ascii)
148 8 bytes Header checksum (in octal ascii)
156 1 bytes Link flag
157 100 bytes Linkname ('\0' terminated, 99 maxmum length)
257 8 bytes Magic ("ustar \0")
265 32 bytes User name ('\0' terminated, 31 maxmum length)
297 32 bytes Group name ('\0' terminated, 31 maxmum length)
329 8 bytes Major device ID (in octal ascii)
337 8 bytes Minor device ID (in octal ascii)
345 167 bytes Padding
512 (s+p)bytes File contents (s+p) := (((s) + 511) & ~511), round up to 512 bytes

Checksum:
int i, sum;
char* header = tar_header_pointer;
sum = 0;
for(i = 0; i < 512; i++)
sum += 0xFF & header[i];

/* The linkflag defines the type of file */
#define LF_OLDNORMAL '\0' /* Normal disk file, Unix compatible */
#define LF_NORMAL '0' /* Normal disk file */
#define LF_LINK '1' /* Link to previously dumped file */
#define LF_SYMLINK '2' /* Symbolic link */
#define LF_CHR '3' /* Character special file */
#define LF_BLK '4' /* Block special file */
#define LF_DIR '5' /* Directory */
#define LF_FIFO '6' /* FIFO special file */
#define LF_CONTIG '7' /* Contiguous file */

--
Riley

cwingert
04-10-2003, 10:51 PM
Its really too bad, you didn't use 128k blocks for your header and add some magic number. Parsing this in the context of chunks (at least for my application) is somewhat of a nightmare.

Thanks for the rundown.



Originally posted by rc3105
TAR format
Offset Length Contents
0 100 bytes File name ('\0' terminated, 99 maxmum length)
100 8 bytes File mode (in octal ascii)
108 8 bytes User ID (in octal ascii)
116 8 bytes Group ID (in octal ascii)
124 12 bytes File size (s) (in octal ascii)
136 12 bytes Modify time (in octal ascii)
148 8 bytes Header checksum (in octal ascii)
156 1 bytes Link flag
157 100 bytes Linkname ('\0' terminated, 99 maxmum length)
257 8 bytes Magic ("ustar \0")
265 32 bytes User name ('\0' terminated, 31 maxmum length)
297 32 bytes Group name ('\0' terminated, 31 maxmum length)
329 8 bytes Major device ID (in octal ascii)
337 8 bytes Minor device ID (in octal ascii)
345 167 bytes Padding
512 (s+p)bytes File contents (s+p) := (((s) + 511) & ~511), round up to 512 bytes

Checksum:
int i, sum;
char* header = tar_header_pointer;
sum = 0;
for(i = 0; i < 512; i++)
sum += 0xFF & header[i];

/* The linkflag defines the type of file */
#define LF_OLDNORMAL '\0' /* Normal disk file, Unix compatible */
#define LF_NORMAL '0' /* Normal disk file */
#define LF_LINK '1' /* Link to previously dumped file */
#define LF_SYMLINK '2' /* Symbolic link */
#define LF_CHR '3' /* Character special file */
#define LF_BLK '4' /* Block special file */
#define LF_DIR '5' /* Directory */
#define LF_FIFO '6' /* FIFO special file */
#define LF_CONTIG '7' /* Contiguous file */

--
Riley

A.C.
04-10-2003, 11:02 PM
I'm having problems with viewing ty streams both locally and remotely in Windows. I was able to install cygwin, and compile mplayer from source. The sound works great, but the video is distorted on the 1/4 right part of the screen. I'm running on a PIII 600 laptop, with a S3 Savage/IX 8 MB card. I've tried the framedrop and cache switches, but it still doesn't work. Anyone have any ideas??

rc3105
04-10-2003, 11:17 PM
well, the tmf format dates back to last fall and was really just a dirt simple way to glob all the info together. 512 byte headers is part of the tar spec and it is just a video tarball.

tyx incorporates 130,560 byte padding.null files. the first 4 bytes of the name field are identical to the 4 bytes that identify a chunk as a header and the rest of the bytes are \x00. it gets skipped and offsets the next tarheader back 512 bytes so video data chunk boundries stay aligned. those 4 bytes are prepended to the name of showing.xml to disguise it & then it's padded out to 128k boundries with a slightly smaller padding.null file.

john has added a tyx double click association to the latest beta and SO FAR tydemux / tyedit are converting tyx into mpeg identical to the mpeg from an equivilant ty :D

mplayer should work fine and has here both times I tried it. sad to say though I really haven't had time to play with this much.

mfs_ftp_1.2.5.1 will extract tyx files, it just takes a minute to get started as the tar checksum & padding routines are barely past the proof of concept stage. (too many irons in the fire lately)

--
Riley

A.C.
04-11-2003, 04:53 PM
Anybody got any ideas about my video problem???

cwingert
04-11-2003, 05:35 PM
Sorry, not a Windows person.

Maybe a DirectX issue.



Originally posted by A.C.
Anybody got any ideas about my video problem???

Pete Ruttman
04-11-2003, 06:39 PM
Originally posted by A.C.
Anybody got any ideas about my video problem???

I can't get it to work on a T21 laptop which I believe was an S3 chipset but I would have to check. For this machine I get no video but do get audio.

pete

cwingert
04-11-2003, 10:57 PM
FWIW, I have run this program on a Trident Savage (on an Epia) on Linux.

I have also run this on a T22 under Cygwin.



Originally posted by Pete Ruttman
I can't get it to work on a T21 laptop which I believe was an S3 chipset but I would have to check. For this machine I get no video but do get audio.

pete

citivolus
04-13-2003, 11:35 PM
I'm having difficulty getting vserver to compile for my DTiVo S2. I successfully built the Mips cross-compiler environment for my Dragonlinux installation (Slackware-based). But when compiling vserver, it is failing to find the definition of __NR_readsectors and __NR_writesectors. I believe these are normally defined in unistd.h, but mine doesn't have them. Google knows nothing about it. any ideas?

alternatively, could someone post a Mips version of vserver?

thanks.

cwingert
04-14-2003, 09:54 AM
You also need to install the TiVo MIPS Linux kernel (which I assume is available from the TiVO website). This should have the appropriate unistd.h for the MIPS kernel.

HTH

BTW - Once you get it built. Could you send me a copy of the binary? I can then include it in the vserver release.

Thanks



Originally posted by citivolus
I'm having difficulty getting vserver to compile for my DTiVo S2. I successfully built the Mips cross-compiler environment for my Dragonlinux installation (Slackware-based). But when compiling vserver, it is failing to find the definition of __NR_readsectors and __NR_writesectors. I believe these are normally defined in unistd.h, but mine doesn't have them. Google knows nothing about it. any ideas?

alternatively, could someone post a Mips version of vserver?

thanks.

mrblack51
04-14-2003, 11:01 AM
attached is tridge's vserver compiled for mips. not sure if the vserver cwingert uses is different. if so, then i will try to compile that sometime.

could someone compile the the latest mplayer for cygwin? its going to be a pain to set up the cygwin compiler environment. i just want to test the s2 functionality

milhouse
04-14-2003, 03:25 PM
First of all...This thing is awsome.

I am thinking of writing a small shell script to get the list of "NowShowing" items and build a directory full of one line exicutables pointed at the different tivo streams. This way one could play a show from the tivo by simply pointing and clicking in a file browser.

I guess the other option would be via tivo web.

Where in the source is the formatting of the ty stream list. I have looked but I can't find it. I wanted to have it produce a list more suited to nameing the files, and stop it from chopping the names off.

Milhouse.

cwingert
04-14-2003, 04:35 PM
Gracias.

MPlayer*/vstream/vstream.c

I too was thinking of a GUI approach, as I am tired of typing fsids. My main goal is crossplatform, so I don't have to maintain source for different OSs.


Originally posted by milhouse
First of all...This thing is awsome.

I am thinking of writing a small shell script to get the list of "NowShowing" items and build a directory full of one line exicutables pointed at the different tivo streams. This way one could play a show from the tivo by simply pointing and clicking in a file browser.

I guess the other option would be via tivo web.

Where in the source is the formatting of the ty stream list. I have looked but I can't find it. I wanted to have it produce a list more suited to nameing the files, and stop it from chopping the names off.

Milhouse.

cwingert
04-14-2003, 04:37 PM
I mentioned this earlier in the thread, but...

If anyone is having cygwin/Windows problem. It is most likely NOT related to the changes that I have made to the mplayer source tree. They are most likely mplayer problems. There is a mailing list for cygwin mplayer users at the mplayer homepage.

http://www.mplayerhq.hu/homepage/

KRavEN
04-14-2003, 05:27 PM
Originally posted by cwingert
Gracias.

MPlayer*/vstream/vstream.c

I too was thinking of a GUI approach, as I am tired of typing fsids. My main goal is crossplatform, so I don't have to maintain source for different OSs.

There was a program a while back for windows called TiVoapp. It has a tcl script that outputs an xml file of the now showing contents. This night be helpfull for getting the info into a gui.

cwingert
04-14-2003, 05:42 PM
Getting the data is easy. I have a program called MythTIVo that I use with my MythTV boxes that I use as a front end to tivo-mplayer.

Getting a unified (cross platform) GUI is the hard part.

BTW - there is no reason that mplayer could not output a showing list in XML. It would only take about 5 minutes to code.



Originally posted by KRavEN
There was a program a while back for windows called TiVoapp. It has a tcl script that outputs an xml file of the now showing contents. This night be helpfull for getting the info into a gui.

cwingert
04-14-2003, 05:46 PM
Is up on the website. This version adds support for DirectTiVo S2 AC3 playback.

I believe that all known varients of TiVo streams are now supported by this version of mplayer.

If you have one that doesn't, I would appreciate an it if you could upload it to me (PM me).

Thanks

AlphaWolf
04-14-2003, 06:07 PM
Originally posted by KRavEN
There was a program a while back for windows called TiVoapp. It has a tcl script that outputs an xml file of the now showing contents. This night be helpfull for getting the info into a gui.

That ones a bit obsolete now, it would be of benefit to use olafs C based nowshowing program instead.

burriko
04-14-2003, 06:45 PM
i hacked up a gui in java for myself last week. It uses tyls (part of tystudio) to grab the listings.
I'll try and tidy it up a bit and make it available if you want. i hadn't mentioned it yet because it's a bit of a mess, although it works perfectly.

http://www.tait.nildram.co.uk/mplayergui.png

cwingert
04-14-2003, 06:48 PM
I wrote C based program for tystudio.


Originally posted by AlphaWolf
That ones a bit obsolete now, it would be of benefit to use olafs C based nowshowing program instead.

cwingert
04-14-2003, 06:49 PM
Thats definitely cross platform. I'd like to give it a whirl.


Originally posted by burriko
i hacked up a gui in java for myself last week. It uses tyls (part of tystudio) to grab the listings.
I'll try and tidy it up a bit and make it available if you want. i hadn't mentioned it yet because it's a bit of a mess, although it works perfectly.

http://www.tait.nildram.co.uk/mplayergui.png

AlphaWolf
04-14-2003, 06:55 PM
Originally posted by cwingert
I wrote C based program for tystudio.

Ah. Speaking of which, if XML is used, I think it would be good to paralell the layout with that of TMF files.

TheAvatar
04-14-2003, 07:03 PM
To quote Neo "Woah!"
You are such a tease only posting the picture, please post the app so we can all try it!

Please!!!



Originally posted by burriko
i hacked up a gui in java for myself last week. It uses tyls (part of tystudio) to grab the listings.
I'll try and tidy it up a bit and make it available if you want. i hadn't mentioned it yet because it's a bit of a mess, although it works perfectly.

http://www.tait.nildram.co.uk/mplayergui.png

burriko
04-14-2003, 07:17 PM
here's a link to the file (http://www.tait.nildram.co.uk/mplayerTivo.jar). i've only tried this under windows xp, so i'd be interested to hear how people with other OSs get on.

tyls and mplayer need to be in the command path.

plus tystudio's tivo-side software must be installed on your tivo in order to get the now showing listing.

Obviously you'll need some kind of Java Runtime Environment (http://java.sun.com/j2se/1.4.1/download.html) installed.
windows users with Java installed should be able to just double click the jar file.
other OSs? i've no idea.
typing the following should work though

java -jar mplayerTivo.jar

edit: the 16:9 options will probably only work on PAL video. i'll fix that later if anybody cares.

TheAvatar
04-14-2003, 07:27 PM
Hey! Have you tried using Mencoder to transcode the ty files into smaller streamable/WMA compatable file that could then be streamed from a cable modem over the internet..... :)





Originally posted by burriko
awesome! mencoder works as well as mplayer.

i just streamed a show to my pc and converted it to divx on the fly. it took about 1.5 mins to convert a 5 min show. the only problem is i didn't seem to convert the sound, just video. this is great for me, as i convert most of the shows that i extract to divx anway, so this'll greatly speed up the process!
now i've just got to work out how to use mencoder properly.

UPDATE: apparently audio worked fine, it's just that windows media player didn't like it. both mplayer and xbox media player play the audio perfectly.

burriko
04-14-2003, 07:36 PM
Originally posted by TheAvatar
Hey! Have you tried using Mencoder to transcode the ty files into smaller streamable/WMA compatable file that could then be streamed from a cable modem over the internet..... :)

no, but i can't see why it wouldn't work. you'd have to use a really low bitrate though so it would probably look nasty.

TheAvatar
04-14-2003, 07:38 PM
Okay, I have
JRE version 1.3.1_06 Java HotSpot(TM) Client VM
under win XP, I put your Java app in a folder w/ the Ty studio files and the mplayer files from YOUR installer Mplayer installer :)
When I run the Java app I get the GUI and I can slect a program but then I just get A Blank mplayer window... no video or sound... :(




Originally posted by burriko
here's a link to the file (http://www.tait.nildram.co.uk/mplayerTivo.jar). i've only tried this under windows xp, so i'd be interested to hear how people with other OSs get on.

tyls and mplayer need to be in the command path.

plus tystudio's tivo-side software must be installed on your tivo in order to get the now showing listing.

Obviously you'll need some kind of Java Runtime Environment (http://java.sun.com/j2se/1.4.1/download.html) installed.
windows users with Java installed should be able to just double click the jar file.
other OSs? i've no idea.
typing the following should work though

java -jar mplayerTivo.jar

edit: the 16:9 options will probably only work on PAL video. i'll fix that later if anybody cares.

burriko
04-14-2003, 07:46 PM
huh, my mplayer installer was never released? i guess you found it on my webspace :)

it sounds like you haven't used the tivo mplayer before, right? if so you'll need to install vserver on your tivo. read the first post in this thread for that.
if you've already installed vserver, then i've no idea.


Originally posted by TheAvatar
Okay, I have
JRE version 1.3.1_06 Java HotSpot(TM) Client VM
under win XP, I put your Java app in a folder w/ the Ty studio files and the mplayer files from YOUR installer Mplayer installer :)
When I run the Java app I get the GUI and I can slect a program but then I just get A Blank mplayer window... no video or sound... :(

TheAvatar
04-14-2003, 07:53 PM
No I used Mplayer before with success, the only thing that wouldn't work was getting lists (I think I have to change that .c file people talked about for Newshowing or something...) But I could get the FSID code from tystudio and Mplayer would stream fine. The only reason I used your installer (Nice, by the way!) was I was hoping you had the Java included. Sorry, i didn't realise you hadn't released it yet.... :(

Anyone else having luck w/ this app?

What should your Tivo's IP be aliased to? I have mine set to Tivo....

The Avatar



Originally posted by burriko
huh, my mplayer installer was never released? i guess you found it on my webspace :)

it sounds like you haven't used the tivo mplayer before, right? if so you'll need to install vserver on your tivo. read the first post in this thread for that.
if you've already installed vserver, then i've no idea.

burriko
04-14-2003, 08:01 PM
don't worry about the installer, it's just something i was playing with a couple of weeks ago. hence the build of mplayer is 2 weeks old, so a little out of date.

that's something i forgot to mention, your tivo's ip address needs to be in your hosts file as tivo. if you get a now showing listing then you have this set up correctly.

open a command prompt at the folder you've put all of this in, and try running mplayer from there. does it work?


Originally posted by TheAvatar
Anyone else having luck w/ this app?

What should your Tivo's IP be aliased to? I have mine set to Tivo....

The Avatar

TheAvatar
04-14-2003, 08:08 PM
Yes, Mplayer works fine from the tystudio folder if I run it from the CLI, and when I try to steam the same show with the Java app I geta black CLI window labled "C:\Program Files \tyStudio\mplayer.exe" Which is where all the files are, but nothing streams :(

burriko
04-14-2003, 08:14 PM
doh, what i really should have asked you to do is at the command prompt at your tystudio folder type the following

java -jar mplayerTivo.jar

you should then get all of the output from mplayer at the command prompt, which will hopefully tell you the problem.


Originally posted by TheAvatar
Yes, Mplayer works fine from the tystudio folder if I run it from the CLI, and when I try to steam the same show with the Java app I geta black CLI window labled "C:\Program Files \tyStudio\mplayer.exe" Which is where all the files are, but nothing streams :(

TheAvatar
04-14-2003, 08:19 PM
Very interesting..... Looks like it's trying to stream, but getting confused for some reason... maybe the fullscreen / aspect raitio settings/....?
Microsoft Windows XP [Version 5.1.2600]
(C) Copyright 1985-2001 Microsoft Corp.

C:\Documents and Settings\sean>cd..

C:\Documents and Settings>cd..

C:\>cd windows

C:\WINDOWS>cd program files
The system cannot find the path specified.

C:\WINDOWS>cd..

C:\>cd program files

C:\Program Files>cd tystudio

C:\Program Files\tyStudio>java -jar mplayerTivo.jar
-cache 16384 -vop field tivo://tivo/2114043
Using GNU internationalization
Original domain: messages
Original dirname: /usr/share/locale
Current domain: mplayer
Current dirname: /usr/local/share/locale


MPlayer 0.90rc4-3.2 (C) 2000-2003 Arpad Gereoffy (see DOCS)

CPU: Advanced Micro Devices Athlon TB Thunderbird (Family: 6, Stepping: 2)
Detected cache-line size is 64 bytes
CPUflags: MMX: 1 MMX2: 1 3DNow: 0 3DNow2: 0 SSE: 0 SSE2: 0
Compiled for x86 CPU with extensions: MMX MMX2 SSE

Reading config file /usr/local/etc/mplayer/mplayer.confReading config file /home
/sean/.mplayer/config
Reading /home/sean/.mplayer/codecs.conf: Reading /usr/local/etc/mplayer/codecs.c
onf: Using built-in default codecs.conf
font: can't open file: /home/sean/.mplayer/font/font.desc
font: can't open file: /usr/local/share/mplayer/font/font.desc
Using usleep() timing

Playing tivo://tivo/2114043
Starting to stream from a TiVo tivo file 2114043
Cache size set to 16384 KBytes
Connected to server: tivo

Cache fill: 0.00% (0 bytes)
Cache fill: 0.00% (0 bytes)
Cache fill: 0.00% (0 bytes)
Cache fill: 0.00% (0 bytes)
Cache fill: 0.00% (0 bytes)
Cache fill: 0.00% (0 bytes)
Cache fill: 0.00% (0 bytes)
Cache fill: 0.00% (0 bytes)
Cache fill: 0.00% (0 bytes)
Cache fill: 0.00% (0 bytes)
Cache fill: 0.00% (0 bytes)
Cache fill: 0.00% (0 bytes)
Cache fill: 0.00% (0 bytes)
Cache fill: 0.00% (0 bytes)
Cache fill: 0.00% (0 bytes)
Cache fill: 0.00% (0 bytes)
Cache fill: 0.00% (0 bytes)
Cache fill: 0.00% (0 bytes)
Cache fill: 0.00% (0 bytes)
Cache fill: 0.00% (0 bytes)
Cache fill: 0.00% (0 bytes)
Cache fill: 0.00% (0 bytes)
Cache fill: 0.00% (0 bytes)
Cache fill: 0.00% (0 bytes)
Cache fill: 0.00% (0 bytes)
Cache fill: 0.00% (0 bytes)
Cache fill: 0.00% (0 bytes)
Cache fill: 0.00% (0 bytes)
Cache fill: 0.00% (0 bytes)
Cache fill: 3.12% (524288 bytes)
Cache fill: 3.12% (524288 bytes)
Cache fill: 6.25% (1048576 bytes)
Cache fill: 6.25% (1048576 bytes)
Cache fill: 6.25% (1048576 bytes)
Cache fill: 9.38% (1572864 bytes)
Cache fill: 9.38% (1572864 bytes)
Cache fill: 9.38% (1572864 bytes)
Cache fill: 12.50% (2097152 bytes)
Cache fill: 12.50% (2097152 bytes)
Cache fill: 12.50% (2097152 bytes)
Cache fill: 15.62% (2621440 bytes)
Cache fill: 15.62% (2621440 bytes)
Cache fill: 18.75% (3145728 bytes)
Cache fill: 18.75% (3145728 bytes)
Cache fill: 18.75% (3145728 bytes) TiVo file format detected.
VIDEO: MPEG2 480x480 (aspect 2) 29.97 fps 4375.0 kbps (546.9 kbyte/s)
==========================================================================
Opening audio decoder: [mp3lib] MPEG layer-2, layer-3
MP3lib: init layer2&3 finished, tables done
AUDIO: 32000 Hz, 2 ch, 16 bit (0x10), ratio: 24000->128000 (192.0 kbit)
Selected audio codec: [mp3] afm:mp3lib (mp3lib MPEG layer-2, layer-3)
==========================================================================
Opening video filter: [field]
==========================================================================
Opening video decoder: [mpegpes] MPEG 1/2 Video passthrough
VDec: vo config request - 480 x 480 (preferred csp: Mpeg PES)
Could not find matching colorspace - retrying with -vop scale...
Opening video filter: [scale]

TheAvatar
04-14-2003, 08:22 PM
If I run Mplayer by hand I get....


C:\Program Files\tyStudio>mplayer tivo://tivo/2114040
Using GNU internationalization
Original domain: messages
Original dirname: /usr/share/locale
Current domain: mplayer
Current dirname: /usr/local/share/locale


MPlayer 0.90rc4-3.2 (C) 2000-2003 Arpad Gereoffy (see DOCS)

CPU: Advanced Micro Devices Athlon TB Thunderbird (Family: 6, Stepping: 2)
Detected cache-line size is 64 bytes
3DNow supported but disabled
3DNowExt supported but disabled
CPUflags: MMX: 1 MMX2: 1 3DNow: 0 3DNow2: 0 SSE: 0 SSE2: 0
Compiled for x86 CPU with extensions: MMX MMX2 SSE

Reading config file /usr/local/etc/mplayer/mplayer.conf: No such file or directo
ry
Reading config file /home/sean/.mplayer/config
Reading /home/sean/.mplayer/codecs.conf: can't open '/home/sean/.mplayer/codecs.
conf': No such file or directory
Reading /usr/local/etc/mplayer/codecs.conf: can't open '/usr/local/etc/mplayer/c
odecs.conf': No such file or directory
Using built-in default codecs.conf
font: can't open file: /home/sean/.mplayer/font/font.desc
font: can't open file: /usr/local/share/mplayer/font/font.desc
Using usleep() timing
Can't open input config file /home/sean/.mplayer/input.conf : No such file or di
rectory
Can't open input config file /usr/local/etc/mplayer/input.conf : No such file or
directory
Falling back on default (hardcoded) input config

Playing tivo://tivo/2114040
Starting to stream from a TiVo tivo file 2114040
Cache size set to 640 KBytes
Connected to server: tivo
Cache fill: 0.00% (0 bytes) TiVo file format detected.
VIDEO: MPEG2 480x480 (aspect 2) 29.97 fps 4375.0 kbps (546.9 kbyte/s)
==========================================================================
Opening audio decoder: [mp3lib] MPEG layer-2, layer-3
MP3lib: init layer2&3 finished, tables done
AUDIO: 32000 Hz, 2 ch, 16 bit (0x10), ratio: 24000->128000 (192.0 kbit)
Selected audio codec: [mp3] afm:mp3lib (mp3lib MPEG layer-2, layer-3)
==========================================================================
==========================================================================
Opening video decoder: [mpegpes] MPEG 1/2 Video passthrough
VDec: vo config request - 480 x 480 (preferred csp: Mpeg PES)
Could not find matching colorspace - retrying with -vop scale...
Opening video filter: [scale]
The selected video_out device is incompatible with this codec.
VDecoder init failed :(
Opening video decoder: [libmpeg2] MPEG 1/2 Video decoder v2.0
libmpeg2: Using MMXEXT for IDCT transform
libmpeg2: Using MMXEXT for motion compensation
VDec: vo config request - 480 x 480 (preferred csp: Planar YV12)
VDec: using Planar YV12 as output csp (no 0)
Movie-Aspect is 1.33:1 - prescaling to correct movie aspect.
VO: [directx] 480x480 => 640x480 Planar YV12
Selected video codec: [mpeg12] vfm:libmpeg2 (MPEG 1 or 2 (libmpeg2))
==========================================================================
Checking audio filter chain for 32000Hz/2ch/16bit -> 32000Hz/2ch/16bit...
AF_pre: af format: 2 bps, 2 ch, 32000 hz, little endian signed int
AF_pre: 32000Hz 2ch Signed 16-bit (Little-Endian)
AO: [win32] 32000Hz 2ch Signed 16-bit (Little-Endian) (2 bps)
Building audio filter chain for 32000Hz/2ch/16bit -> 32000Hz/2ch/16bit...
Starting playback...
A: 3.5 V: 4.0 A-V: -0.425 ct: -0.026 61/ 61 16% 1% 1.2% 0 0 12%



MPlayer interrupted by signal 2 in module: sleep_usleepMPlayer interrupted by si
gnal 2 in module: enable_cache
C:\Program Files\tyStudio>

burriko
04-14-2003, 08:31 PM
very strange.
the only difference between the command that you ran and the command that the GUI ran is that the gui set's the cache to be larger, and set's a deinterlace filter.

maybe try turning off deinterlace in the gui.


Originally posted by TheAvatar
If I run Mplayer by hand I get....

TheAvatar
04-14-2003, 08:44 PM
hmmm... Even w/ the de-interlace set off the cache size remains that size! Odd...

I think it's the cache size, If I run it by hand with that cache size it crashed too (Althog it crashes differently :) )

burriko
04-14-2003, 08:49 PM
strange, i really didn't suspect that the cache size would have any effect.
i'll probably add a cache option tomorrow then. but now i'm going to bed :)


Originally posted by TheAvatar
hmmm... Even w/ the de-interlace set off the cache size remains that size! Odd...

I think it's the cache size, If I run it by hand with that cache size it crashed too (Althog it crashes differently :) )

cwingert
04-14-2003, 10:39 PM
Can you post the source to the applet?


Originally posted by burriko
strange, i really didn't suspect that the cache size would have any effect.
i'll probably add a cache option tomorrow then. but now i'm going to bed :)

FreydNot
04-15-2003, 02:03 AM
Originally posted by TheAvatar
Yes, Mplayer works fine from the tystudio folder if I run it from the CLI, and when I try to steam the same show with the Java app I geta black CLI window labled "C:\Program Files \tyStudio\mplayer.exe" Which is where all the files are, but nothing streams :(

Is that an extra space after "Program Files"? That could be the problem if you did a copy and paist.

burriko
04-15-2003, 05:37 AM
here you go

sources (http://www.tait.nildram.co.uk/mplayerTivo-src.rar)

it's not an applet btw, at least not in the Java sense of the word.

I haven't tidied it up, and a good deal of the GUI code is generated by Jbuilder (yuk, but it makes building GUIs easy. i wrote the rest of it in eclipse) so it's not pretty.
I want to get rid of the dependency on tyls, and just connect to vserver to get the listing, but i can't find any docs on it explaining which port it runs on and what commands are needed to get the listing etc.

have you actually got this running under linux then?


Originally posted by cwingert
Can you post the source to the applet?

tlphipps
04-15-2003, 11:06 AM
Ok, I installed burriko's java app (great idea btw), but i've got a problem.

When attempting to use it, I click the play button and everything just sits there. Nothing appears to happen.

So.....I followed burriko's directions and ran it from the commandline with java -jar mplayerTivo.jar, and here's what I'm getting:

(shortened of course..)

Reading config file /usr/local/etc/mplayer/mplayer.confReading config file /cygd
rive/c/Documents and Settings/Travis/.mplayer/config
Reading /cygdrive/c/Documents and Settings/Travis/.mplayer/codecs.conf: Reading
/usr/local/etc/mplayer/codecs.conf: Using built-in default codecs.conf
font: can't open file: /cygdrive/c/Documents and Settings/Travis/.mplayer/font/f
ont.desc
font: can't open file: /usr/local/share/mplayer/font/font.desc
Using usleep() timing

I can manually run mplayer with the same cache and de-interlace settings without any problems. I think I have a vague idea what's going on, but i'm not sure.

Anybody have a clue?

cwingert
04-15-2003, 05:26 PM
Are people who have problems with the app running on Windows or Unux?

If, Unix, it may be related to the DISPLAY environment variable.

Just a guess.


Originally posted by tlphipps
Ok, I installed burriko's java app (great idea btw), but i've got a problem.

When attempting to use it, I click the play button and everything just sits there. Nothing appears to happen.

So.....I followed burriko's directions and ran it from the commandline with java -jar mplayerTivo.jar, and here's what I'm getting:

(shortened of course..)

Reading config file /usr/local/etc/mplayer/mplayer.confReading config file /cygd
rive/c/Documents and Settings/Travis/.mplayer/config
Reading /cygdrive/c/Documents and Settings/Travis/.mplayer/codecs.conf: Reading
/usr/local/etc/mplayer/codecs.conf: Using built-in default codecs.conf
font: can't open file: /cygdrive/c/Documents and Settings/Travis/.mplayer/font/f
ont.desc
font: can't open file: /usr/local/share/mplayer/font/font.desc
Using usleep() timing

I can manually run mplayer with the same cache and de-interlace settings without any problems. I think I have a vague idea what's going on, but i'm not sure.

Anybody have a clue?

swinokur
04-15-2003, 05:46 PM
Hi,

I've been playing with building the latest version under cygwin. I've gotten it to build, but the new build exhibits the same behavior that I've seen with other builds - which leads to some questions:

I've gotten SDL to build fine under cygwin. the test software for SDL executes fine (draws windows, has graphics that move, and so forth).

When trying to run mplayer with -vo sdl, I get the following:

Starting playback...
VDec: vo config request - 704 x 480 (preferred csp: Planar YV12)
VDec: using Planar YV12 as output csp (no 0)
Movie-Aspect is 1.33:1 - prescaling to correct movie aspect.
VO: [sdl] 704x480 => 704x528 Planar YV12


MPlayer interrupted by signal 11 in module: decode_video

The reason why I'm trying to use SDL is that the playback from the tivo has some odd behavior. If you are watching something with a smooth motion (e.g. credits), the credits run smooth for a moment, then take a pause, and that repeats. (This is with or without the framedrop option, and with or without the cache option).

I also get the "your system is too slow to play this" message while streaming.

I can play back local MPEG-2 Transport streams (the only files I currently have on the machine) just fine, so I'm wondering if this might be a networking issue, a tivo streaming issue, or a 3:2 pulldown issue.

If anyone has some tricks to try let me know, I've spent a reasonable amount of time looking at the mplayer man pages and documentation - but I suspect there are tricks to try with the directx driver that aren't documented.

thanks!

TheAvatar
04-15-2003, 06:12 PM
I'm trying to get the Java app to run under Win XP Pro on an Athalon 1.2 GHZ machine


Originally posted by cwingert
Are people who have problems with the app running on Windows or Unux?

If, Unix, it may be related to the DISPLAY environment variable.

Just a guess.

Torg
04-15-2003, 11:15 PM
TheAvatar,

Check to see what version of jre you are running. You can do this with a "java -version" command. If you have anything but a 1.4 version, update it.

From a previous post you indicated you were using 1.3. It is old. I do not have enough space here to list all the bugs it fixed. Look at http://java.sun.com. What you want is the j2se merlin core. It is listed as j2se 1.4.1. I would suggest you stay away from the 1.4.2.

tlphipps
04-16-2003, 12:06 AM
Are people who have problems with the app running on Windows or Unux?

sorry for not saying this in the original post....

Windows XP SP1, Athlon 2000+, 512MB SDRAM
java version "1.4.1_02"
Java(TM) 2 Runtime Environment, Standard Edition (build 1.4.1_02-b06)
Java HotSpot(TM) Client VM (build 1.4.1_02-b06, mixed mode)

fwiw, I'm using the precompiled binary that I downloaded from the sourceforge site. I'm not sure if that will make a difference or not.

TheAvatar
04-16-2003, 12:24 AM
Hey! I finally got it to work!!!!
I had to modify the MplayerFrame.java file to add a "-vc mpeg12" option before the filename, this forces Mplayer to use The MPEG2 codec which actually works for these tyfiles (I noticed if got stuck trying an alternat Mpeg2 codec and never moved one to the right one like it does when I run it by hand). For some reason I can't get the full screen option to work......


I'll try updating my Java and see if the orignal file works





Originally posted by TheAvatar
I'm trying to get the Java app to run under Win XP Pro on an Athalon 1.2 GHZ machine

burriko
04-16-2003, 08:22 AM
weird. i have no idea why that would happen. and i've no idea why the fullscreen option doesn't work for you (although it might be related to the changes you made to the source) btw, you can just press f to make mplayer fullscreen if you didn't already know.

if mplayer works fine from the command line without the -vc mpeg12 option, why would the java front-end need it? all it's doing is executing a command in the same way that you do from the command line. it's really not doing anything special at all.

plus you said that running mplayer with the cache size set to 16MB crashes for you, even from the command prompt. that suggests that something funky is going on with your version of mplayer or perhaps your network?

i don't know much about mplayer, so i can't really be of any help.

it works fine under Java 1.3 for me btw.


Originally posted by TheAvatar
Hey! I finally got it to work!!!!
I had to modify the MplayerFrame.java file to add a "-vc mpeg12" option before the filename, this forces Mplayer to use The MPEG2 codec which actually works for these tyfiles (I noticed if got stuck trying an alternat Mpeg2 codec and never moved one to the right one like it does when I run it by hand). For some reason I can't get the full screen option to work......


I'll try updating my Java and see if the orignal file works

burriko
04-16-2003, 08:33 AM
Is that as far as it gets?

i don't think it should matter that it can't read it's config, codec.conf and font files. from messing around with mplayer it seems to work fine without them for me. although it should really be able to find them if you have it set up correctly.

you say you have a vague idea, but you don't mention what?


Originally posted by tlphipps
I'm getting:

(shortened of course..)

Reading config file /usr/local/etc/mplayer/mplayer.confReading config file /cygd
rive/c/Documents and Settings/Travis/.mplayer/config
Reading /cygdrive/c/Documents and Settings/Travis/.mplayer/codecs.conf: Reading
/usr/local/etc/mplayer/codecs.conf: Using built-in default codecs.conf
font: can't open file: /cygdrive/c/Documents and Settings/Travis/.mplayer/font/f
ont.desc
font: can't open file: /usr/local/share/mplayer/font/font.desc
Using usleep() timing

I can manually run mplayer with the same cache and de-interlace settings without any problems. I think I have a vague idea what's going on, but i'm not sure.

Anybody have a clue?

tlphipps
04-16-2003, 11:59 AM
sorry I didn't finish that thought. My vague idea was inregards to it not finding the config files and such. I wasn't sure if that was because I was running the precompiled binary and hadn't built it from the source.

I think once I get a chance I'll try building it myself and see what results I get.

Can anyone confirm that this java app does or does not work with the precompiled binary?

Torg
04-16-2003, 12:51 PM
Yes I can confirm what the java app does. I am sure burriko can do this as well.

All it does is provide a frontend (that is a program that launches other programs) for mplayer. I uses parts of tystudio (tyls to be exact), so you need to have that running as well. As for mplayer it just launches it.

The only thing hardcoded into the launch is a chache set to 16K, as well as using tivo as the name of your tivo (i.e. it better resolve to a real IP address). Other then that it has a few options ofor the video. If you can run the command.

mplayer -cache 16384 -vop field tivo://tivo/{fsid}

so can the java mplayerTivo.jar.

cwingert
04-16-2003, 05:33 PM
I have coded up a version of mplayerGUI that solely uses mplayer for the Now Showing list. I'll post it later tonight.

cwingert
04-16-2003, 07:12 PM
I posted a new version of TiVo Mplayer and a version of Burriko's GUI that does not depend on tystudio. Please note that you MUST upgrade to this version of mplayer to use the java GUI.

I also made a couple of changes to the GUI. A bigger windows and the addition of a parameter to the command line to allow retrieval from different TiVos (or ip addresses).

# to use tivo as the hostname
java -jar mplayerGUI.jar
# to use tivo2 as the hostname
java -jar mplayerGUI.jar tivo2
# to use 192.168.1.101 as the host
java -jar mplayerGUI.jar 192.168.1.101

http://tivo-mplayer.sf.net
MPlayer-20030408-tivo-0.5.tar.gz
mplayerGUI-1.0.tar.gz

Torg
04-16-2003, 09:06 PM
First there is a typo in the source code. In nowShowing.java, you put

exec = "mplayer tivo://" + whichTivo + "/llist";

You meant

exec = "mplayer tivo://" + whichTivo + "/list";

I repacked the class files and it still does not parse any output. The sniffer does show it is getting the information from the Tivo.

cwingert
04-16-2003, 09:42 PM
No, that is not a typo.

Like I said you need the latest version of MPlayer.

Please upgrade your mplayer. As I stated in the release message.


Originally posted by Torg
First there is a typo in the source code. In nowShowing.java, you put

exec = "mplayer tivo://" + whichTivo + "/llist";

You meant

exec = "mplayer tivo://" + whichTivo + "/list";

I repacked the class files and it still does not parse any output. The sniffer does show it is getting the information from the Tivo.