On 01/06/2020 16:59, Vishal Sagar wrote:
> Hi Hans,
> 
> Thanks for reviewing!
> 
>>> +   case V4L2_CID_XILINX_SDIRX_TS_IS_INTERLACED:
>>> +           if (!xsdirxss->vidlocked) {
>>> +                   dev_err(dev, "Can't get values when video not
>> locked!\n");
>>> +                   return -EINVAL;
>>> +           }
>>> +           ctrl->val = xsdirxss->ts_is_interlaced;
>>
>> This control makes no sense: the v4l2_dv_timings struct will already tell you
>> if it is an interlaced format or not. Same for v4l2_mbus_framefmt.
>>
> 
> The SDI has a concept of supporting progressive, interlaced (both as we know 
> normally) and a progressive segmented frames(psf).
> The progressive segmented frames have their video content in progressive 
> format but the transport stream is interlaced.
> This is distinguished using the bit 6 and 7 of Byte 2 in the 4 byte ST352 
> payload.
> Refer to sec 5.3 in SMPTE ST 352:2010.
> 
> This control can be used by the application to distinguish normal interlaced 
> and progressive segmented frames.

Ah, interesting. So this relies on the receiver to reconstruct the progressive
frame by combining the top and bottom field, right?

I think this deserves a new v4l2_field value:

V4L2_FIELD_ALTERNATE_PROG

Basically this is identical to V4L2_FIELD_ALTERNATE, except that the two fields
combine to a single progressive frame.

Regards,

        Hans

PS: I'll look at your other comments separately

Reply via email to