[FFmpeg-devel] [PATCHv2] avcodec/v4l2: set sizeimage param for non-raw buffers [fixes #6716]
jorge.ramirez-ortiz at linaro.org
Wed Oct 4 21:59:21 EEST 2017
On 10/04/2017 08:56 PM, Michael Niedermayer wrote:
> On Wed, Oct 04, 2017 at 06:50:31PM +0200, Jorge Ramirez-Ortiz wrote:
>> Some V4L2 drivers fail to allocate buffers when sizeimage is not set
>> to a max value. This is indeed the case for s5p-mfc 
>> Most drivers should be able to calculate this value from the frame
>> dimensions and format - or at least have their own default.
>> However since this work around should not impact those drivers doing
>> the "right thing" this commit just provides such a default.
>> The calculations were extracted from the v4l2 driver used to develop
>> the ffmpeg v4l2_m2m support . See venc.c and vdec.c
>>  linux.git/drivers/media/platform/s5p-mfc
>>  linux.git/drivers/media/platform/qcom/venus/
>> libavcodec/v4l2_context.c | 30 ++++++++++++++++++++++++++++--
>> 1 file changed, 28 insertions(+), 2 deletions(-)
>> diff --git a/libavcodec/v4l2_context.c b/libavcodec/v4l2_context.c
>> index 297792f..312cde5 100644
>> --- a/libavcodec/v4l2_context.c
>> +++ b/libavcodec/v4l2_context.c
>> @@ -33,6 +33,8 @@
>> #include "v4l2_fmt.h"
>> #include "v4l2_m2m.h"
>> +#define ALIGN(x, a) ((x) + (a - 1)) & (~(a - 1))
> the "a" is missing ()
> also the whlole expression needs to be protected by a ()
> easier yet, you can use FFALIGN()
More information about the ffmpeg-devel