[MPlayer-users] MPlayer hangs after playing video from webcam (pwc)
Andrea
mariofutire at googlemail.com
Mon Jul 7 22:26:02 CEST 2008
Andrea wrote:
> Hi,
>
> I'm trying to play video from my webcam Logitech QuickCam 4000 Pro USB.
> MPlayer is the latest svn (27205), and the kernel driver (PWC) comes from 2.6.25.10.
>
> This is the command line
>
> mplayer -tv width=640:height=480:driver=v4l2 -fps 15 tv://
corrected in
mplayer -tv width=640:height=480:driver=v4l2:fps=15 tv://
>
> When I stop the player with Q, mplayer hangs and I have to press Crtl-C to stop it.
> No messages are written to the screen.
> The same happened a while ago, and I think the "culprit" is this code in stream/tvi_v4l2.c (around
> line 1132, in funtion "uninit"):
>
> /* unqueue all remaining buffers */
> memset(&buf,0,sizeof(buf));
> buf.type = V4L2_BUF_TYPE_VIDEO_CAPTURE;
> buf.memory = V4L2_MEMORY_MMAP;
> while (!ioctl(priv->video_fd, VIDIOC_DQBUF, &buf));
>
> The ioctl call VIDIOC_DQBUF never returns (it is called only once).
> Reading the document
> http://www.linuxtv.org/downloads/video4linux/API/V4L2_API/spec/r8849.htmation
Sorry I meant
http://www.linuxtv.org/downloads/video4linux/API/V4L2_API/spec/r8849.htm
>
> VIDIOC_DQBUF should block if there are no buffers to unqueue, unless the device is opened with
> O_NONBLOCK.
>
> Here the device is NOT opened with O_NONBLOCK (function "init", same file, line 1198), so it blocks.
>
> I cannot figure out how
>
> while (!ioctl(priv->video_fd, VIDIOC_DQBUF, &buf));
>
> is supposed to work.
> When all buffer have been unqueued, the call will eventually block.
>
> I am trying to understand if the problem is in mplayer or pwc, and I'd like to understand how
> mplayer is using the v4l2 call.
>
> Thanks
>
> Andrea
More information about the MPlayer-users
mailing list