lkml.org 
[lkml]   [2020]   [Jun]   [18]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH v3 1/2] media: tpg: Add function to return colors' order of test image
    Date
    Currently there is no method to know the correct order of the colors for
    a test image generated by tpg. Write a function that returns a string of
    colors' order given a tpg. It returns a NULL pointer in case of test
    patterns which do not have a well defined colors' order. Hence add a
    NULL check for text in tpg_gen_text().

    Signed-off-by: Kaaira Gupta <kgupta@es.iitr.ac.in>
    Reviewed-by: Kieran Bingham <kieran.bingham@ideasonboard.com>
    ---
    drivers/media/common/v4l2-tpg/v4l2-tpg-core.c | 32 +++++++++++++++++--
    include/media/tpg/v4l2-tpg.h | 1 +
    2 files changed, 31 insertions(+), 2 deletions(-)

    diff --git a/drivers/media/common/v4l2-tpg/v4l2-tpg-core.c b/drivers/media/common/v4l2-tpg/v4l2-tpg-core.c
    index 50f1e0b28b25..31e6044a4104 100644
    --- a/drivers/media/common/v4l2-tpg/v4l2-tpg-core.c
    +++ b/drivers/media/common/v4l2-tpg/v4l2-tpg-core.c
    @@ -1959,12 +1959,14 @@ void tpg_gen_text(const struct tpg_data *tpg, u8 *basep[TPG_MAX_PLANES][2],
    unsigned step = V4L2_FIELD_HAS_T_OR_B(tpg->field) ? 2 : 1;
    unsigned div = step;
    unsigned first = 0;
    - unsigned len = strlen(text);
    + unsigned len;
    unsigned p;

    - if (font8x16 == NULL || basep == NULL)
    + if (font8x16 == NULL || basep == NULL || text == NULL)
    return;

    + len = strlen(text);
    +
    /* Checks if it is possible to show string */
    if (y + 16 >= tpg->compose.height || x + 8 >= tpg->compose.width)
    return;
    @@ -2006,6 +2008,32 @@ void tpg_gen_text(const struct tpg_data *tpg, u8 *basep[TPG_MAX_PLANES][2],
    }
    EXPORT_SYMBOL_GPL(tpg_gen_text);

    +char *tpg_g_color_order(const struct tpg_data *tpg)
    +{
    + #define COLORBAR(order) #order "white, yellow, cyan, green, magenta, red, blue, black"
    +
    + switch (tpg->pattern) {
    + case TPG_PAT_75_COLORBAR:
    + case TPG_PAT_100_COLORBAR:
    + case TPG_PAT_CSC_COLORBAR:
    + return COLORBAR(Left to right:);
    + case TPG_PAT_100_HCOLORBAR:
    + return COLORBAR(Top to bottom:);
    + case TPG_PAT_BLACK:
    + return "Black";
    + case TPG_PAT_WHITE:
    + return "White";
    + case TPG_PAT_RED:
    + return "Red";
    + case TPG_PAT_GREEN:
    + return "Green";
    + case TPG_PAT_BLUE:
    + return "Blue";
    + default:
    + return NULL;
    + }
    +}
    +
    void tpg_update_mv_step(struct tpg_data *tpg)
    {
    int factor = tpg->mv_hor_mode > TPG_MOVE_NONE ? -1 : 1;
    diff --git a/include/media/tpg/v4l2-tpg.h b/include/media/tpg/v4l2-tpg.h
    index eb191e85d363..4f79cac87b85 100644
    --- a/include/media/tpg/v4l2-tpg.h
    +++ b/include/media/tpg/v4l2-tpg.h
    @@ -252,6 +252,7 @@ void tpg_fillbuffer(struct tpg_data *tpg, v4l2_std_id std,
    bool tpg_s_fourcc(struct tpg_data *tpg, u32 fourcc);
    void tpg_s_crop_compose(struct tpg_data *tpg, const struct v4l2_rect *crop,
    const struct v4l2_rect *compose);
    +char *tpg_g_color_order(const struct tpg_data *tpg);

    static inline void tpg_s_pattern(struct tpg_data *tpg, enum tpg_pattern pattern)
    {
    --
    2.17.1
    \
     
     \ /
      Last update: 2020-06-18 21:06    [W:3.297 / U:0.004 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site