Re: [PATCH v3 2/4] media: vicodec: use v4l2-mem2mem draining, stopped and next-buf-is-last states handling
From: Hans Verkuil <hidden>
Date: 2019-12-13 20:37:14
Also in:
linux-amlogic, linux-media, lkml
On 12/9/19 1:20 PM, Neil Armstrong wrote:
Use the previously introduced v4l2-mem2mem core APIs to handle the drainig, stopped and next-buf-is-last states. With these changes, the v4l2-compliance still passes with the following commands : # v4l2-ctl --stream-mmap --stream-out-mmap --stream-to-hdr out.comp --stream-from in.yuvquoted
quoted
quoted
quoted
<><><><><><><><><><><><><><><><>< 15.53 fps15.53 fpsquoted
<><><><><><><><><><><><>< 13.99 fps13.99 fpsquoted
<><><><><><><><><><><>< 13.52 fps13.52 fpsquoted
<><><><><><><><><><><><>< 13.41 fps13.41 fpsquoted
<><><><><><><><><><><><>< 13.21 fps13.21 fpsquoted
<><><><><><><><><><><>< 13.09 fps13.09 fpsquoted
<><><><><><><STOP ENCODER <<< EOS EVENT # v4l2-compliance --stream-from in.yuv -s v4l2-compliance SHA: 7ead0e1856b89f2e19369af452bb03fd0cd16793, 64 bits [...] Total for vicodec device /dev/video0: 50, Succeeded: 50, Failed: 0, Warnings: 0 The full output is available at [1] # v4l2-compliance -d1 --stream-from-hdr out.comp -s v4l2-compliance SHA: 7ead0e1856b89f2e19369af452bb03fd0cd16793, 64 bits [...] Total for vicodec device /dev/video1: 50, Succeeded: 50, Failed: 0, Warnings: 0 The full output is available at [2] No functional changes should be noticed.
Ah, unfortunately there *are* functional changes.
There is a (much) more extensive test that is done in the test-media script.
In v4l-utils, go to contrib/test. Now run (as root): test-media vicodec
This test now fails on some tests for the stateful decoder:
Streaming ioctls:
test read/write: OK (Not Supported)
test blocking wait: OK
fail: v4l2-test-buffers.cpp(943): ret == 0
fail: v4l2-test-buffers.cpp(1353): captureBufs(node, node_m2m_cap, q, m2m_q, frame_count, pollmode, capture_count)
test MMAP (select): FAIL
fail: v4l2-test-buffers.cpp(951): ret == 0
fail: v4l2-test-buffers.cpp(1353): captureBufs(node, node_m2m_cap, q, m2m_q, frame_count, pollmode, capture_count)
test MMAP (epoll): FAIL
fail: v4l2-test-buffers.cpp(943): ret == 0
fail: v4l2-test-buffers.cpp(1607): captureBufs(node, node_m2m_cap, q, m2m_q, frame_count, pollmode, capture_count)
test USERPTR (select): FAIL
fail: v4l2-test-buffers.cpp(943): ret == 0
fail: v4l2-test-buffers.cpp(1761): captureBufs(node, node_m2m_cap, q, m2m_q, frame_count, pollmode, capture_count)
test DMABUF (select): FAIL
I also see this:
cmp: EOF on /tmp/tmp.7KAXKAIkVZ/raw.yu12.1280.24 after byte 23500800, in line 1
which shouldn't be there either.
I can recommend the test-media script: it can test all the virtual drivers and it is
part of the daily build to check for regressions.
Regards,
Hans
_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel