[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