![]() |
![]() |
|
|
Compare Products, Prices & Stores For: COMPUTERS, COMPONENTS, COMPUTER ACCESSORIES, COMPUTER MEMORY, HARDWARE, INPUT DEVICES, NETWORKING, PDAs & MOBILE ELECTRONICS, SOFTWARE, STORAGE & MEDIA, DIGITAL CAMERAS, HOME AUDIO, TV& VIDEO |
|
|
|
|
#1
|
|||
|
|||
|
ty enabled mplayer [beta test]
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...ivo-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 Last edited by cwingert; 03-28-2003 at 10:39 AM. |
|
#2
|
|||
|
|||
|
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. Code:
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'
|
|
#3
|
|||
|
|||
|
Thanks for the reply.
Can you drop the following mfs.h in your vstream directory and try the compile again? Thanks |
|
#4
|
|||
|
|||
|
put that file in and it's fixed those errors, but has created a bunch of new errors.
here's the output Code:
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 |
|
#5
|
|||
|
|||
|
Nice project. This could develop into some very nice solutions.
|
|
#6
|
|||
|
|||
|
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. |
|
#7
|
|||
|
|||
|
Here is another mfs.h. Please try this one.
If it doesn't work, I'll download cygwin and give it a whirl. |
|
#8
|
|||
|
|||
|
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. Quote:
|
|
#9
|
|||
|
|||
|
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 Code:
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 |
|
#10
|
|||
|
|||
|
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. Quote:
|
|
#11
|
|||
|
|||
|
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.
|
|
#12
|
|||
|
|||
|
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? Code:
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
|
|
#13
|
|||
|
|||
|
I uploaded a new version to fix the syscall issue.
Could you give it a whirl? Thanks http://tivo-mplayer.sf.net/MPlayer-0...ivo-0.2.tar.gz Last edited by cwingert; 03-28-2003 at 10:40 AM. |
|
#14
|
|||
|
|||
|
it compiled perfectly!
tried it on a small local ty file and it worked straight away wow, i'm really impressed.now to try streaming from the tivo ![]() thank you. |
|
#15
|
|||
|
|||
|
I just compiled it too. Works very cool.
Its nice to be cross platform so easily. |
![]() |
| Thread Tools | |
| Display Modes | Rate This Thread |
|
|