Lines Matching defs:stream

150 static int uvc_v4l2_try_format(struct uvc_streaming *stream,
163 if (fmt->type != stream->type)
175 for (i = 0; i < stream->nformats; ++i) {
176 format = &stream->format[i];
181 if (i == stream->nformats) {
182 format = stream->def_format;
239 mutex_lock(&stream->mutex);
240 if (stream->dev->quirks & UVC_QUIRK_PROBE_EXTRAFIELDS)
242 stream->ctrl.dwMaxVideoFrameSize;
245 ret = uvc_probe_video(stream, probe);
246 mutex_unlock(&stream->mutex);
255 for (i = 0; i < stream->nformats; ++i) {
256 if (probe->bFormatIndex == stream->format[i].index) {
257 format = &stream->format[i];
262 if (i == stream->nformats)
298 static int uvc_v4l2_get_format(struct uvc_streaming *stream,
305 if (fmt->type != stream->type)
308 mutex_lock(&stream->mutex);
309 format = stream->cur_format;
310 frame = stream->cur_frame;
322 fmt->fmt.pix.sizeimage = stream->ctrl.dwMaxVideoFrameSize;
328 mutex_unlock(&stream->mutex);
332 static int uvc_v4l2_set_format(struct uvc_streaming *stream,
340 if (fmt->type != stream->type)
343 ret = uvc_v4l2_try_format(stream, fmt, &probe, &format, &frame);
347 mutex_lock(&stream->mutex);
349 if (uvc_queue_allocated(&stream->queue)) {
354 stream->ctrl = probe;
355 stream->cur_format = format;
356 stream->cur_frame = frame;
359 mutex_unlock(&stream->mutex);
363 static int uvc_v4l2_get_streamparm(struct uvc_streaming *stream,
368 if (parm->type != stream->type)
371 mutex_lock(&stream->mutex);
372 numerator = stream->ctrl.dwFrameInterval;
373 mutex_unlock(&stream->mutex);
379 parm->type = stream->type;
381 if (stream->type == V4L2_BUF_TYPE_VIDEO_CAPTURE) {
398 static int uvc_v4l2_set_streamparm(struct uvc_streaming *stream,
409 if (parm->type != stream->type)
422 mutex_lock(&stream->mutex);
424 if (uvc_queue_streaming(&stream->queue)) {
425 mutex_unlock(&stream->mutex);
429 format = stream->cur_format;
430 frame = stream->cur_frame;
431 probe = stream->ctrl;
439 if (&format->frame[i] == stream->cur_frame)
442 if (format->frame[i].wWidth != stream->cur_frame->wWidth ||
443 format->frame[i].wHeight != stream->cur_frame->wHeight)
458 ret = uvc_probe_video(stream, &probe);
460 mutex_unlock(&stream->mutex);
464 stream->ctrl = probe;
465 stream->cur_frame = frame;
466 mutex_unlock(&stream->mutex);
519 if (atomic_inc_return(&handle->stream->active) != 1) {
520 atomic_dec(&handle->stream->active);
531 atomic_dec(&handle->stream->active);
547 struct uvc_streaming *stream;
552 stream = video_drvdata(file);
554 ret = usb_autopm_get_interface(stream->dev->intf);
561 usb_autopm_put_interface(stream->dev->intf);
565 mutex_lock(&stream->dev->lock);
566 if (stream->dev->users == 0) {
567 ret = uvc_status_start(stream->dev, GFP_KERNEL);
569 mutex_unlock(&stream->dev->lock);
570 usb_autopm_put_interface(stream->dev->intf);
576 stream->dev->users++;
577 mutex_unlock(&stream->dev->lock);
579 v4l2_fh_init(&handle->vfh, &stream->vdev);
581 handle->chain = stream->chain;
582 handle->stream = stream;
592 struct uvc_streaming *stream = handle->stream;
598 uvc_queue_release(&stream->queue);
607 mutex_lock(&stream->dev->lock);
608 if (--stream->dev->users == 0)
609 uvc_status_stop(stream->dev);
610 mutex_unlock(&stream->dev->lock);
612 usb_autopm_put_interface(stream->dev->intf);
622 struct uvc_streaming *stream = handle->stream;
626 usb_make_path(stream->dev->udev, cap->bus_info, sizeof(cap->bus_info));
633 static int uvc_ioctl_enum_fmt(struct uvc_streaming *stream,
640 if (fmt->type != stream->type || fmt->index >= stream->nformats)
647 format = &stream->format[fmt->index];
661 struct uvc_streaming *stream = handle->stream;
663 return uvc_ioctl_enum_fmt(stream, fmt);
670 struct uvc_streaming *stream = handle->stream;
672 return uvc_ioctl_enum_fmt(stream, fmt);
679 struct uvc_streaming *stream = handle->stream;
681 return uvc_v4l2_get_format(stream, fmt);
688 struct uvc_streaming *stream = handle->stream;
690 return uvc_v4l2_get_format(stream, fmt);
697 struct uvc_streaming *stream = handle->stream;
704 return uvc_v4l2_set_format(stream, fmt);
711 struct uvc_streaming *stream = handle->stream;
718 return uvc_v4l2_set_format(stream, fmt);
725 struct uvc_streaming *stream = handle->stream;
728 return uvc_v4l2_try_format(stream, fmt, &probe, NULL, NULL);
735 struct uvc_streaming *stream = handle->stream;
738 return uvc_v4l2_try_format(stream, fmt, &probe, NULL, NULL);
745 struct uvc_streaming *stream = handle->stream;
752 mutex_lock(&stream->mutex);
753 ret = uvc_request_buffers(&stream->queue, rb);
754 mutex_unlock(&stream->mutex);
768 struct uvc_streaming *stream = handle->stream;
773 return uvc_query_buffer(&stream->queue, buf);
779 struct uvc_streaming *stream = handle->stream;
784 return uvc_queue_buffer(&stream->queue,
785 stream->vdev.v4l2_dev->mdev, buf);
792 struct uvc_streaming *stream = handle->stream;
797 return uvc_export_buffer(&stream->queue, exp);
803 struct uvc_streaming *stream = handle->stream;
808 return uvc_dequeue_buffer(&stream->queue, buf,
816 struct uvc_streaming *stream = handle->stream;
823 return uvc_create_buffers(&stream->queue, cb);
830 struct uvc_streaming *stream = handle->stream;
836 mutex_lock(&stream->mutex);
837 ret = uvc_queue_streamon(&stream->queue, type);
838 mutex_unlock(&stream->mutex);
847 struct uvc_streaming *stream = handle->stream;
852 mutex_lock(&stream->mutex);
853 uvc_queue_streamoff(&stream->queue, type);
854 mutex_unlock(&stream->mutex);
1162 struct uvc_streaming *stream = handle->stream;
1164 if (sel->type != stream->type)
1170 if (stream->type != V4L2_BUF_TYPE_VIDEO_CAPTURE)
1175 if (stream->type != V4L2_BUF_TYPE_VIDEO_OUTPUT)
1184 mutex_lock(&stream->mutex);
1185 sel->r.width = stream->cur_frame->wWidth;
1186 sel->r.height = stream->cur_frame->wHeight;
1187 mutex_unlock(&stream->mutex);
1196 struct uvc_streaming *stream = handle->stream;
1198 return uvc_v4l2_get_streamparm(stream, parm);
1205 struct uvc_streaming *stream = handle->stream;
1212 return uvc_v4l2_set_streamparm(stream, parm);
1219 struct uvc_streaming *stream = handle->stream;
1226 for (i = 0; i < stream->nformats; i++) {
1227 if (stream->format[i].fcc == fsize->pixel_format) {
1228 format = &stream->format[i];
1259 struct uvc_streaming *stream = handle->stream;
1267 for (i = 0; i < stream->nformats; i++) {
1268 if (stream->format[i].fcc == fival->pixel_format) {
1269 format = &stream->format[i];
1488 struct uvc_streaming *stream = handle->stream;
1492 return uvc_queue_mmap(&stream->queue, vma);
1498 struct uvc_streaming *stream = handle->stream;
1502 return uvc_queue_poll(&stream->queue, file, wait);
1511 struct uvc_streaming *stream = handle->stream;
1515 return uvc_queue_get_unmapped_area(&stream->queue, pgoff);