Skip to content
Snippets Groups Projects

V4l2object: Avoid colorimetry mismatch for streams with invalid colorimetry

Merged Qi Hou requested to merge (removed):v4l2object into master

Some streams have invalid gst colorimetry in caps and it will be set to default value by below code in video-info.c. Then this gst colorimetry is used to do mapping with v4l2 colorimetry.

    if (!gst_video_colorimetry_from_string (&info->colorimetry, s)) {
      GST_WARNING ("unparsable colorimetry, using default");
      set_default_colorimetry (info);
    } else if (!validate_colorimetry (info)) {
      GST_WARNING ("invalid colorimetry, using default");
      set_default_colorimetry (info);
    } else {
      /* force RGB matrix for RGB formats */
      if (GST_VIDEO_FORMAT_INFO_IS_RGB (info->finfo) &&
          info->colorimetry.matrix != GST_VIDEO_COLOR_MATRIX_RGB) {
        GST_WARNING ("invalid matrix %d for RGB format, using RGB",
            info->colorimetry.matrix);
        info->colorimetry.matrix = GST_VIDEO_COLOR_MATRIX_RGB;
      }
    }

But when check colorimetry in gst_v4l2_video_colorimetry_matches(), it uses gst colorimetry in caps directly. It will causes mismatch. Seems need to use gst colorimetry obtained like the same way above.

Edited by Nicolas Dufresne

Merge request reports

Loading
Loading

Activity

Filter activity
  • Approvals
  • Assignees & reviewers
  • Comments (from bots)
  • Comments (from users)
  • Commits & branches
  • Edits
  • Labels
  • Lock status
  • Mentions
  • Merge request status
  • Tracking
Please register or sign in to reply
Loading