[FFmpeg-devel] [PATCHv4 3/4] libavcodec: v4l2: add codec formats
Jorge Ramirez
jorge.ramirez-ortiz at linaro.org
Wed Aug 9 10:39:04 EEST 2017
On 08/09/2017 07:51 AM, Jorge Ramirez wrote:
> On 08/09/2017 03:37 AM, Michael Niedermayer wrote:
>> On Tue, Aug 08, 2017 at 06:07:07PM +0200, Jorge Ramirez-Ortiz wrote:
>>> In addition, enable the multi planar raw formats.
>>>
>>> Reviewed-by: Jorge Ramirez<jorge.ramirez-ortiz at linaro.org>
>>> Tested-by: Jorge Ramirez<jorge.ramirez-ortiz at linaro.org>
>>> ---
>>> libavcodec/v4l2_fmt.c | 38 +++++++++++++++++++++++++++++++++++++-
>>> 1 file changed, 37 insertions(+), 1 deletion(-)
>> [...]
>>
>>> + { AV_PIX_FMT_NONE, AV_CODEC_ID_NONE, 0, , 0 },
>> This looks odd and doesnt build
>
> The previous version was missing the last field which would have left
> it un-initialized (so just added a null flag since I assume this was
> simply an error case that would not be processed?) I will fix it in v5
> and enable the two flags for clarity then.
>
> um, so sorry about the build.
> what machine are you building on please? (ie, kernel? or maybe if you
> can its /usr/include/linux/videodev2.h API so I can try to reproduce?
um, I just tried v3.2.91 (oldest longterm I could find) and it builds
fine (configure just disables the v4l2_m2m support); any data from your
particular build will be very welcome.
again sorry about this.
>
> Things do obviously build on my end - fate tests pass and so does
> encoding/decoding so I think we are back to the issue that you
> originally flagged when building on relatively old kernels.
>
> This addition to configure would have prevented the build error on
> your v3 kernel that you last shared with me in last time btw.
> *check_code cc linux/videodev2.h "int i = V4L2_CAP_VIDEO_M2M_MPLANE |
> V4L2_CAP_VIDEO_M2M | V4L2_BUF_FLAG_LAST;" || disable v4l2_m2m*
>
>
> These are v4l2 checks that allow enabling/disable codecs depending on
> them being present on the API.
>
> # check V4L2 codecs available in the API
> check_header linux/fb.h
> check_header linux/videodev.h
> check_header linux/videodev2.h
> check_code cc linux/videodev2.h "struct v4l2_frmsizeenum vfse;
> vfse.discrete.width = 0;" && enable_safe struct_v4l2_frmivalenum_discrete
> check_code cc linux/videodev2.h "int i = V4L2_CAP_VIDEO_M2M_MPLANE |
> V4L2_CAP_VIDEO_M2M | V4L2_BUF_FLAG_LAST;" || disable v4l2_m2m
> check_code cc linux/videodev2.h "int i = V4L2_PIX_FMT_VC1_ANNEX_G;" &&
> enable vc1_v4l2_m2m
> check_code cc linux/videodev2.h "int i = V4L2_PIX_FMT_MPEG1;" &&
> enable mpeg1_v4l2_m2m
> check_code cc linux/videodev2.h "int i = V4L2_PIX_FMT_MPEG2;" &&
> enable mpeg2_v4l2_m2m
> check_code cc linux/videodev2.h "int i = V4L2_PIX_FMT_MPEG4;" &&
> enable mpeg4_v4l2_m2m
> check_code cc linux/videodev2.h "int i = V4L2_PIX_FMT_HEVC;" && enable
> hevc_v4l2_m2m
> check_code cc linux/videodev2.h "int i = V4L2_PIX_FMT_H263;" && enable
> h263_v4l2_m2m
> check_code cc linux/videodev2.h "int i = V4L2_PIX_FMT_H264;" && enable
> h264_v4l2_m2m
> check_code cc linux/videodev2.h "int i = V4L2_PIX_FMT_VP8;" && enable
> vp8_v4l2_m2m
> check_code cc linux/videodev2.h "int i = V4L2_PIX_FMT_VP9;" && enable
> vp9_v4l2_m2m
>
More information about the ffmpeg-devel
mailing list