[media] sh-vou: fix bytesperline
The bytesperline values were wrong for planar formats where bytesperline is the line length for the first plane. Signed-off-by: Hans Verkuil <hans.verkuil@cisco.com> Signed-off-by: Mauro Carvalho Chehab <mchehab@osg.samsung.com>
This commit is contained in:
parent
66853ec4e1
commit
5c3edcb225
|
@ -133,6 +133,7 @@ struct sh_vou_fmt {
|
||||||
u32 pfmt;
|
u32 pfmt;
|
||||||
char *desc;
|
char *desc;
|
||||||
unsigned char bpp;
|
unsigned char bpp;
|
||||||
|
unsigned char bpl;
|
||||||
unsigned char rgb;
|
unsigned char rgb;
|
||||||
unsigned char yf;
|
unsigned char yf;
|
||||||
unsigned char pkf;
|
unsigned char pkf;
|
||||||
|
@ -143,6 +144,7 @@ static struct sh_vou_fmt vou_fmt[] = {
|
||||||
{
|
{
|
||||||
.pfmt = V4L2_PIX_FMT_NV12,
|
.pfmt = V4L2_PIX_FMT_NV12,
|
||||||
.bpp = 12,
|
.bpp = 12,
|
||||||
|
.bpl = 1,
|
||||||
.desc = "YVU420 planar",
|
.desc = "YVU420 planar",
|
||||||
.yf = 0,
|
.yf = 0,
|
||||||
.rgb = 0,
|
.rgb = 0,
|
||||||
|
@ -150,6 +152,7 @@ static struct sh_vou_fmt vou_fmt[] = {
|
||||||
{
|
{
|
||||||
.pfmt = V4L2_PIX_FMT_NV16,
|
.pfmt = V4L2_PIX_FMT_NV16,
|
||||||
.bpp = 16,
|
.bpp = 16,
|
||||||
|
.bpl = 1,
|
||||||
.desc = "YVYU planar",
|
.desc = "YVYU planar",
|
||||||
.yf = 1,
|
.yf = 1,
|
||||||
.rgb = 0,
|
.rgb = 0,
|
||||||
|
@ -157,6 +160,7 @@ static struct sh_vou_fmt vou_fmt[] = {
|
||||||
{
|
{
|
||||||
.pfmt = V4L2_PIX_FMT_RGB24,
|
.pfmt = V4L2_PIX_FMT_RGB24,
|
||||||
.bpp = 24,
|
.bpp = 24,
|
||||||
|
.bpl = 3,
|
||||||
.desc = "RGB24",
|
.desc = "RGB24",
|
||||||
.pkf = 2,
|
.pkf = 2,
|
||||||
.rgb = 1,
|
.rgb = 1,
|
||||||
|
@ -164,6 +168,7 @@ static struct sh_vou_fmt vou_fmt[] = {
|
||||||
{
|
{
|
||||||
.pfmt = V4L2_PIX_FMT_RGB565,
|
.pfmt = V4L2_PIX_FMT_RGB565,
|
||||||
.bpp = 16,
|
.bpp = 16,
|
||||||
|
.bpl = 2,
|
||||||
.desc = "RGB565",
|
.desc = "RGB565",
|
||||||
.pkf = 3,
|
.pkf = 3,
|
||||||
.rgb = 1,
|
.rgb = 1,
|
||||||
|
@ -171,6 +176,7 @@ static struct sh_vou_fmt vou_fmt[] = {
|
||||||
{
|
{
|
||||||
.pfmt = V4L2_PIX_FMT_RGB565X,
|
.pfmt = V4L2_PIX_FMT_RGB565X,
|
||||||
.bpp = 16,
|
.bpp = 16,
|
||||||
|
.bpl = 2,
|
||||||
.desc = "RGB565 byteswapped",
|
.desc = "RGB565 byteswapped",
|
||||||
.pkf = 3,
|
.pkf = 3,
|
||||||
.rgb = 1,
|
.rgb = 1,
|
||||||
|
@ -701,7 +707,8 @@ static int sh_vou_try_fmt_vid_out(struct file *file, void *priv,
|
||||||
|
|
||||||
v4l_bound_align_image(&pix->width, 0, VOU_MAX_IMAGE_WIDTH, 2,
|
v4l_bound_align_image(&pix->width, 0, VOU_MAX_IMAGE_WIDTH, 2,
|
||||||
&pix->height, 0, img_height_max, 1, 0);
|
&pix->height, 0, img_height_max, 1, 0);
|
||||||
pix->bytesperline = pix->width * 2;
|
pix->bytesperline = pix->width * vou_fmt[pix_idx].bpl;
|
||||||
|
pix->sizeimage = pix->height * ((pix->width * vou_fmt[pix_idx].bpp) >> 3);
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
@ -1343,7 +1350,7 @@ static int sh_vou_probe(struct platform_device *pdev)
|
||||||
pix->height = 480;
|
pix->height = 480;
|
||||||
pix->pixelformat = V4L2_PIX_FMT_NV16;
|
pix->pixelformat = V4L2_PIX_FMT_NV16;
|
||||||
pix->field = V4L2_FIELD_NONE;
|
pix->field = V4L2_FIELD_NONE;
|
||||||
pix->bytesperline = VOU_MAX_IMAGE_WIDTH * 2;
|
pix->bytesperline = VOU_MAX_IMAGE_WIDTH;
|
||||||
pix->sizeimage = VOU_MAX_IMAGE_WIDTH * 2 * 480;
|
pix->sizeimage = VOU_MAX_IMAGE_WIDTH * 2 * 480;
|
||||||
pix->colorspace = V4L2_COLORSPACE_SMPTE170M;
|
pix->colorspace = V4L2_COLORSPACE_SMPTE170M;
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue