[FFmpeg-devel] [PATCH] Set frame rate on v4l2 devices
José Miguel Gonçalves
jose.goncalves
Mon Sep 13 17:11:46 CEST 2010
On 09/13/2010 03:41 PM, M?ns Rullg?rd wrote:
> Jos? Miguel Gon?alves<jose.goncalves at inov.pt> writes:
>
>
>> On 09/13/2010 02:35 PM, M?ns Rullg?rd wrote:
>>
>>> Jos? Miguel Gon?alves<jose.goncalves at inov.pt> writes:
>>>
>>>
>>>> I agree with you. For this specific ioctl it would be better to treat
>>>> non-zero as an error.
>>>>
>>>> Bottom line. I think it's always better to consider an error
>>>> everything else that is not considered OK.
>>>>
>>>>
>>> The question is always what return values to expect on success and how
>>> to differentiate them from errors. For example, the read() system
>>> call can perfectly legitimately return (ssize_t)(1u<<31), which would
>>> normally look like a negative number (the result if the (size_t) size
>>> argument is greater than SSIZE_MAX is implementation-defined).
>>> Treating all negative return values as errors would be incorrect on
>>> systems where a larger size is allowed. The correct way is to check
>>> for (ssize_t)-1 and cast anything else to size_t before using it as
>>> usual.
>>>
>> This is a theoretical problem... while possible, I think no one in
>> it's good sense will make a 2 GB read() call.
>>
> Why not? 2GB isn't much of a file size nowadays, nor is the same
> amount of RAM.
>
I mostly work in embedded systems were a read above 1MB is already absurd.
But OK, I agree that is nowadays possible in some platforms.
>> Even considering an application/system were this would be possible, it
>> will only make sense in a 64 bits platform, were ssize_t would have 64
>> bit dimension, so (ssize_t)(1u<<31) would be positive in that system.
>>
> Not true, and that is my point. A negative return value other than -1
> from read() does not indicate error. Cast it to size_t, and you have
> the number of bytes read (if the system supports it).
>
Why is it not true? The POSIX definition for read() says on the return
value:
"Upon successful completion, these functions shall return a non-negative
integer indicating the number of bytes actually read."
More information about the ffmpeg-devel
mailing list