[FFmpeg-user] h264_v4l2m2m unable to find output format

Andriy Gelman andriy.gelman at gmail.com
Sun May 24 23:27:41 EEST 2020


On Sun, 24. May 21:46, Anjo John wrote:
> 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

That's strange. Looks that h264 decoder is supported, but we fail when trying to 
probe it in ffmpeg. There are v4l2-compliance fails, but not sure if they are related. 
You could also look at the output of dmesg..

> 
> 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:
> 

-- 
Andriy


More information about the ffmpeg-user mailing list