Results 1 to 1 of 1

Thread: Spook runs on wl500gx! RTSP, HTTP cam streams.

  1. #1

    Spook runs on wl500gx! RTSP, HTTP cam streams.

    Hi,

    I'm a friend of Alexei's at Raylab here in East London.

    Last night we successfully compiled and tested Spook, an open source video streaming package, with the ASUS WL-500gx.

    We used the ASUS supplied toolchain to build it for Oleg's firmware.

    With this we're able to run multipart JPEG streams, JPEG stills, and RTSP streams from the ASUS box acting as a server. We tested this with mplayer on Gentoo, and with VLC and Quicktime on Windows.

    Configuration of spook is quite easy. Because we're using a Phillips webcam under Video4Linux which doesn't allow you to specify the frame rate, Spook has to guess, so a small patch is needed to force the RTSP stream initialization to wait until the frame rate is known.

    We use an ov518 based webcam.

    The configuration options you need for building Spook for the ASUS look like this, assuming you have the Asus code untarred into your home directory with a shell script, and /opt/brcm/hndtools-mipsel-uclibc/bin in your $PATH:
    Code:
    %%%
    #!/bin/sh
    
    export CPPFLAGS="-I$HOME/Asus/broadcom/opt/brcm/hndtools-mipsel-uclibc-3.2.3/mipsel-linux/include -I$HOME/Asus/broadcom/src/gateway/jpeg-6b"
    export LDFLAGS="-L$HOME/Asus/broadcom/src/gateway/jpeg-6b"
    export CFLAGS="$CPPFLAGS $LDFLAGS"
    
    ./configure --host=mipsel-uclibc-linux --enable-static --disable-shared --with-kernel-source=$HOME/Asus/broadcom/src/linux/linux
    %%%
    
    The patch for RTSP with a Linux USB webcam in 'FrameRate auto' mode looks like this:
    
    %%%
    -- rtp-jpeg.c.bak      2005-09-01 00:52:15.000000000 +0100
    +++ rtp-jpeg.c  2005-09-01 00:57:14.000000000 +0100
    @@ -293,9 +293,21 @@
     struct rtp_media *new_rtp_media_jpeg_stream( struct stream *stream )
     {
            struct rtp_jpeg *out;
    -       int fincr, fbase;
    +       int fincr, fbase, first;
    +
    +       /* XXX: bms: hack to force rtp init to wait for frame rate calculations */
    +       fincr = 0;
    +       fbase = 0;
    +       first = 0;
    +       for (;;) {
    +               stream->get_framerate( stream, &fincr, &fbase );
    +               if (fincr != 0)
    +                       break;
    +               if (first++ == 0)
    +                       spook_log( SL_WARN, "waiting for framerate calculation in jpeg rtp init");
    +               sleep(1);
    +       }
    
    -       stream->get_framerate( stream, &fincr, &fbase );
            out = (struct rtp_jpeg *)malloc( sizeof( struct rtp_jpeg ) );
            out->init_done = 0;
            out->timestamp = 0;
    %%%
    We can't wait until OpenEmbedded is working properly on the Asus. Whilst we've done some initial hacks to build images using OE, they do not boot properly as they have problems with the root filesystem layout not being writable; we think we need to build a squashfs plus jffs2 like OpenWRT does -- we tried using the wrt54oe configs and with some additional hacking to build ASUS compatible images.
    We got a kernel and loader running OK, though.

    Happy media hacking with your Asus!
    Last edited by Styno; 02-09-2005 at 08:27.

Similar Threads

  1. Replies: 2
    Last Post: 16-03-2005, 16:58
  2. How to test http/ftp performance
    By ghaspias in forum WL-500g Q&A
    Replies: 3
    Last Post: 13-12-2004, 04:05

Posting Permissions

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