* V4L2 Media Controller
  */
 
+static void rvin_mc_try_format(struct rvin_dev *vin,
+                              struct v4l2_pix_format *pix)
+{
+       /*
+        * The V4L2 specification clearly documents the colorspace fields
+        * as being set by drivers for capture devices. Using the values
+        * supplied by userspace thus wouldn't comply with the API. Until
+        * the API is updated force fixed vaules.
+        */
+       pix->colorspace = RVIN_DEFAULT_COLORSPACE;
+       pix->xfer_func = V4L2_MAP_XFER_FUNC_DEFAULT(pix->colorspace);
+       pix->ycbcr_enc = V4L2_MAP_YCBCR_ENC_DEFAULT(pix->colorspace);
+       pix->quantization = V4L2_MAP_QUANTIZATION_DEFAULT(true, pix->colorspace,
+                                                         pix->ycbcr_enc);
+
+       rvin_format_align(vin, pix);
+}
+
 static int rvin_mc_try_fmt_vid_cap(struct file *file, void *priv,
                                   struct v4l2_format *f)
 {
        struct rvin_dev *vin = video_drvdata(file);
 
-       rvin_format_align(vin, &f->fmt.pix);
+       rvin_mc_try_format(vin, &f->fmt.pix);
 
        return 0;
 }
        if (vb2_is_busy(&vin->queue))
                return -EBUSY;
 
-       rvin_format_align(vin, &f->fmt.pix);
+       rvin_mc_try_format(vin, &f->fmt.pix);
 
        vin->format = f->fmt.pix;