Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 16 Mar 1998 16:31:28 -0500
From:      "Alfred Perlstein" <perlsta@cs.sunyit.edu>
To:        <multimedia@FreeBSD.ORG>
Subject:   real audio encoder?
Message-ID:  <00a101bd5122$e40df5e0$0600a8c0@win95.local.sunyit.edu>

next in thread | raw e-mail | index | archive | help
has anyone had success using the realaudio linux 3.0 encoder to do live
streaming on freebsd?
it seems that the freebsd binary doesn't support it live streaming... so
i've been messing with the linux version...

the linux emu didn't support SOUND_MIXER_WRITE_RECSRC so i messed with the
linux-emu and added hooks for the ioctls it uses, it seems that everything
according to KTRACE is fine... but some huristics in the program prevent it
from working.

all the ioctls are successful and nothing seems to return an error code, but
it still exits with:
    raencoder: Error encountered: Cannot open audio device.

all my linux emu-code does it setup a wrapper for SOUND_MIXER_WRITE_RECSRC,
the implementation seems to be the same under freebsd as linux...

if someone could explain a bit what the third argument to the ioctl is that
would be great.

any ideas/hints?

-Alfred

below, KTRACE after adding the linux emu code... the encoder is wrapped in a
shell script

  1772 ktrace   RET   ktrace 0
  1772 ktrace   CALL  execve(0xefbfdc5b,0xefbfdbdc,0xefbfdbe4)
  1772 ktrace   NAMI  "./ra.sh"
  1772 ktrace   NAMI  "/bin/sh"
  1772 sh       RET   execve 0
  1772 sh       CALL  getpid
  1772 sh       RET   getpid 1772/0x6ec
  1772 sh       CALL  geteuid
  1772 sh       RET   geteuid 1000/0x3e8
  1772 sh       CALL  readlink(0x4c15c,0xefbfdae8,0x3f)
  1772 sh       NAMI  "/etc/malloc.conf"
  1772 sh       RET   readlink -1 errno 2 No such file or directory
  1772 sh       CALL  mmap(0,0x1000,0x3,0x1002,0xffffffff,0,0,0)
  1772 sh       RET   mmap 163917824/0x9c53000
  1772 sh       CALL  break(0x60000)
  1772 sh       RET   break 0
  1772 sh       CALL  break(0x61000)
  1772 sh       RET   break 0
  1772 sh       CALL  getuid
  1772 sh       RET   getuid 1000/0x3e8
  1772 sh       CALL  geteuid
  1772 sh       RET   geteuid 1000/0x3e8
  1772 sh       CALL  getgid
  1772 sh       RET   getgid 1000/0x3e8
  1772 sh       CALL  getegid
  1772 sh       RET   getegid 1000/0x3e8
  1772 sh       CALL  open(0xefbfdc58,0,0x300)
  1772 sh       NAMI  "./ra.sh"
  1772 sh       RET   open 3
  1772 sh       CALL  fcntl(0x3,0,0xa)
  1772 sh       RET   fcntl 10/0xa
  1772 sh       CALL  close(0x3)
  1772 sh       RET   close 0
  1772 sh       CALL  fcntl(0xa,0x2,0x1)
  1772 sh       RET   fcntl 0
  1772 sh       CALL  break(0x62000)
  1772 sh       RET   break 0
  1772 sh       CALL  sigaction(0xc,0xefbfdaf8,0xefbfdaec)
  1772 sh       RET   sigaction 0
  1772 sh       CALL  __getcwd(0x61000,0x3fc)
  1772 sh       RET   __getcwd 0
  1772 sh       CALL  sigaction(0xc,0xefbfdaec,0)
  1772 sh       RET   sigaction 0
  1772 sh       CALL  read(0xa,0x5d160,0x3ff)
  1772 sh       GIO   fd 10 read 79 bytes
       "#!/bin/sh

 ./raencoder -W rotten -H 150.156.210.241 -o mine.ra -l line -L
       "
  1772 sh       RET   read 79/0x4f
  1772 sh       CALL  break(0x63000)
  1772 sh       RET   break 0
  1772 sh       CALL  fork
  1772 sh       RET   fork 1773/0x6ed
  1772 sh       CALL  getpgrp
  1772 sh       RET   getpgrp 1772/0x6ec
  1772 sh       CALL  wait4(0xffffffff,0xefbfda78,0x2,0)
  1772 sh       CSW  stop kernel
  1773 sh       RET   fork 0
  1773 sh       CALL  close(0xa)
  1773 sh       RET   close 0
  1773 sh       CALL  break(0x64000)
  1773 sh       RET   break 0
  1773 sh       CALL  execve(0x5c350,0x5c3ec,0x63004)
  1773 sh       NAMI  "./raencoder"
  1773 raencoder RET   execve 0
  1773 raencoder CALL  ktrace(0)
  1773 raencoder RET   ktrace 933888/0xe4000
  1773 raencoder CALL  ktrace(0xe7000)
  1773 raencoder RET   ktrace 946176/0xe7000
  1773 raencoder CALL  ktrace(0xe8000)
  1773 raencoder RET   ktrace 950272/0xe8000
  1773 raencoder CALL  ktrace(0xe9000)
  1773 raencoder RET   ktrace 954368/0xe9000
  1773 raencoder CALL  ktrace(0xea000)
  1773 raencoder RET   ktrace 958464/0xea000
  1773 raencoder CALL  ktrace(0xeb000)
  1773 raencoder RET   ktrace 962560/0xeb000
  1773 raencoder CALL  ktrace(0xec000)
  1773 raencoder RET   ktrace 966656/0xec000
  1773 raencoder CALL  ktrace(0xed000)
  1773 raencoder RET   ktrace 970752/0xed000
  1773 raencoder CALL  ktrace(0xee000)
  1773 raencoder RET   ktrace 974848/0xee000
  1773 raencoder CALL  ktrace(0xef000)
  1773 raencoder RET   ktrace 978944/0xef000
  1773 raencoder CALL  listen(0xefbfd460,0xefbfd420)
  1773 raencoder NAMI  "/compat/linux/etc/locale/C/libc.cat"
  1773 raencoder NAMI  "/etc/locale/C/libc.cat"
  1773 raencoder RET   listen JUSTRETURN
  1773 raencoder CALL  listen(0xefbfd460,0xefbfd420)
  1773 raencoder NAMI  "/compat/linux/usr/lib/locale/C/libc.cat"
  1773 raencoder NAMI  "/usr/lib/locale/C/libc.cat"
  1773 raencoder RET   listen JUSTRETURN
  1773 raencoder CALL  listen(0xefbfd460,0xefbfd420)
  1773 raencoder NAMI
"/compat/linux/usr/lib/locale/libc/C/usr/share/locale/C/libc.cat"
  1773 raencoder NAMI  "/usr/lib/locale/libc/C/usr/share/locale/C/libc.cat"
  1773 raencoder RET   listen JUSTRETURN
  1773 raencoder CALL  listen(0xefbfd460,0xefbfd420)
  1773 raencoder NAMI  "/compat/linux/usr/local/share/locale/C/libc.cat"
  1773 raencoder NAMI  "/usr/local/share/locale/C/libc.cat"
  1773 raencoder RET   listen JUSTRETURN
  1773 raencoder CALL  ioctl(0,0x5401 ,0xefbfd864)
  1773 raencoder RET   ioctl 0
  1773 raencoder CALL  ioctl(0,0x5401 ,0xefbfd8a4)
  1773 raencoder RET   ioctl 0
  1773 raencoder CALL  ioctl(0,0x5404 ,0xefbfd8a4)
  1773 raencoder RET   ioctl 0
  1773 raencoder CALL  obs_vread(0x3,0xefbfd874,0xefbfd864)
  1773 raencoder RET   obs_vread 0
  1773 raencoder CALL  obs_vread(0x7,0xefbfd874,0xefbfd864)
  1773 raencoder RET   obs_vread 0
  1773 raencoder CALL  obs_vread(0x2,0xefbfd874,0xefbfd864)
  1773 raencoder RET   obs_vread 0
  1773 raencoder CALL  obs_vread(0x11,0xefbfd874,0xefbfd864)
  1773 raencoder RET   obs_vread 0
  1773 raencoder CALL  obs_vread(0xd,0xefbfd874,0xefbfd864)
  1773 raencoder RET   obs_vread 0
  1773 raencoder CALL  ktrace(0xf0000)
  1773 raencoder RET   ktrace 983040/0xf0000
  1773 raencoder CALL  open(0xefbfde64,0,0)
  1773 raencoder NAMI  "/compat/linux/dev/audio"
  1773 raencoder NAMI  "/dev/audio"
  1773 raencoder RET   open 3
  1773 raencoder CALL  ioctl(0x3,0xc0045005 ,0xefbfd6b4)
  1773 raencoder RET   ioctl 0
  1773 raencoder CALL  ioctl(0x3,0xc0045002 ,0xefbfd6b0)
  1773 raencoder RET   ioctl 0
  1773 raencoder CALL  ioctl(0x3,0xc0045006 ,0xefbfd6ac)
  1773 raencoder RET   ioctl 0
  1773 raencoder CALL  ioctl(0x3,0xc0045009 ,0xefbfd6a8)
  1773 raencoder RET   ioctl 0
  1773 raencoder CALL  open(0x452a7,0x2,0xeab00)
  1773 raencoder NAMI  "/compat/linux/dev/mixer"
  1773 raencoder NAMI  "/dev/mixer"
  1773 raencoder RET   open 4
  1773 raencoder CALL  ioctl(0x4,0x80044dfe ,0xefbfd6d0)
  1773 raencoder RET   ioctl 0
  1773 raencoder CALL  ktrace(0xf1000)
  1773 raencoder RET   ktrace 987136/0xf1000
  1773 raencoder CALL  ktrace(0xf3000)
  1773 raencoder RET   ktrace 995328/0xf3000
  1773 raencoder CALL  ktrace(0xf5000)
  1773 raencoder RET   ktrace 1003520/0xf5000
  1773 raencoder CALL  ktrace(0xf6000)
  1773 raencoder RET   ktrace 1007616/0xf6000
  1773 raencoder CALL  ktrace(0xf7000)
  1773 raencoder RET   ktrace 1011712/0xf7000
  1773 raencoder CALL  ktrace(0xf8000)
  1773 raencoder RET   ktrace 1015808/0xf8000
  1773 raencoder CALL  ktrace(0xf9000)
  1773 raencoder RET   ktrace 1019904/0xf9000
  1773 raencoder CALL  ktrace(0xfa000)
  1773 raencoder RET   ktrace 1024000/0xfa000
  1773 raencoder CALL  ioctl(0x4,0xc0044dff ,0xefbfd724)
  1773 raencoder RET   ioctl 0
  1773 raencoder CALL  ioctl(0x4,0x80044dff ,0xefbfd720)
  1773 raencoder RET   ioctl 0
  1773 raencoder CALL  write(0x2,0xefbfd160,0x1)
  1773 raencoder GIO   fd 2 wrote 1 byte
       "
       "
  1773 raencoder RET   write 1
  1773 raencoder CALL  close(0x3)
  1773 raencoder RET   close 0
  1773 raencoder CALL  write(0x2,0xefbfd308,0x38)
  1773 raencoder GIO   fd 2 wrote 56 bytes
       "raencoder: Error encountered: Cannot open audio device.
       "
  1773 raencoder RET   write 56/0x38
  1773 raencoder CALL  ioctl(0,0x5401 ,0xefbfd8b0)
  1773 raencoder RET   ioctl 0
  1773 raencoder CALL  ioctl(0,0x5404 ,0xefbfd8b0)
  1773 raencoder CSW  stop kernel
  1773 raencoder CSW  resume kernel
  1773 raencoder RET   ioctl 0
  1773 raencoder CALL  ktrace(0xfa000)
  1773 raencoder RET   ktrace 1024000/0xfa000
  1773 raencoder CALL  ktrace(0xf0000)
  1773 raencoder RET   ktrace 983040/0xf0000
  1773 raencoder CALL  exit(0x32)
  1772 sh       CSW  resume kernel
  1772 sh       RET   wait4 1773/0x6ed
  1772 sh       CALL  read(0xa,0x5d160,0x3ff)
  1772 sh       GIO   fd 10 read 0 bytes
       ""
  1772 sh       RET   read 0
  1772 sh       CALL  exit(0x32)



To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-multimedia" in the body of the message



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?00a101bd5122$e40df5e0$0600a8c0>