|
@@ -454,6 +454,7 @@ int gsc_try_fmt_mplane(struct gsc_ctx *ctx, struct v4l2_format *f)
|
|
|
} else {
|
|
|
min_w = variant->pix_min->target_rot_dis_w;
|
|
|
min_h = variant->pix_min->target_rot_dis_h;
|
|
|
+ pix_mp->colorspace = ctx->out_colorspace;
|
|
|
}
|
|
|
|
|
|
pr_debug("mod_x: %d, mod_y: %d, max_w: %d, max_h = %d",
|
|
@@ -472,10 +473,8 @@ int gsc_try_fmt_mplane(struct gsc_ctx *ctx, struct v4l2_format *f)
|
|
|
|
|
|
pix_mp->num_planes = fmt->num_planes;
|
|
|
|
|
|
- if (pix_mp->width >= 1280) /* HD */
|
|
|
- pix_mp->colorspace = V4L2_COLORSPACE_REC709;
|
|
|
- else /* SD */
|
|
|
- pix_mp->colorspace = V4L2_COLORSPACE_SMPTE170M;
|
|
|
+ if (V4L2_TYPE_IS_OUTPUT(f->type))
|
|
|
+ ctx->out_colorspace = pix_mp->colorspace;
|
|
|
|
|
|
for (i = 0; i < pix_mp->num_planes; ++i) {
|
|
|
struct v4l2_plane_pix_format *plane_fmt = &pix_mp->plane_fmt[i];
|
|
@@ -519,8 +518,8 @@ int gsc_g_fmt_mplane(struct gsc_ctx *ctx, struct v4l2_format *f)
|
|
|
pix_mp->height = frame->f_height;
|
|
|
pix_mp->field = V4L2_FIELD_NONE;
|
|
|
pix_mp->pixelformat = frame->fmt->pixelformat;
|
|
|
- pix_mp->colorspace = V4L2_COLORSPACE_REC709;
|
|
|
pix_mp->num_planes = frame->fmt->num_planes;
|
|
|
+ pix_mp->colorspace = ctx->out_colorspace;
|
|
|
|
|
|
for (i = 0; i < pix_mp->num_planes; ++i) {
|
|
|
pix_mp->plane_fmt[i].bytesperline = (frame->f_width *
|