Re: [PATCH 0/8] staging: media: zoran: fusion in one module

Hans Verkuil
2021-09-06T15:06:14Z

On 06/09/2021 16:56, LABBE Corentin wrote:
> Le Mon, Sep 06, 2021 at 04:11:16PM +0200, Hans Verkuil a écrit :
>> On 06/09/2021 15:49, LABBE Corentin wrote:
>>> Le Mon, Sep 06, 2021 at 01:03:56PM +0200, Hans Verkuil a écrit :
>>>> Hi Corentin,
>>>>
>>>> I finally had the opportunity to test the staging zoran driver.
>>>>
>>>> I found several issues when running v4l2-compliance -s (I posted a patch
>>>> for that), but more seriously is the fact that trying to capture MJPG
>>>> at resolutions 384x288 or less just hangs my PC. It works OK with 768x576.
>>>>
>>>> I discovered this when running 'v4l2-compliance -s -a -f'.
>>>>
>>>> BTW, why isn't the initial format equal to MJPG 768x576?
>>>> I would expect that for these boards that should be the default format.
>>>>
>>>> Another issue is that the TODO should mention that for video output there
>>>> should be a second video device node. And that's really something that
>>>> has to be done before the zoran driver can be moved out of staging.
>>>>
>>>> It shouldn't be that hard to implement, I think.
>>>>
>>>> Right now it is impossible to run the compliance test for the output, since
>>>> it doesn't even see it as an output.
>>>>
>>>> Regards,
>>>>
>>>> Hans
>>>
>>> I work on having a second device for output, (it is the reason of "staging: media: zoran: move videodev alloc" which will help).
>>>
>>> But I still have the problem of non working output.
>>>
>>> Does output is really needed for going out of staging ?
>>> Probably nobody have it working for ages. The only way to had it was to use an old mplayer output which is broken since so many time.
>>> Note that this plugin will never work again.
>>>
>>> The only way to work on output is to use ffmpeg which just recently have suport for writing non-raw video to V4L.
>>
>> Then just remove it. The code for output remains in the git history so if someone wants to
>> resurrect that, then that's always possible.
>>
>> The point is that I don't want to have half-baked output support in mainline.
>>
>> But what exactly is the problem with getting output to work? Doesn't it just decode
>> MJPEG frames? (Sorry if you explained it before, it's so long ago that I looked at this
>> that I forgot the details)
>>
>
> The first problem is that zoran dont like comment COM/APP0 markers.
> This imply a per buffer filtering but this is already handled in my next branch.
>
> But the remaining problem is that any output is like http://kernel.montjoie.ovh/zoran_out.png.
>
> I hacked the driver to grab a working buffer when doing input and overrun output buffer later.
> And the result is a working static output.
> So the hw handling is good and the problem came from the data feeding/handling.
>
> I believe that something is wrong in what ffmpeg negociate/send.
>
> Regards
>

Why not use v4l2-ctl to capture video and then replay it? You should be able to do this:

v4l2-ctl --stream-mmap --stream-to-hdr cap.hdr --stream-count 60

then this:

v4l2-ctl --stream-out-mmap --stream-from-hdr cap.hdr

The -hdr options write the frames prefixed with a header containing the length of the frame.
That way you can capture variable-length frames and stream them out with the same payload
length.

Regards,

Hans