[FFmpeg-user] h264_v4l2m2m unable to find output format

Anjo John anjo.john at vvdntech.in
Sun May 24 19:16:29 EEST 2020


Please find the v4l2-ctl output below
v4l2-ctl --list-formats-out -d /dev/video32
ioctl: VIDIOC_ENUM_FMT
Index       : 0
Type        : Video Output Multiplanar
Pixel Format: 'MPG2' (compressed)
Name        : MPEG-2 ES

Index       : 1
Type        : Video Output Multiplanar
Pixel Format: 'H264' (compressed)
Name        : H.264

Index       : 2
Type        : Video Output Multiplanar
Pixel Format: 'HEVC' (compressed)
Name        : HEVC

Index       : 3
Type        : Video Output Multiplanar
Pixel Format: 'VP80' (compressed)
Name        : VP8

Index       : 4
Type        : Video Output Multiplanar
Pixel Format: 'VP90' (compressed)
Name        : VP9

v4l2-complinace fails in 14 cases.
v4l2-compliance -d /dev/video32
v4l2-compliance SHA   : bf6084ee51251ff5ad89607055b95d409611a9b3

Driver Info:
Driver name   : msm_vidc_driver
Card type     : msm_vidc_vdec
Bus info      :
Driver version: 0.0.1
Capabilities  : 0x84203000
Video Capture Multiplanar
Video Output Multiplanar
Streaming
Extended Pix Format
Device Capabilities
Device Caps   : 0x04203000
Video Capture Multiplanar
Video Output Multiplanar
Streaming
Extended Pix Format

Compliance test for device /dev/video32 (not using libv4l2):

Required ioctls:
fail:
../../../v4l-utils-1.12.3/utils/v4l2-compliance/v4l2-compliance.cpp(314):
string empty
fail:
../../../v4l-utils-1.12.3/utils/v4l2-compliance/v4l2-compliance.cpp(538):
check_ustring(vcap.bus_info, sizeof(vcap.bus_info))
test VIDIOC_QUERYCAP: FAIL

Allow for multiple opens:
test second video open: OK
fail:
../../../v4l-utils-1.12.3/utils/v4l2-compliance/v4l2-compliance.cpp(314):
string empty
fail:
../../../v4l-utils-1.12.3/utils/v4l2-compliance/v4l2-compliance.cpp(538):
check_ustring(vcap.bus_info, sizeof(vcap.bus_info))
test VIDIOC_QUERYCAP: FAIL
fail:
../../../v4l-utils-1.12.3/utils/v4l2-compliance/v4l2-compliance.cpp(656):
doioctl(node, VIDIOC_S_PRIORITY, &prio)
test VIDIOC_G/S_PRIORITY: FAIL
fail:
../../../v4l-utils-1.12.3/utils/v4l2-compliance/v4l2-compliance.cpp(628):
!ok
test for unlimited opens: FAIL

Debug ioctls:
test VIDIOC_DBG_G/S_REGISTER: OK
test VIDIOC_LOG_STATUS: OK (Not Supported)

Input ioctls:
test VIDIOC_G/S_TUNER/ENUM_FREQ_BANDS: OK (Not Supported)
test VIDIOC_G/S_FREQUENCY: OK (Not Supported)
test VIDIOC_S_HW_FREQ_SEEK: OK (Not Supported)
test VIDIOC_ENUMAUDIO: OK (Not Supported)
fail:
../../../v4l-utils-1.12.3/utils/v4l2-compliance/v4l2-test-input-output.cpp(420):
G_INPUT not supported for a capture device
test VIDIOC_G/S/ENUMINPUT: FAIL
test VIDIOC_G/S_AUDIO: OK (Not Supported)
Inputs: 0 Audio Inputs: 0 Tuners: 0

Output ioctls:
test VIDIOC_G/S_MODULATOR: OK (Not Supported)
test VIDIOC_G/S_FREQUENCY: OK (Not Supported)
test VIDIOC_ENUMAUDOUT: OK (Not Supported)
fail:
../../../v4l-utils-1.12.3/utils/v4l2-compliance/v4l2-test-input-output.cpp(790):
G_OUTPUT not supported for an output device
test VIDIOC_G/S/ENUMOUTPUT: FAIL
test VIDIOC_G/S_AUDOUT: OK (Not Supported)
Outputs: 0 Audio Outputs: 0 Modulators: 0

Input/Output configuration ioctls:
test VIDIOC_ENUM/G/S/QUERY_STD: OK (Not Supported)
test VIDIOC_ENUM/G/S/QUERY_DV_TIMINGS: OK (Not Supported)
test VIDIOC_DV_TIMINGS_CAP: OK (Not Supported)
test VIDIOC_G/S_EDID: OK (Not Supported)

Control ioctls:
test VIDIOC_QUERY_EXT_CTRL/QUERYMENU: OK (Not Supported)
test VIDIOC_QUERYCTRL: OK
fail:
../../../v4l-utils-1.12.3/utils/v4l2-compliance/v4l2-test-controls.cpp(504):
g_ctrl accepted invalid control ID
test VIDIOC_G/S_CTRL: FAIL
fail:
../../../v4l-utils-1.12.3/utils/v4l2-compliance/v4l2-test-controls.cpp(576):
g_ext_ctrls worked even when no controls are present
test VIDIOC_G/S/TRY_EXT_CTRLS: FAIL
test VIDIOC_(UN)SUBSCRIBE_EVENT/DQEVENT: OK (Not Supported)
test VIDIOC_G/S_JPEGCOMP: OK (Not Supported)
Standard Controls: 0 Private Controls: 0

Format ioctls:
fail:
../../../v4l-utils-1.12.3/utils/v4l2-compliance/v4l2-test-formats.cpp(190):
0 for min_width/height or step_width/height
test VIDIOC_ENUM_FMT/FRAMESIZES/FRAMEINTERVALS: FAIL
fail:
../../../v4l-utils-1.12.3/utils/v4l2-compliance/v4l2-test-formats.cpp(1191):
got error 22 when setting parms for buftype 1
test VIDIOC_G/S_PARM: FAIL
test VIDIOC_G_FBUF: OK (Not Supported)
fail:
../../../v4l-utils-1.12.3/utils/v4l2-compliance/v4l2-test-formats.cpp(448):
pixelformat 38323151 (Q128) for buftype 9 not reported by ENUM_FMT
test VIDIOC_G_FMT: FAIL
test VIDIOC_TRY_FMT: OK (Not Supported)
test VIDIOC_S_FMT: OK (Not Supported)
test VIDIOC_G_SLICED_VBI_CAP: OK (Not Supported)
fail:
../../../v4l-utils-1.12.3/utils/v4l2-compliance/v4l2-test-formats.cpp(1377):
doioctl(node, VIDIOC_G_SELECTION, &sel)
fail:
../../../v4l-utils-1.12.3/utils/v4l2-compliance/v4l2-test-formats.cpp(1390):
testLegacyCrop(node)
test Cropping: FAIL
test Composing: OK (Not Supported)
fail:
../../../v4l-utils-1.12.3/utils/v4l2-compliance/v4l2-test-formats.cpp(1553):
doioctl(node, VIDIOC_S_FMT, &fmt)
test Scaling: OK

Codec ioctls:
fail:
../../../v4l-utils-1.12.3/utils/v4l2-compliance/v4l2-test-codecs.cpp(45):
ret != EINVAL
test VIDIOC_(TRY_)ENCODER_CMD: FAIL
test VIDIOC_G_ENC_INDEX: OK (Not Supported)
fail:
../../../v4l-utils-1.12.3/utils/v4l2-compliance/v4l2-test-codecs.cpp(91):
ret != EINVAL
test VIDIOC_(TRY_)DECODER_CMD: FAIL

Buffer ioctls:
test VIDIOC_REQBUFS/CREATE_BUFS/QUERYBUF: OK
test VIDIOC_EXPBUF: OK (Not Supported)

Test input 0:


Total: 43, Succeeded: 29, Failed: 14, Warnings: 0

On Sun, May 24, 2020 at 9:10 PM Andriy Gelman <andriy.gelman at gmail.com>
wrote:

> On Sun, 24. May 18:49, Anjo John wrote:
> > I have tested the master branch from git. it also reports the same
> > behaviour. Sorry i couldn't remove the "Disclaimer" line at the end.
> > Please find the complete output with loglevel debug.
> > ffmpeg -loglevel debug -c:v h264_v4l2m2m -i test.h264 -pix_fmt nv12
> > /tmp/out.yuv
> > ffmpeg version N-97929-g26b4509 Copyright (c) 2000-2020 the FFmpeg
> > developers
> >   built with gcc 6.4.0 (GCC)
> >   configuration: --disable-stripping --enable-pic --enable-shared
> > --enable-pthreads --cross-prefix=arm-oe-linux-gnueabi-
> > --ld='arm-oe-linux-gnueabi-gcc -march=armv7-a -mfpu=neon -mfloat-abi=hard
> > -fstack-protector-strong -pie -fPIE -D_FORTIFY_SOURCE=2 -Wa,--noexecstack
> > -Wformat -Wformat-security -Werror=format-security
> >
> --sysroot=/media/vvdn/data/zooj_vrcm/zooj_vrcm_64bit/src/system/hlos/poky/build/tmp-glibc/work/armv7ahf-neon-oe-linux-gnueabi/lib32-ffmpeg/1.0+git999-r0/lib32-recipe-sysroot'
> > --cc='arm-oe-linux-gnueabi-gcc -march=armv7-a -mfpu=neon -mfloat-abi=hard
> > -fstack-protector-strong -pie -fPIE -D_FORTIFY_SOURCE=2 -Wa,--noexecstack
> > -Wformat -Wformat-security -Werror=format-security
> >
> --sysroot=/media/vvdn/data/zooj_vrcm/zooj_vrcm_64bit/src/system/hlos/poky/build/tmp-glibc/work/armv7ahf-neon-oe-linux-gnueabi/lib32-ffmpeg/1.0+git999-r0/lib32-recipe-sysroot'
> > --cxx='arm-oe-linux-gnueabi-g++ -march=armv7-a -mfpu=neon
> -mfloat-abi=hard
> > -fstack-protector-strong -pie -fPIE -D_FORTIFY_SOURCE=2 -Wa,--noexecstack
> > -Wformat -Wformat-security -Werror=format-security
> >
> --sysroot=/media/vvdn/data/zooj_vrcm/zooj_vrcm_64bit/src/system/hlos/poky/build/tmp-glibc/work/armv7ahf-neon-oe-linux-gnueabi/lib32-ffmpeg/1.0+git999-r0/lib32-recipe-sysroot'
> > --arch=arm --target-os=linux --enable-cross-compile --extra-cflags=' -O2
> > -fomit-frame-pointer -Wa,--noexecstack -fexpensive-optimizations
> > -frename-registers -ftree-vectorize -finline-functions -finline-limit=64
> > -Wno-error=maybe-uninitialized -Wno-error=unused-result -march=armv7-a
> > -mfpu=neon -mfloat-abi=hard -fstack-protector-strong -pie -fPIE
> > -D_FORTIFY_SOURCE=2 -Wa,--noexecstack -Wformat -Wformat-security
> > -Werror=format-security
> >
> --sysroot=/media/vvdn/data/zooj_vrcm/zooj_vrcm_64bit/src/system/hlos/poky/build/tmp-glibc/work/armv7ahf-neon-oe-linux-gnueabi/lib32-ffmpeg/1.0+git999-r0/lib32-recipe-sysroot'
> > --extra-ldflags='-Wl,-O1 -Wl,--hash-style=gnu -Wl,--as-needed
> > -Wl,-z,relro,-z,now,-z,noexecstack'
> >
> --sysroot=/media/vvdn/data/zooj_vrcm/zooj_vrcm_64bit/src/system/hlos/poky/build/tmp-glibc/work/armv7ahf-neon-oe-linux-gnueabi/lib32-ffmpeg/1.0+git999-r0/lib32-recipe-sysroot
> > --libdir=/usr/lib --shlibdir=/usr/lib --datadir=/usr/share/ffmpeg
> > --disable-mipsdsp --disable-mipsdspr2 --cpu=generic
> --pkg-config=pkg-config
> > --enable-alsa --enable-avcodec --enable-avdevice --enable-avfilter
> > --enable-avformat --enable-avresample --enable-bzlib --disable-libfdk-aac
> > --enable-gpl --disable-libgsm --disable-indev=jack --disable-libvorbis
> > --enable-lzma --disable-libmfx --disable-libmp3lame --disable-openssl
> > --enable-postproc --disable-sdl2 --disable-libspeex --enable-swresample
> > --enable-swscale --enable-libtheora --disable-vaapi --disable-vdpau
> > --disable-libvpx --enable-libx264 --disable-libx265 --disable-libxcb
> > --disable-outdev=xv --enable-zlib
> >   libavutil      56. 48.100 / 56. 48.100
> >   libavcodec     58. 87.101 / 58. 87.101
> >   libavformat    58. 43.100 / 58. 43.100
> >   libavdevice    58.  9.103 / 58.  9.103
> >   libavfilter     7. 83.100 /  7. 83.100
> >   libavresample   4.  0.  0 /  4.  0.  0
> >   libswscale      5.  6.101 /  5.  6.101
> >   libswresample   3.  6.100 /  3.  6.100
> >   libpostproc    55.  6.100 / 55.  6.100
> > Splitting the commandline.
> > Reading option '-loglevel' ... matched as option 'loglevel' (set logging
> > level) with argument 'debug'.
> > Reading option '-c:v' ... matched as option 'c' (codec name) with
> argument
> > 'h264_v4l2m2m'.
> > Reading option '-i' ... matched as input url with argument 'test.h264'.
> > Reading option '-pix_fmt' ... matched as option 'pix_fmt' (set pixel
> > format) with argument 'nv12'.
> > Reading option '/tmp/out.yuv' ... matched as output url.
> > Finished splitting the commandline.
> > Parsing a group of options: global .
> > Applying option loglevel (set logging level) with argument debug.
> > Successfully parsed a group of options.
> > Parsing a group of options: input url test.h264.
> > Applying option c:v (codec name) with argument h264_v4l2m2m.
> > Successfully parsed a group of options.
> > Opening an input file: test.h264.
> > [NULL @ 0xb406b310] Opening 'test.h264' for reading
> > [file @ 0xb406bb50] Setting default whitelist 'file,crypto,data'
> > [h264 @ 0xb406b310] Format h264 probed with size=2048 and score=51
> > [h264 @ 0xb406b310] Before avformat_find_stream_info() pos: 0 bytes
> > read:32768 seeks:0 nb_streams:1
> > [extract_extradata @ 0xb4073c90] nal_unit_type: 9(AUD), nal_ref_idc: 0
> > [extract_extradata @ 0xb4073c90] nal_unit_type: 7(SPS), nal_ref_idc: 3
> > [extract_extradata @ 0xb4073c90] nal_unit_type: 8(PPS), nal_ref_idc: 3
> > [extract_extradata @ 0xb4073c90] nal_unit_type: 5(IDR), nal_ref_idc: 3
> > [h264 @ 0xb406c6a0] nal_unit_type: 9(AUD), nal_ref_idc: 0
> > [h264 @ 0xb406c6a0] nal_unit_type: 7(SPS), nal_ref_idc: 3
> > [h264 @ 0xb406c6a0] nal_unit_type: 8(PPS), nal_ref_idc: 3
> > [h264 @ 0xb406c6a0] nal_unit_type: 5(IDR), nal_ref_idc: 3
> > [h264 @ 0xb406c6a0] Format yuv420p chosen by get_format().
> > [h264 @ 0xb406c6a0] Reinit context to 640x368, pix_fmt: yuv420p
> > [h264 @ 0xb406c6a0] nal_unit_type: 9(AUD), nal_ref_idc: 0
> > [h264 @ 0xb406c6a0] nal_unit_type: 1(Coded slice of a non-IDR picture),
> > nal_ref_idc: 2
> > [h264 @ 0xb406c6a0] nal_unit_type: 9(AUD), nal_ref_idc: 0
> > [h264 @ 0xb406c6a0] nal_unit_type: 1(Coded slice of a non-IDR picture),
> > nal_ref_idc: 2
> > [h264 @ 0xb406c6a0] nal_unit_type: 9(AUD), nal_ref_idc: 0
> > [h264 @ 0xb406c6a0] nal_unit_type: 1(Coded slice of a non-IDR picture),
> > nal_ref_idc: 2
> > [h264 @ 0xb406c6a0] nal_unit_type: 9(AUD), nal_ref_idc: 0
> > [h264 @ 0xb406c6a0] nal_unit_type: 1(Coded slice of a non-IDR picture),
> > nal_ref_idc: 2
> > [h264 @ 0xb406c6a0] nal_unit_type: 9(AUD), nal_ref_idc: 0
> > [h264 @ 0xb406c6a0] nal_unit_type: 1(Coded slice of a non-IDR picture),
> > nal_ref_idc: 2
> > [h264 @ 0xb406c6a0] nal_unit_type: 9(AUD), nal_ref_idc: 0
> > [h264 @ 0xb406c6a0] nal_unit_type: 1(Coded slice of a non-IDR picture),
> > nal_ref_idc: 2
> > [h264 @ 0xb406b310] max_analyze_duration 5000000 reached at 5039938
> > microseconds st:0
> > [h264 @ 0xb406b310] After avformat_find_stream_info() pos: 1772544 bytes
> > read:1802240 seeks:0 frames:78
> > Input #0, h264, from 'test.h264':
> >   Duration: N/A, bitrate: N/A
> >     Stream #0:0, 78, 1/1200000: Video: h264 (High), 1 reference frame,
> > yuv420p(tv, bt709, progressive, left), 640x360 (640x368), 0/1, 15.08 fps,
> > 15 tbr, 1200k tbn, 30 tbc
> > Successfully opened the file.
> > Parsing a group of options: output url /tmp/out.yuv.
> > Applying option pix_fmt (set pixel format) with argument nv12.
> > Successfully parsed a group of options.
> > Opening an output file: /tmp/out.yuv.
> > [file @ 0xb406fb40] Setting default whitelist 'file,crypto,data'
> > Successfully opened the file.
> > [h264_mp4toannexb @ 0xb406dd70] The input looks like it is Annex B
> already
> > [h264_v4l2m2m @ 0xb42f0730] probing device /dev/video2
> > [h264_v4l2m2m @ 0xb42f0730] driver 'sde_rotator' on card 'sde_rotator' in
> > splane mode
> > [h264_v4l2m2m @ 0xb42f0730] v4l2 output format not supported
> > [h264_v4l2m2m @ 0xb42f0730] probing device /dev/video1
> > [h264_v4l2m2m @ 0xb42f0730] probing device /dev/video0
> > [h264_v4l2m2m @ 0xb42f0730] probing device /dev/video33
> > [h264_v4l2m2m @ 0xb42f0730] driver 'msm_vidc_driver' on card
> > 'msm_vidc_venc' in mplane mode
> > [h264_v4l2m2m @ 0xb42f0730] v4l2 output format not supported
> > [h264_v4l2m2m @ 0xb42f0730] probing device /dev/video32
> > [h264_v4l2m2m @ 0xb42f0730] driver 'msm_vidc_driver' on card
> > 'msm_vidc_vdec' in mplane mode
> > [h264_v4l2m2m @ 0xb42f0730] v4l2 output format not supported
> > [h264_v4l2m2m @ 0xb42f0730] Could not find a valid device
> > [h264_v4l2m2m @ 0xb42f0730] can't configure decoder
> > Stream mapping:
> >   Stream #0:0 -> #0:0 (h264 (h264_v4l2m2m) -> rawvideo (native))
> > Error while opening decoder for input stream #0:0 : Operation not
> permitted
> > [AVIOContext @ 0xb406fc90] Statistics: 0 seeks, 0 writeouts
> > [AVIOContext @ 0xb4073d00] Statistics: 1802240 bytes read, 0 seeks
> >
> > On Sun, May 24, 2020 at 3:43 PM Carl Eugen Hoyos <ceffmpeg at gmail.com>
> wrote:
> >
> > > Am So., 24. Mai 2020 um 08:11 Uhr schrieb Anjo John <
> anjo.john at vvdntech.in
> > > >:
> > >
> > > > I have been testing ffmpeg's v4l2m2m codec support in qualcomm qcs605
> > > SOC.
> > > > Ffmpeg isn't able to find the output format NV12 in the v4l2 m2m
> device.
> > > > Although the format NV12 is present and is listed with v4l-utils.
> > > >
> > > > FFMPEG version : tested 4.1.1 and 4.2.2
> > > > Below is the command i used for testing
> > > > *ffmpeg -y -c:v h264_v4l2m2m -i /opt/input.h264 -pix_fmt nv12
> out.yuv*
> > >
> > > Please test current FFmpeg git head and provide the command line
> > > you tested together with the complete, uncut console output.
> > >
> > > > _Disclaimer: _© 2020 VVDN Technologies Pvt. Ltd. This e-mail
> > > > contains PRIVILEGED AND CONFIDENTIAL INFORMATION
> > >
> > > Please remove this from emails sent to a public mailing list.
> > >
> > > Carl Eugen
> > > _______________________________________________
> > > ffmpeg-user mailing list
> > > ffmpeg-user at ffmpeg.org
> > > https://ffmpeg.org/mailman/listinfo/ffmpeg-user
> > >
> > > To unsubscribe, visit link above, or email
> > > ffmpeg-user-request at ffmpeg.org with subject "unsubscribe".
> >
>
> Hello,
>
> It looks that your device doesn't have a h264 decoder.
> Could you try: v4l2-ctl --list-formats-out -d /dev/video32
>
> It's also possible that VIDIOC_TRY_FMT ioctl fails during initialization.
> Try: v4l2-compliance -d /dev/video32
> and post the output.
>
> --
> Andriy
> _______________________________________________
> ffmpeg-user mailing list
> ffmpeg-user at ffmpeg.org
> https://ffmpeg.org/mailman/listinfo/ffmpeg-user
>
> To unsubscribe, visit link above, or email
> ffmpeg-user-request at ffmpeg.org with subject "unsubscribe".



-- 

*With Best Regards*
*Anjo John*

-- 



_Disclaimer: _© 2020 VVDN Technologies Pvt. Ltd. This e-mail contains 
PRIVILEGED AND CONFIDENTIAL INFORMATION intended solely for the use of the 
addressee(s). If you are not the intended recipient, please notify the 
sender by e-mail and delete the original message. Further, you are not to 
copy, disclose, or distribute this e-mail or its contents to any other 
person and any such actions are unlawful._
_
_
_
__


More information about the ffmpeg-user mailing list