Hi Mauro,

On 07/14/2011 12:35 AM, Mauro Carvalho Chehab wrote:
> Em 28-06-2011 11:23, Michael Jones escreveu:
>> There is an assumption that the format coming from the device
>> needs 2 bytes per pixel, which is not the case when the device
>> delivers e.g. V4L2_PIX_FMT_GREY. This doesn't manifest itself with
>> IO_METHOD_MMAP because init_mmap() (the default) doesn't take
>> sizeimage as an argument.
>>
>> Signed-off-by: Michael Jones <michael.jo...@matrix-vision.de>
>> ---
>>
>> This same issue would apply to other formats which have 1 byte per pixel,
>> this patch only fixes it for GREY.  Is this OK for now, or does somebody
>> have a better suggestion for supporting other formats as well?
> 
> Well, just rely on the bytesperline provided by the driver should be enough.
> Devices should be returning it on a consistent way.
> 
> Regards,
> Mauro

So you would rather remove the "Buggy driver paranoia" altogether and
just trust the bytesperline from the driver? That's fine with me, but I
presumed the paranoia was there for a reason. Would you accept a patch
then that just removes the 7 lines which fiddle with bytesperline?

-Michael

> 
>>
>>  contrib/test/capture-example.c |    4 +++-
>>  1 files changed, 3 insertions(+), 1 deletions(-)
>>
>> diff --git a/contrib/test/capture-example.c b/contrib/test/capture-example.c
>> index 3852c58..0eb5235 100644
>> --- a/contrib/test/capture-example.c
>> +++ b/contrib/test/capture-example.c
>> @@ -416,6 +416,7 @@ static void init_device(void)
>>      struct v4l2_crop crop;
>>      struct v4l2_format fmt;
>>      unsigned int min;
>> +    unsigned int bytes_per_pixel;
>>  
>>      if (-1 == xioctl(fd, VIDIOC_QUERYCAP, &cap)) {
>>              if (EINVAL == errno) {
>> @@ -519,7 +520,8 @@ static void init_device(void)
>>      }
>>  
>>      /* Buggy driver paranoia. */
>> -    min = fmt.fmt.pix.width * 2;
>> +    bytes_per_pixel = fmt.fmt.pix.pixelformat == V4L2_PIX_FMT_GREY ? 1 : 2;
>> +    min = fmt.fmt.pix.width * bytes_per_pixel;
>>      if (fmt.fmt.pix.bytesperline < min)
>>              fmt.fmt.pix.bytesperline = min;
>>      min = fmt.fmt.pix.bytesperline * fmt.fmt.pix.height;
> 


MATRIX VISION GmbH, Talstrasse 16, DE-71570 Oppenweiler
Registergericht: Amtsgericht Stuttgart, HRB 271090
Geschaeftsfuehrer: Gerhard Thullner, Werner Armingeon, Uwe Furtner, Erhard Meier
--
To unsubscribe from this list: send the line "unsubscribe linux-media" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to