Re: ibv4l2: error requesting 4 buffers: Device or resource busy

Hans de Goede <[email protected]> Sat, 20 Feb 2010 19:54:03 +0100
Newsgroups gmane.comp.video.video4linux,gmane.linux.drivers.video-input-infrastructure
Message-ID <[email protected]>
On 02/20/2010 03:50 PM, Guilherme wrote:
> Guilherme wrote:
> Hi all!
>
> As I tried to migrate an applications that I had it working in another
> computer, I struggled to have it working here.
> It is a video capture application.
> The following error occurred:
>
> libv4l2: error requesting 4 buffers: Device or resource busy
> read error 16, Device or resource busy
> Press [Enter] to close the terminal ...
>
> The code is attached to this e-mail, plz can I get some help from here.
> Thanks a lot
>
> P.S. My webcam works just fine on amsn.. so I guess its not a hardware
> dependant issue... Looking online for help, people say that the drive
> might be in use something related to this that is not my case.
>

Hi,

First of all, this list is no longer in active use, linux-media (in the CC now)
is the correct list to use.

The problem you are seeing is caused by the app first doing a select() on the fd
before it does anything else which signals the driver what kind of IO the app
(mmap or read) is going to use. At this point the driver has to decide
which kind of IO it will use, as it needs to setup its internal buffers to
handle the select. when this happens, it assumes the app will use read() IO.

Then it does a read() call, which libv4l tries to emulate using mmap (for drivers
which don't implement read() themselves, and because using mmap is faster when
libv4l needs to do conversion). This fails, as libv4l cannot allocate the buffers
as the driver has already allocated buffers internally for read() based IO.

The current libv4l releasE: 0.6.4 has a fix for this.

Regards,

Hans

--
video4linux-list mailing list
Unsubscribe mailto:[email protected]?subject=unsubscribe
https://www.redhat.com/mailman/listinfo/video4linux-list