[sip-comm-dev] no video


#1

Hi

while testing Sip-Communicator with the following configuration I've had a strange error:

- Lather old Pentium IV computer running Ubuntu Lucid Lynx.
- UVC Webcam Bus 001 Device 002: ID 0ac8:3420 Z-Star Microelectronics Corp.
(branded Conrad Electronic)
- Sip Communicator 1.0-alpha6-nightly.build.3074
- Sun JVM

I went to the video settings to check - if the camera worked - no avail but a gray background. The camera gets recognized as Venus...

Trying to change the settings (civic or native) freezes the whole Gnome desktop - only Ctrl+Alt+F1 worked to get to a terminal to kill Java

I knew that the camera was going to make trouble - as it does with Linphone too - so I applied the workaround which helps me there

export LD_PRELOAD=/usr/lib/libv4l/v4l1compat.so

With that I was able to get the "civil" video driver to work in the settings windows - but with a lousy image quality.

Trying to change anything crashes the machine again. Once I was able to get a dump:

Java_com_lti_civil_impl_jni_NativeCaptureStream_stop, stopped.
V4L2CaptureStream::dispose()
V4L2CaptureStream::dispose: waiting for thread to stop
stopping capturing
stopping streaminfg
Releasing buffers
capture stopped
V4L2CaptureStream::dispose: thread stopped
warning: The VAD has been replaced by a hack pending a complete rewrite
opened v4l2 device
Found Venus USB2.0 Camera card with uvcvideo v4l2 driver
discover_inputs()
Found sources: 1
  0 - Camera 1 (2)
opened v4l2 device
Found Venus USB2.0 Camera card with uvcvideo v4l2 driver
discover_inputs()
Found sources: 1
  0 - Camera 1 (2)
Assigning buffers
assignMBufs()
Adding buffers to dirver Queue
Turning streaming on
Java_com_lti_civil_impl_jni_NativeCaptureStream_stop, stopping...
Java_com_lti_civil_impl_jni_NativeCaptureStream_stop, stopped.
Capturing started

hs_err_pid2032.log (79.3 KB)

···

#
# A fatal error has been detected by the Java Runtime Environment:
#
# SIGSEGV (0xb) at pc=0xb774efc6, pid=2032, tid=2728110960
#
# JRE version: 6.0_22-b04
# Java VM: Java HotSpot(TM) Client VM (17.1-b03 mixed mode, sharing linux-x86 )
# Problematic frame:
# C [libc.so.6+0x74fc6]
#
# An error report file with more information is saved as:
# /tmp/hs_err_pid2032.log
#
# If you would like to submit a bug report, please visit:
# http://java.sun.com/webapps/bugreport/crash.jsp
# The crash happened outside the Java Virtual Machine in native code.
# See problematic frame for where to report the bug.
#
Aborted

(log in the attachment)

What's going on here? Why does only the "civil" mode work?

PS: Thanks for the great work. I came back to sip-communicator after a while and I'm impressed. It works almost flawlessly on both of my portables (Acer Travelmate and eee) - my machine at home is probably weak anyway (1.7GHz) Anyway - hope the camera woes can be solved as the might stick even with a new machine.

Can't wait to test Jingle / Desktop sharing.

Greetings
Conrad


#2

The following excerpts from the attached log suggest that the problem
surfaces in the recently-introduced local video flipping functionality
so we'll probably have to start looking into it there:

Current thread (0x099c4400): JavaThread "Loop thread:
com.sun.media.parser.RawBufferParser$FrameTrack@17ff759" daemon
[_thread_in_native, id=2297, stack(0xa296a000,0xa29bb000)]

siginfo:si_signo=SIGSEGV: si_errno=0, si_code=1 (SEGV_MAPERR),
si_addr=0x09cca000

Java frames: (J=compiled Java code, j=interpreted, Vv=VM code)
j
net.java.sip.communicator.impl.neomedia.codec.FFmpeg.av_get_filtered_video_frame(JJ)I+0
j
net.java.sip.communicator.impl.neomedia.videoflip.VideoFlipEffect.process(Ljavax/media/Buffer;Ljavax/media/Buffer;)I+102

···

On Sat, 2010-11-13 at 02:43 +0100, Conrad Beckert wrote:

(log in the attachment)

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@sip-communicator.dev.java.net
For additional commands, e-mail: dev-help@sip-communicator.dev.java.net


#3

Hi Conrad, Lyubomir

With all my computers, the "native" capture device never works with
LD_PRELOAD stuff. And it crashes if the default capture device is "civil"
(when SIP Communicator starts) on my new laptop. Normally for v4l2 compliant
webcams, the LD_PRELOAD should be avoided.

Conrad, can you send the output of v4l-info /dev/video0 (v4l-info is part of
v4l-conf package on Debian/Ubuntu). Maybe the format of your webcam is not
supported by our v4l2 capture device or by the FFmpeg "horizontal flip"
filter.

Regards,

···

--
Seb

2010/11/13 Lyubomir Marinov <lubo@sip-communicator.org>

On Sat, 2010-11-13 at 02:43 +0100, Conrad Beckert wrote:
> (log in the attachment)

The following excerpts from the attached log suggest that the problem
surfaces in the recently-introduced local video flipping functionality
so we'll probably have to start looking into it there:

Current thread (0x099c4400): JavaThread "Loop thread:
com.sun.media.parser.RawBufferParser$FrameTrack@17ff759" daemon
[_thread_in_native, id=2297, stack(0xa296a000,0xa29bb000)]

siginfo:si_signo=SIGSEGV: si_errno=0, si_code=1 (SEGV_MAPERR),
si_addr=0x09cca000

Java frames: (J=compiled Java code, j=interpreted, Vv=VM code)
j

net.java.sip.communicator.impl.neomedia.codec.FFmpeg.av_get_filtered_video_frame(JJ)I+0
j

net.java.sip.communicator.impl.neomedia.videoflip.VideoFlipEffect.process(Ljavax/media/Buffer;Ljavax/media/Buffer;)I+102

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@sip-communicator.dev.java.net
For additional commands, e-mail: dev-help@sip-communicator.dev.java.net


#4

Hi Seb,

Conrad, can you send the output of v4l-info /dev/video0

Of course: :slight_smile:

sudo v4l-info /dev/video0

### v4l2 device info [/dev/video0] ###
general info
    VIDIOC_QUERYCAP
  driver : "uvcvideo"
  card : "Venus USB2.0 Camera"
  bus_info : "usb-0000:00:1f.2-1"
  version : 0.1.0
  capabilities : 0x4000001 [VIDEO_CAPTURE,STREAMING]

standards

inputs
    VIDIOC_ENUMINPUT(0)
  index : 0
  name : "Camera 1"
  type : CAMERA
  audioset : 0
  tuner : 0
  std : 0x0 []
  status : 0x0 []

video capture
    VIDIOC_ENUM_FMT(0,VIDEO_CAPTURE)
  index : 0
  type : VIDEO_CAPTURE
  flags : 0
  description : "YUV 4:2:2 (YUYV)"
  pixelformat : 0x56595559 [YUYV]
    VIDIOC_G_FMT(VIDEO_CAPTURE)
  type : VIDEO_CAPTURE
  fmt.pix.width : 320
  fmt.pix.height : 240
  fmt.pix.pixelformat : 0x56595559 [YUYV]
  fmt.pix.field : NONE
  fmt.pix.bytesperline : 640
  fmt.pix.sizeimage : 153600
  fmt.pix.colorspace : SRGB
  fmt.pix.priv : 0

controls
    VIDIOC_QUERYCTRL(BASE+0)
  id : 9963776
  type : INTEGER
  name : "Brightness"
  minimum : -10
  maximum : 10
  step : 1
  default_value : 0
  flags : 0
    VIDIOC_QUERYCTRL(BASE+1)
  id : 9963777
  type : INTEGER
  name : "Contrast"
  minimum : 0
  maximum : 20
  step : 1
  default_value : 20
  flags : 0
    VIDIOC_QUERYCTRL(BASE+2)
  id : 9963778
  type : INTEGER
  name : "Saturation"
  minimum : 0
  maximum : 10
  step : 1
  default_value : 6
  flags : 0

### video4linux device info [/dev/video0] ###
general info
    VIDIOCGCAP
  name : "Venus USB2.0 Camera"
  type : 0x1 [CAPTURE]
  channels : 1
  audios : 0
  maxwidth : 352
  maxheight : 288
  minwidth : 48
  minheight : 32

channels
    VIDIOCGCHAN(0)
  channel : 0
  name : "Camera 1"
  tuners : 0
  flags : 0x0 []
  type : CAMERA
  norm : 0

tuner
ioctl VIDIOCGTUNER: Invalid argument

audio
ioctl VIDIOCGAUDIO: Invalid argument

picture
    VIDIOCGPICT
  brightness : 32768
  hue : 0
  colour : 39321
  contrast : 65535
  whiteness : 32768
  depth : 16
  palette : YUYV

buffer
ioctl VIDIOCGFBUF: Invalid argument

window
    VIDIOCGWIN
  x : 0
  y : 0
  width : 320
  height : 240
  chromakey : 0
  flags : 0

It does not leave the impression that anything is wrong. On the other hand Linphone has its problems with this camera and this machine as well.

But there, setting LD_PRELOAD=/usr/lib/libv4l/v4l1compat.so helps. Quality is poor - which I suspect is because the computer has USB1 only and the camera is USB2.0:

00:1f.2 USB Controller: Intel Corporation 82801BA/BAM USB Controller #1 (rev 12)
00:1f.4 USB Controller: Intel Corporation 82801BA/BAM USB Controller #1 (rev 12)

But on other hand - Linphone and Empathy work - the latter without any prior setting.

Kind Regards
Conrad

···

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@sip-communicator.dev.java.net
For additional commands, e-mail: dev-help@sip-communicator.dev.java.net


#5

Hi,

Apparrently SIP Communicator supports the format of your webcam (YUYV).

Is the crash still happen with another camera (if you have one) or another
computers ?

For every crash, is the dump (hs_err_* file) still mention something like
"net.java.sip.communicator.
impl.neomedia.codec.FFmpeg.av_get_filtered_video_frame(JJ)I+0" ?

I will look the native code for get_filtered_video_frame on monday to see if
there is something wrong.

Regards,

···

--
Seb

2010/11/13 Conrad Beckert <conrad_videokonferenz@gmx.de>

Hi Seb,

> Conrad, can you send the output of v4l-info /dev/video0
Of course: :slight_smile:

sudo v4l-info /dev/video0

### v4l2 device info [/dev/video0] ###
general info
   VIDIOC_QUERYCAP
       driver : "uvcvideo"
       card : "Venus USB2.0 Camera"
       bus_info : "usb-0000:00:1f.2-1"
       version : 0.1.0
       capabilities : 0x4000001 [VIDEO_CAPTURE,STREAMING]

standards

inputs
   VIDIOC_ENUMINPUT(0)
       index : 0
       name : "Camera 1"
       type : CAMERA
       audioset : 0
       tuner : 0
       std : 0x0 []
       status : 0x0 []

video capture
   VIDIOC_ENUM_FMT(0,VIDEO_CAPTURE)
       index : 0
       type : VIDEO_CAPTURE
       flags : 0
       description : "YUV 4:2:2 (YUYV)"
       pixelformat : 0x56595559 [YUYV]
   VIDIOC_G_FMT(VIDEO_CAPTURE)
       type : VIDEO_CAPTURE
       fmt.pix.width : 320
       fmt.pix.height : 240
       fmt.pix.pixelformat : 0x56595559 [YUYV]
       fmt.pix.field : NONE
       fmt.pix.bytesperline : 640
       fmt.pix.sizeimage : 153600
       fmt.pix.colorspace : SRGB
       fmt.pix.priv : 0

controls
   VIDIOC_QUERYCTRL(BASE+0)
       id : 9963776
       type : INTEGER
       name : "Brightness"
       minimum : -10
       maximum : 10
       step : 1
       default_value : 0
       flags : 0
   VIDIOC_QUERYCTRL(BASE+1)
       id : 9963777
       type : INTEGER
       name : "Contrast"
       minimum : 0
       maximum : 20
       step : 1
       default_value : 20
       flags : 0
   VIDIOC_QUERYCTRL(BASE+2)
       id : 9963778
       type : INTEGER
       name : "Saturation"
       minimum : 0
       maximum : 10
       step : 1
       default_value : 6
       flags : 0

### video4linux device info [/dev/video0] ###
general info
   VIDIOCGCAP
       name : "Venus USB2.0 Camera"
       type : 0x1 [CAPTURE]
       channels : 1
       audios : 0
       maxwidth : 352
       maxheight : 288
       minwidth : 48
       minheight : 32

channels
   VIDIOCGCHAN(0)
       channel : 0
       name : "Camera 1"
       tuners : 0
       flags : 0x0 []
       type : CAMERA
       norm : 0

tuner
ioctl VIDIOCGTUNER: Invalid argument

audio
ioctl VIDIOCGAUDIO: Invalid argument

picture
   VIDIOCGPICT
       brightness : 32768
       hue : 0
       colour : 39321
       contrast : 65535
       whiteness : 32768
       depth : 16
       palette : YUYV

buffer
ioctl VIDIOCGFBUF: Invalid argument

window
   VIDIOCGWIN
       x : 0
       y : 0
       width : 320
       height : 240
       chromakey : 0
       flags : 0

It does not leave the impression that anything is wrong. On the other hand
Linphone has its problems with this camera and this machine as well.

But there, setting LD_PRELOAD=/usr/lib/libv4l/v4l1compat.so helps. Quality
is poor - which I suspect is because the computer has USB1 only and the
camera is USB2.0:

00:1f.2 USB Controller: Intel Corporation 82801BA/BAM USB Controller #1
(rev 12)
00:1f.4 USB Controller: Intel Corporation 82801BA/BAM USB Controller #1
(rev 12)

But on other hand - Linphone and Empathy work - the latter without any
prior setting.

Kind Regards
Conrad

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@sip-communicator.dev.java.net
For additional commands, e-mail: dev-help@sip-communicator.dev.java.net


#6

Hi,

In the the native code, I found an hardcoded value for the video size (640x480). Maybe it could be related to your problem.

I commit a fix in SVN revision 7918, the next build (3077) will be available in a few minutes.

Can you please try again with this new build and tell us if you still have crash ?

Regards,

···

--
Seb

Le 13/11/2010 15:59, Sebastien Vincent a �crit :

Hi,

Apparrently SIP Communicator supports the format of your webcam (YUYV).

Is the crash still happen with another camera (if you have one) or another computers ?

For every crash, is the dump (hs_err_* file) still mention something like "net.java.sip.communicator.
impl.neomedia.codec.FFmpeg.av_get_filtered_video_frame(JJ)I+0" ?

I will look the native code for get_filtered_video_frame on monday to see if there is something wrong.

Regards,
--
Seb

2010/11/13 Conrad Beckert <conrad_videokonferenz@gmx.de <mailto:conrad_videokonferenz@gmx.de>>

    Hi Seb,

    > Conrad, can you send the output of v4l-info /dev/video0
    Of course: :slight_smile:

    sudo v4l-info /dev/video0

    ### v4l2 device info [/dev/video0] ###
    general info
       VIDIOC_QUERYCAP
           driver : "uvcvideo"
           card : "Venus USB2.0 Camera"
           bus_info : "usb-0000:00:1f.2-1"
           version : 0.1.0
           capabilities : 0x4000001 [VIDEO_CAPTURE,STREAMING]

    standards

    inputs
       VIDIOC_ENUMINPUT(0)
           index : 0
           name : "Camera 1"
           type : CAMERA
           audioset : 0
           tuner : 0
           std : 0x0 []
           status : 0x0 []

    video capture
       VIDIOC_ENUM_FMT(0,VIDEO_CAPTURE)
           index : 0
           type : VIDEO_CAPTURE
           flags : 0
           description : "YUV 4:2:2 (YUYV)"
           pixelformat : 0x56595559 [YUYV]
       VIDIOC_G_FMT(VIDEO_CAPTURE)
           type : VIDEO_CAPTURE
           fmt.pix.width : 320
           fmt.pix.height : 240
           fmt.pix.pixelformat : 0x56595559 [YUYV]
           fmt.pix.field : NONE
           fmt.pix.bytesperline : 640
           fmt.pix.sizeimage : 153600
           fmt.pix.colorspace : SRGB
           fmt.pix.priv : 0

    controls
       VIDIOC_QUERYCTRL(BASE+0)
           id : 9963776
           type : INTEGER
           name : "Brightness"
           minimum : -10
           maximum : 10
           step : 1
           default_value : 0
           flags : 0
       VIDIOC_QUERYCTRL(BASE+1)
           id : 9963777
           type : INTEGER
           name : "Contrast"
           minimum : 0
           maximum : 20
           step : 1
           default_value : 20
           flags : 0
       VIDIOC_QUERYCTRL(BASE+2)
           id : 9963778
           type : INTEGER
           name : "Saturation"
           minimum : 0
           maximum : 10
           step : 1
           default_value : 6
           flags : 0

    ### video4linux device info [/dev/video0] ###
    general info
       VIDIOCGCAP
           name : "Venus USB2.0 Camera"
           type : 0x1 [CAPTURE]
           channels : 1
           audios : 0
           maxwidth : 352
           maxheight : 288
           minwidth : 48
           minheight : 32

    channels
       VIDIOCGCHAN(0)
           channel : 0
           name : "Camera 1"
           tuners : 0
           flags : 0x0 []
           type : CAMERA
           norm : 0

    tuner
    ioctl VIDIOCGTUNER: Invalid argument

    audio
    ioctl VIDIOCGAUDIO: Invalid argument

    picture
       VIDIOCGPICT
           brightness : 32768
           hue : 0
           colour : 39321
           contrast : 65535
           whiteness : 32768
           depth : 16
           palette : YUYV

    buffer
    ioctl VIDIOCGFBUF: Invalid argument

    window
       VIDIOCGWIN
           x : 0
           y : 0
           width : 320
           height : 240
           chromakey : 0
           flags : 0

    It does not leave the impression that anything is wrong. On the
    other hand Linphone has its problems with this camera and this
    machine as well.

    But there, setting LD_PRELOAD=/usr/lib/libv4l/v4l1compat.so helps.
    Quality is poor - which I suspect is because the computer has USB1
    only and the camera is USB2.0:

    00:1f.2 USB Controller: Intel Corporation 82801BA/BAM USB
    Controller #1 (rev 12)
    00:1f.4 USB Controller: Intel Corporation 82801BA/BAM USB
    Controller #1 (rev 12)

    But on other hand - Linphone and Empathy work - the latter without
    any prior setting.

    Kind Regards
    Conrad

    ---------------------------------------------------------------------
    To unsubscribe, e-mail:
    dev-unsubscribe@sip-communicator.dev.java.net
    <mailto:dev-unsubscribe@sip-communicator.dev.java.net>
    For additional commands, e-mail:
    dev-help@sip-communicator.dev.java.net
    <mailto:dev-help@sip-communicator.dev.java.net>