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