Page 1 of 68 1231151 ... LastLast
Results 1 to 15 of 1015

Thread: ty enabled mplayer [beta test]

  1. #1
    Join Date
    Jul 2001
    Posts
    275

    ty enabled mplayer [beta test]

    ==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...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. #2
    Join Date
    Mar 2003
    Location
    Durham, UK
    Posts
    127
    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. #3
    Join Date
    Jul 2001
    Posts
    275
    Thanks for the reply.

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

    Thanks
    Attached Files Attached Files

  4. #4
    Join Date
    Mar 2003
    Location
    Durham, UK
    Posts
    127
    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. #5
    Join Date
    Mar 2002
    Posts
    290
    Nice project. This could develop into some very nice solutions.

  6. #6
    Join Date
    Mar 2003
    Posts
    22
    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. #7
    Join Date
    Jul 2001
    Posts
    275
    Here is another mfs.h. Please try this one.

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

  8. #8
    Join Date
    Jul 2001
    Posts
    275
    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.

  9. #9
    Join Date
    Mar 2003
    Location
    Durham, UK
    Posts
    127
    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. #10
    Join Date
    Jul 2001
    Posts
    275
    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

    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

  11. #11
    Join Date
    Mar 2003
    Posts
    22
    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. #12
    Join Date
    Mar 2003
    Location
    Durham, UK
    Posts
    127
    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. #13
    Join Date
    Jul 2001
    Posts
    275
    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. #14
    Join Date
    Mar 2003
    Location
    Durham, UK
    Posts
    127
    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. #15
    Join Date
    Jul 2001
    Posts
    275
    I just compiled it too. Works very cool.

    Its nice to be cross platform so easily.

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •