Re: Question about drivers/media/usb/uvc/uvc_v4l2.c

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi Laurent,

Thank you very much for your reply. This is what I thought, too. It seems that there's an implicit order of execution that is not clearly implied in the code, meaning `uvc_parse_streaming` is called before `uvc_v4l2_try_format`.

That being said, I was wondering maybe a better practice to write the loop in `uvc_v4l2_try_format` would be like the following,

```
format=NULL;
...
for (i = 0; i < stream->nformats; ++i) {
		format = &stream->format[i];
		if (format->fcc == fmt->fmt.pix.pixelformat)
			break;
}
// dereferencing format
```
to
```
// just declaration
format;
i=0;
do {
		format = &stream->format[i];
		if (format->fcc == fmt->fmt.pix.pixelformat)
			break;
		++i;
} while (i<stream->nformats)
// dereferencing format
```
I mean you can save one initialization, provided compiler does it and one branch.

Shaobo
On 2019/3/2 14:43, Laurent Pinchart wrote:
Hi Shaobo,

On Sat, Mar 02, 2019 at 01:22:49PM -0700, Shaobo He wrote:
Hello everyone,

This is Shaobo from Utah again. I've been bugging the mailing list with my
patches. I have a quick question about a function in
`drivers/media/usb/uvc/uvc_v4l2.c`. In `uvc_v4l2_try_format`, can
`stream->nformats` be 0? I saw that in other files, this field could be zero
which is considered as error cases. I was wondering if it's true for this
function, too.

The uvc_parse_streaming() function should answer this question :-)




[Index of Archives]     [Linux Input]     [Video for Linux]     [Gstreamer Embedded]     [Mplayer Users]     [Linux USB Devel]     [Linux Audio Users]     [Linux Kernel]     [Linux SCSI]     [Yosemite Backpacking]

  Powered by Linux