On 14/12/17 00:35, Tim Harvey wrote: >>> Close. What is missing is a check of the AVI InfoFrame: if it has an explicit >>> colorimetry then use that. E.g. check for HDMI_COLORIMETRY_ITU_601 or ITU_709 >>> and set the colorspace accordingly. Otherwise fall back to what you have here. >>> >> >> This function currently matches adv7604/adv7842 where they don't look >> at colorimetry (but I do see a TODO in adv748x_hdmi_fill_format to >> look at this) so I don't have an example and may not understand. >> >> Do you mean: >> >> format->colorspace = V4L2_COLORSPACE_SRGB; >> if (bt->flags & V4L2_DV_FL_IS_CE_VIDEO) { >> if ((state->colorimetry == HDMI_COLORIMETRY_ITU_601) || >> (state->colorimetry == HDMI_COLORIMETRY_ITU_709)) >> format->colorspace = state->colorspace; >> else >> format->colorspace = is_sd(bt->height) ? >> V4L2_COLORSPACE_SMPTE170M : >> V4L2_COLORSPACE_REC709; >> } >> >> Also during more testing I've found that I'm not capturing interlaced >> properly and know I at least need: >> >> - format->field = V4L2_FIELD_NONE; >> + format->field = (bt->interlaced) ? >> + V4L2_FIELD_ALTERNATE : V4L2_FIELD_NONE; >> >> I'm still not quite capturing interlaced yet but I think its an issue >> of setting up the media pipeline improperly. >> > > Hans, > > Did you see this question above? I'm not quite understanding what you > want me to do for filling in colorspace and don't see any examples in > the existing drivers that appear to look at colorimetry for this. Yeah, I missed that question. I started answering that yesterday, but then I realized that it would be better if I would make a helper function for v4l2-dv-timings. The rules are complex so coding that in a single place that everyone can use is the smart thing to do. I hope to finish it tomorrow (too many interruptions today). Regards, Hans