[CFT] New version of webcamd, now v4.8.0.2

Miguel C miguelmclara at gmail.com
Sun Aug 28 23:54:38 UTC 2016


On Sun, Aug 28, 2016 at 7:21 PM, Hans Petter Selasky <hps at selasky.org>
wrote:

> On 08/28/16 16:02, Miguel C wrote:
>
>> On Sun, Aug 28, 2016 at 12:53 PM, Hans Petter Selasky <hps at selasky.org>
>> wrote:
>>
>>
> Hi,
>
> The descriptors you sent look OK.
>
> Can you run webcamd from gdb and trace all the parameters and code path
> taken inside the function named usb_setup_endpoint which triggers after you
> run pwcview ?
>
> gdb
> file webcamd
> run -d ugenX.Y
> CTRL+C
> break usb_setup_endpoint
> continue
> next
> next
> next
> ....
>
>
> Let's skip Freebsd-current and freebsd-x11 in the CC'ing of this thread to
> reduce the amount of cross-posting? Or which list do you prefer?


Sure multimedia@ seems fine


Lets see if I got this right (let me know if its best to upload this...
just feel like its important to keep the "text" in the archive for future
reference:


gdb) continue

Continuing.

Creating /dev/video0

[New Thread 802017400 (LWP 100268/webcamd)]

[New Thread 802019200 (LWP 100303/webcamd)]

[Switching to Thread 802019200 (LWP 100303/webcamd)]


Breakpoint 1, usb_setup_endpoint (dev=0x802076000, uhe=0x8020764a0,
bufsize=16)

at kernel/linux_usb.c:923

923 uint8_t type = uhe->desc.bmAttributes & USB_ENDPOINT_XFERTYPE_MASK;

(gdb) next

924 uint8_t addr = uhe->desc.bEndpointAddress;

(gdb) next

925 uint8_t ep_index = ((addr / 0x40) | (addr * 4)) % (16 * 4);

(gdb) next

928 if (uhe->bsd_xfer[0] ||

(gdb) next

931 return (0);

(gdb) next

1030 }

(gdb) next

usb_submit_urb (urb=0x802092070, mem_flags=0) at kernel/linux_usb.c:613

613 err = usb_setup_endpoint(urb->dev, uhe,

(gdb) next

615 if (err) {

(gdb) next

624 if (uhe->bsd_xfer[0] ||

(gdb) next

629 if (urb->bsd_urb_list.tqe_prev == NULL) {

(gdb) next

630 TAILQ_INSERT_TAIL(&uhe->bsd_urb_list, urb, bsd_urb_list);

(gdb) next

631 urb->status = -EINPROGRESS;

(gdb) next

638 if (urb->bsd_no_resubmit == 0) {

(gdb) next

639 usb_submit_urb_sub(uhe->bsd_xfer[0]);

(gdb) next

640 usb_submit_urb_sub(uhe->bsd_xfer[1]);

(gdb) next

642 err = 0;

(gdb) next

643 } else {

(gdb) next

648 atomic_unlock();

(gdb) next

649 return (err);

(gdb) next

650 }

(gdb) next

uvc_status_start (dev=0x802047180, flags=0)

at media_tree/drivers/media/usb/uvc/uvc_status.c:214

214 return usb_submit_urb(dev->int_urb, flags);

(gdb) next

215 }

(gdb) next

uvc_v4l2_open (file=0x80220d020) at
media_tree/drivers/media/usb/uvc/uvc_v4l2.c:514

514 ret = uvc_status_start(stream->dev, GFP_KERNEL);

(gdb) next

515 if (ret < 0) {

(gdb) next

521 }

(gdb) next

523 stream->dev->users++;

(gdb) next

524 mutex_unlock(&stream->dev->lock);

(gdb) next

526 v4l2_fh_init(&handle->vfh, &stream->vdev);

(gdb) next

527 v4l2_fh_add(&handle->vfh);

(gdb) next

528 handle->chain = stream->chain;

(gdb) next

529 handle->stream = stream;

(gdb) next

530 handle->state = UVC_HANDLE_PASSIVE;

(gdb) next

531 file->private_data = handle;

(gdb) next

533 return 0;

(gdb) next

534 }

(gdb) next

v4l2_open (inode=0x80220d008, filp=0x80220d020)

at media_tree/drivers/media/v4l2-core/v4l2-dev.c:453

453 ret = vdev->fops->open(filp);

(gdb) next

456 }

(gdb) next

458 if (vdev->dev_debug & V4L2_DEV_DEBUG_FOP)

(gdb) next

462 if (ret)

(gdb) next

464 return ret;

(gdb) next

465 }

(gdb) next

linux_open (f_v4b=0, fflags=0) at kernel/linux_file.c:65

65 return (handle);

(gdb) next

66 }

(gdb) next

v4b_open (cdev=0x802052030, fflags=1)

at /usr/home/user/webcamd_src/webcamd-4.8.0.4/webcamd.c:211

211 handle = linux_open(f_v4b, fflags_linux);

(gdb) next

213 if (handle == NULL) {

(gdb) next

217 cuse_dev_set_per_file_handle(cdev, handle);

(gdb) next

218 return (0);

(gdb) next

219 }



pwcview --> Failed to get current picture info: Invalid argument





>
>
> --HPS
>


More information about the freebsd-multimedia mailing list