Hi all,

If this belongs on a different forum/discussion list, please forward me there.  

What are people using for screencapture under OpenSolaris running on native HW 
these days?  Is there a decent solution?

I spent a couple hours today trying to find a reliable screen capture device 
for OpenSolaris 2008.05, updated to developer build 95.  I walked through most 
of the screen capture utilities discussed on Wikipedia, putting just a bit of 
effort into each one.

With Cankiri, I was able to capture a .ogg file that resembled my screen plus 
some garbage.  This was after adding dependencies, like SUNWgnome-python-extra. 
 It didn't capture any sound, and the video was pretty useless, but it was 
quick to try.

xvidcap, an older package which seemed to have some docs indicating working 
with Solaris, did successfully build after adding quite a large number of 
dependencies*.  It would then run, but fail with: 

  The program 'xvidcap' received an X Window System error.
  This probably reflects a bug in the program.
  The error was 'BadAccess (attempt to access private resource denied)'.
    (Details: serial 3339 error_code 10 request_code 147 minor_code 1)
    (Note to programmers: normally, X errors are reported asynchronously;
     that is, you will receive the error a while after causing it.
     To debug your program, run it with the --sync command line
     option to change this behavior. You can then get a meaningful
     backtrace from your debugger if you break on the gdk_x_error() function.)


for which xdpyinfo -query extensions says:
    MIT-SHM  (opcode: 147, base event: 98, base error: 166)

and a quick DTrace ustack() from the program at failure-time gives me:
              libgdk-x11-2.0.so.0.1200.9`gdk_x_error
              libX11.so.4`_XError+0x13b
              libX11.so.4`_XReply+0x48a
              libXext.so.0`XShmGetImage+0x136
              xvidcap`captureFrameToImageSHM+0x66
              xvidcap`captureFrameCreatingImageSHM+0xbb
              xvidcap`commonCapture+0x5a1
              xvidcap`xvc_capture_shm+0xf
              xvidcap`do_record_thread+0xeb
              libc.so.1`_thrp_setup+0x70
              libc.so.1`_lwp_start

Running it with --sync, it appears to work for a few seconds, then core dumps 
with a segfault.  The core reports the following stack:
$ mdb ./core 
Loading modules: [ libc.so.1 libuutil.so.1 ld.so.1 ]
> ::stack
libc.so.1`memcpy+0xff(fed84000, 86, ffffffe0, 20, 80, 20)
commonCapture+0xd30(1, 0)
xvc_capture_shm+0xf(64, 838ee60, 80d58d0, fa0eefec, fcff9ce0, 838ee60)
do_record_thread+0xeb(838ee60)
libc.so.1`_thrp_setup+0x70(faa70a00)
libc.so.1`_lwp_start(faa70a00, 0, 0, 0, 0, 0)

Everything seems to point to shared memory.  I poked around in the bugs, but 
didn't see anything known.

Should I try to mess with this any further, or is this just not expected to 
work?

Thanks in advance,

- Matt

* GNU gettext, perl XML::Parser, SUNWgnome-common-devel for pkg-config, 
SUNWxwinc for Xrender.h, SUNWxorg-headers for Xrandr.h, gmake
 
 
This message posted from opensolaris.org

Reply via email to