Re: [PATCH 6/7] media: coda: enable capture G_PARM for stateful encoder

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On 21/04/2022 16:58, Philipp Zabel wrote:
> On Do, 2022-04-21 at 12:30 +0200, Hans Verkuil wrote:
> [...]
>> I think this is actually a v4l2-compliance bug, not a driver bug.
>>
>> G/S_PARM doesn't make sense for the capture queue of a stateful encoder, unless
>> V4L2_FMT_FLAG_ENC_CAP_FRAME_INTERVAL is set to reserve HW resources.
>>
>> See https://hverkuil.home.xs4all.nl/spec/userspace-api/v4l/vidioc-enum-fmt.html#fmtdesc-flags
>>
>> That flags isn't used, so v4l2-compliance shouldn't complain.
>>
>> Try this v4l2-compliance patch to see if it resolved the fails for this patch
>> and the next patch (7/7).
>>
>> v4l2-compliance patch:
>>
>> Signed-off-by: Hans Verkuil <hverkuil-cisco@xxxxxxxxx>
>> ---
>> diff --git a/utils/v4l2-compliance/v4l2-test-formats.cpp b/utils/v4l2-compliance/v4l2-test-formats.cpp
>> index 3761b1fa..269a3832 100644
>> --- a/utils/v4l2-compliance/v4l2-test-formats.cpp
>> +++ b/utils/v4l2-compliance/v4l2-test-formats.cpp
>> @@ -1341,8 +1341,16 @@ static int testParmType(struct node *node, unsigned type)
>>  	case V4L2_BUF_TYPE_VIDEO_OUTPUT:
>>  	case V4L2_BUF_TYPE_VIDEO_OUTPUT_MPLANE:
>>  		if (node->g_caps() & buftype2cap[type]) {
>> -			fail_on_test(ret && node->has_frmintervals);
>> -			fail_on_test(ret && node->has_enc_cap_frame_interval);
>> +			if (is_stateful_enc) {
>> +				if (V4L2_TYPE_IS_OUTPUT(type))
>> +					fail_on_test(ret && node->has_frmintervals);
>> +				else if (node->has_enc_cap_frame_interval)
>> +					fail_on_test(ret);
>> +				else
>> +					fail_on_test(!ret);
>> +			} else {
>> +				fail_on_test(ret && node->has_frmintervals);
>> +			}
>>  		}
>>  		break;
>>  	default:
> 
> You are right, this patch resolves the compliance failures addressed by
> patches 6 and 7.

Great! I've committed this change to v4l-utils.

Regards,

	Hans



[Index of Archives]     [Linux Input]     [Video for Linux]     [Gstreamer Embedded]     [Mplayer Users]     [Linux USB Devel]     [Linux Audio Users]     [Linux Kernel]     [Linux SCSI]     [Yosemite Backpacking]

  Powered by Linux