Hi, Am 13.09.2012 14:05, schrieb Hans de Goede: > Hi, > > On 09/12/2012 04:36 PM, Frank Schäfer wrote: > > <snip> > >> >> And a negative side effect is, that unknown pac7302 devices (with no >> V4LCONTROL_ROTATED_90_JPEG entry in libv4lconvert) do not work. >> With a consistent API behavior, they would work fine (output a rotated >> image). Users would at least know that their device is working and most >> of them know what to do next. >> For image rotation, we still need to add an entry to libv4lconvert and >> to modify it to invert the width and height values in v4l2_pix_format in >> this case. > > That is a good point, unfortunately we are stuck with how we are doing > things now, since changing things would break the kernel ABI. Yeah, we can't break things. But I think this would be ABI fixing not breaking. ;) Actually...I'm not sure if this would be really an ABI change, because the interface itself wouldn't change. We would only fix a driver which passes a wrong value to userspace. Its a question of interpretation... > > Also ... > >> >> The device I have here is a good example: many people reported this >> device as not working years ago, one of them even got a hint in a forum >> that this could be a pac7302 device 2 years ago. >> But with the gpsca-pac7302 driver, he got no picture and gave up. >> And if I had not started q4vl2 from the terminal and had noticed the >> error message from libv4lconvert, I would have needed much more time to >> find out what's wrong... > > True, OTOH just having this fixed won't help a regular user, as he/she > would still need to first add the new usb-id to the pac7302 driver... Regular users, sure. But it would be a big step forward. Adding new device IDs for testing is one of the easier things in the Unix world. Hans, I have a bunch of smaller things on my ToDo list which I want to do first. For now: maybe we can improve things by trusting the jpeg-header ? That would mean removing the following section from v4lconvert_decode_jpeg_tinyjpeg() : if (data->control_flags & V4LCONTROL_ROTATED_90_JPEG) { unsigned int tmp = width; width = height; height = tmp; } if (header_width != width || header_height != height) { V4LCONVERT_ERR("unexpected width / height in JPEG header: " "expected: %ux%u, header: %ux%u\n", width, height, header_width, header_height); errno = EIO; return -1; } V4LCONTROL_ROTATED_90_JPEG is only used for the pac7302 devices and we know that their header is correct. And even in cases where the header is wrong, I think it would we better to get a garbeled picture instead of -EIO. Regards, Frank > > Regards, > > Hans -- To unsubscribe from this list: send the line "unsubscribe linux-media" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html