[FFmpeg-devel] [PATCHv6 4/4] libavcodec: v4l2: add support for v4l2 mem2mem codecs
Jorge Ramirez
jorge.ramirez-ortiz at linaro.org
Mon Aug 28 19:44:23 EEST 2017
On 08/25/2017 05:35 PM, wm4 wrote:
>> +
>> +#define SET_V4L2_EXT_CTRL(TYPE, ID, VALUE, NAME) \
>> +{ \
>> + struct v4l2_ext_control ctrl = { 0 }; \
>> + struct v4l2_ext_controls ctrls = { 0 }; \
>> + ctrls.ctrl_class = V4L2_CTRL_CLASS_MPEG; \
>> + ctrls.controls = &ctrl; \
>> + ctrl.TYPE = VALUE ; \
>> + ctrl.id = ID ; \
>> + ctrls.count = 1; \
>> + \
>> + if ((ret = ioctl(s->fd, VIDIOC_S_EXT_CTRLS, &ctrls)) < 0) \
>> + av_log(avctx, AV_LOG_WARNING, "Failed to set " NAME "%s\n", STR(ID)); \
>> +}
>> +
>> +#define SET_V4L2_TIME_PER_FRAME(NUM, DEN) \
>> +{ \
>> + struct v4l2_streamparm parm = { 0 }; \
>> + parm.type = V4L2_BUF_TYPE_VIDEO_OUTPUT_MPLANE; \
>> + parm.parm.output.timeperframe.numerator = NUM; \
>> + parm.parm.output.timeperframe.denominator = DEN; \
>> + \
>> + if ((ret = ioctl(s->fd, VIDIOC_S_PARM, &parm)) < 0) \
>> + av_log(avctx, AV_LOG_WARNING, "Failed to set timeperframe"); \
>> +}
> I think those should be functions. ctrl has only 3 fields, so it's ok
> to have the caller set it up. (If you use C99 struct literals it won't
> be more code than before, maybe.)
>
ok.
More information about the ffmpeg-devel
mailing list