diff options
author | Hans Verkuil <hans.verkuil@cisco.com> | 2015-03-09 17:30:05 +0300 |
---|---|---|
committer | Mauro Carvalho Chehab <mchehab@osg.samsung.com> | 2015-04-03 02:47:46 +0300 |
commit | f0ce4fd6e03afcc22c6b2cd59e155832cea644a9 (patch) | |
tree | 3258c02adc4e9ac703f6275faf9e578f2aedb669 /drivers/media/platform/vivid/vivid-tpg.c | |
parent | 5e72939322862770f5dea9634c3cd2700dff9ca2 (diff) | |
download | linux-f0ce4fd6e03afcc22c6b2cd59e155832cea644a9.tar.xz |
[media] vivid-tpg: move pattern-related fields to struct tpg_draw_params
Add a new function that fills in pattern-related fields in struct
tpg_draw_params.
Signed-off-by: Hans Verkuil <hans.verkuil@cisco.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@osg.samsung.com>
Diffstat (limited to 'drivers/media/platform/vivid/vivid-tpg.c')
-rw-r--r-- | drivers/media/platform/vivid/vivid-tpg.c | 30 |
1 files changed, 24 insertions, 6 deletions
diff --git a/drivers/media/platform/vivid/vivid-tpg.c b/drivers/media/platform/vivid/vivid-tpg.c index cd40d4d7fdd6..b2730bbc96b3 100644 --- a/drivers/media/platform/vivid/vivid-tpg.c +++ b/drivers/media/platform/vivid/vivid-tpg.c @@ -1543,13 +1543,26 @@ struct tpg_draw_params { unsigned right_pillar_start; }; +static void tpg_fill_params_pattern(const struct tpg_data *tpg, unsigned p, + struct tpg_draw_params *params) +{ + params->mv_hor_old = + tpg_hscale_div(tpg, p, tpg->mv_hor_count % tpg->src_width); + params->mv_hor_new = + tpg_hscale_div(tpg, p, (tpg->mv_hor_count + tpg->mv_hor_step) % + tpg->src_width); + params->mv_vert_old = tpg->mv_vert_count % tpg->src_height; + params->mv_vert_new = + (tpg->mv_vert_count + tpg->mv_vert_step) % tpg->src_height; +} + void tpg_fill_plane_buffer(struct tpg_data *tpg, v4l2_std_id std, unsigned p, u8 *vbuf) { struct tpg_draw_params params; - unsigned mv_hor_old = tpg->mv_hor_count % tpg->src_width; - unsigned mv_hor_new = (tpg->mv_hor_count + tpg->mv_hor_step) % tpg->src_width; - unsigned mv_vert_old = tpg->mv_vert_count % tpg->src_height; - unsigned mv_vert_new = (tpg->mv_vert_count + tpg->mv_vert_step) % tpg->src_height; + unsigned mv_hor_old; + unsigned mv_hor_new; + unsigned mv_vert_old; + unsigned mv_vert_new; unsigned wss_width; unsigned f; int h; @@ -1578,12 +1591,17 @@ void tpg_fill_plane_buffer(struct tpg_data *tpg, v4l2_std_id std, unsigned p, u8 params.stride = tpg->bytesperline[p]; params.hmax = (tpg->compose.height * tpg->perc_fill) / 100; + tpg_fill_params_pattern(tpg, p, ¶ms); + + mv_hor_old = params.mv_hor_old; + mv_hor_new = params.mv_hor_new; + mv_vert_old = params.mv_vert_old; + mv_vert_new = params.mv_vert_new; + twopixsize = params.twopixsize; img_width = params.img_width; stride = params.stride; - mv_hor_old = tpg_hscale_div(tpg, p, mv_hor_old); - mv_hor_new = tpg_hscale_div(tpg, p, mv_hor_new); wss_width = tpg->crop.left < tpg->src_width / 2 ? tpg->src_width / 2 - tpg->crop.left : 0; if (wss_width > tpg->crop.width) |