This is an automatic generated email to let you know that the following patch 
were queued at the 
http://git.linuxtv.org/cgit.cgi/v4l-utils.git tree:

Subject: v4l-utils: sync with latest media kernel
Author:  Hans Verkuil <[email protected]>
Date:    Sun Jul 19 15:36:12 2020 +0200

Signed-off-by: Hans Verkuil <[email protected]>

 contrib/freebsd/include/linux/videodev2.h |  2 ++
 include/linux/videodev2.h                 |  2 ++
 utils/common/v4l2-tpg-core.c              | 39 +++++++++++++++++++++++++------
 utils/common/v4l2-tpg.h                   |  3 ++-
 4 files changed, 38 insertions(+), 8 deletions(-)

---

http://git.linuxtv.org/cgit.cgi/v4l-utils.git/commit/?id=452aa2e85517047d869a167ddb50931596def326
diff --git a/contrib/freebsd/include/linux/videodev2.h 
b/contrib/freebsd/include/linux/videodev2.h
index 2e01f68a4db5..4121ea0cc589 100644
--- a/contrib/freebsd/include/linux/videodev2.h
+++ b/contrib/freebsd/include/linux/videodev2.h
@@ -203,6 +203,8 @@ enum v4l2_buf_type {
         || (type) == V4L2_BUF_TYPE_SDR_OUTPUT                  \
         || (type) == V4L2_BUF_TYPE_META_OUTPUT)
 
+#define V4L2_TYPE_IS_CAPTURE(type) (!V4L2_TYPE_IS_OUTPUT(type))
+
 enum v4l2_tuner_type {
        V4L2_TUNER_RADIO             = 1,
        V4L2_TUNER_ANALOG_TV         = 2,
diff --git a/include/linux/videodev2.h b/include/linux/videodev2.h
index 7e56bca388dd..26b87f6d0016 100644
--- a/include/linux/videodev2.h
+++ b/include/linux/videodev2.h
@@ -169,6 +169,8 @@ enum v4l2_buf_type {
         || (type) == V4L2_BUF_TYPE_SDR_OUTPUT                  \
         || (type) == V4L2_BUF_TYPE_META_OUTPUT)
 
+#define V4L2_TYPE_IS_CAPTURE(type) (!V4L2_TYPE_IS_OUTPUT(type))
+
 enum v4l2_tuner_type {
        V4L2_TUNER_RADIO             = 1,
        V4L2_TUNER_ANALOG_TV         = 2,
diff --git a/utils/common/v4l2-tpg-core.c b/utils/common/v4l2-tpg-core.c
index 6927b9dd447f..44972222d4e8 100644
--- a/utils/common/v4l2-tpg-core.c
+++ b/utils/common/v4l2-tpg-core.c
@@ -1916,44 +1916,46 @@ typedef struct { u16 __; u8 _; } __packed x24;
 
 static noinline void tpg_print_str_2(const struct tpg_data *tpg, u8 
*basep[TPG_MAX_PLANES][2],
                        unsigned p, unsigned first, unsigned div, unsigned step,
-                       int y, int x, char *text, unsigned len)
+                       int y, int x, const char *text, unsigned len)
 {
        PRINTSTR(u8);
 }
 
 static noinline void tpg_print_str_4(const struct tpg_data *tpg, u8 
*basep[TPG_MAX_PLANES][2],
                        unsigned p, unsigned first, unsigned div, unsigned step,
-                       int y, int x, char *text, unsigned len)
+                       int y, int x, const char *text, unsigned len)
 {
        PRINTSTR(u16);
 }
 
 static noinline void tpg_print_str_6(const struct tpg_data *tpg, u8 
*basep[TPG_MAX_PLANES][2],
                        unsigned p, unsigned first, unsigned div, unsigned step,
-                       int y, int x, char *text, unsigned len)
+                       int y, int x, const char *text, unsigned len)
 {
        PRINTSTR(x24);
 }
 
 static noinline void tpg_print_str_8(const struct tpg_data *tpg, u8 
*basep[TPG_MAX_PLANES][2],
                        unsigned p, unsigned first, unsigned div, unsigned step,
-                       int y, int x, char *text, unsigned len)
+                       int y, int x, const char *text, unsigned len)
 {
        PRINTSTR(u32);
 }
 
 void tpg_gen_text(const struct tpg_data *tpg, u8 *basep[TPG_MAX_PLANES][2],
-                 int y, int x, char *text)
+                 int y, int x, const char *text)
 {
        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;
@@ -1994,6 +1996,29 @@ void tpg_gen_text(const struct tpg_data *tpg, u8 
*basep[TPG_MAX_PLANES][2],
        }
 }
 
+const char *tpg_g_color_order(const struct tpg_data *tpg)
+{
+       switch (tpg->pattern) {
+       case TPG_PAT_75_COLORBAR:
+       case TPG_PAT_100_COLORBAR:
+       case TPG_PAT_CSC_COLORBAR:
+       case TPG_PAT_100_HCOLORBAR:
+               return "White, yellow, cyan, green, magenta, red, blue, black";
+       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/utils/common/v4l2-tpg.h b/utils/common/v4l2-tpg.h
index b2eab10d346d..91da74ecf63d 100644
--- a/utils/common/v4l2-tpg.h
+++ b/utils/common/v4l2-tpg.h
@@ -287,7 +287,7 @@ void tpg_log_status(struct tpg_data *tpg);
 
 void tpg_set_font(const u8 *f);
 void tpg_gen_text(const struct tpg_data *tpg,
-               u8 *basep[TPG_MAX_PLANES][2], int y, int x, char *text);
+               u8 *basep[TPG_MAX_PLANES][2], int y, int x, const char *text);
 void tpg_calc_text_basep(struct tpg_data *tpg,
                u8 *basep[TPG_MAX_PLANES][2], unsigned p, u8 *vbuf);
 unsigned tpg_g_interleaved_plane(const struct tpg_data *tpg, unsigned 
buf_line);
@@ -298,6 +298,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);
+const char *tpg_g_color_order(const struct tpg_data *tpg);
 
 static inline void tpg_s_pattern(struct tpg_data *tpg, enum tpg_pattern 
pattern)
 {

_______________________________________________
linuxtv-commits mailing list
[email protected]
https://www.linuxtv.org/cgi-bin/mailman/listinfo/linuxtv-commits

Reply via email to