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: sync-with-kernel: update to the latest kernel
Author:  Hans Verkuil <[email protected]>
Date:    Mon Jun 1 08:48:36 2015 +0200

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

 contrib/freebsd/include/linux/videodev2.h |   40 ++++++++++++++++
 include/linux/dvb/frontend.h              |   70 +++++++++++++++++++----------
 include/linux/videodev2.h                 |   40 ++++++++++++++++
 lib/include/libdvbv5/dvb-fe.h             |    2 +-
 lib/libdvbv5/dvb-v5.c                     |   44 +++++++++---------
 lib/libdvbv5/dvb-v5.h                     |    2 +-
 lib/libdvbv5/gen_dvb_structs.pl           |   56 +++++++++++-----------
 utils/v4l2-ctl/vivid-tpg.c                |   71 ++++++++++-------------------
 8 files changed, 204 insertions(+), 121 deletions(-)

---

http://git.linuxtv.org/cgit.cgi/v4l-utils.git/commit/?id=813a27096caef3416a87921d83bbe7554ccad7cb

diff --git a/contrib/freebsd/include/linux/videodev2.h 
b/contrib/freebsd/include/linux/videodev2.h
index 7014c33..4c18455 100644
--- a/contrib/freebsd/include/linux/videodev2.h
+++ b/contrib/freebsd/include/linux/videodev2.h
@@ -210,6 +210,12 @@ enum v4l2_memory {
 
 /* see also http://vektor.theorem.ca/graphics/ycbcr/ */
 enum v4l2_colorspace {
+       /*
+        * Default colorspace, i.e. let the driver figure it out.
+        * Can only be used with video capture.
+        */
+       V4L2_COLORSPACE_DEFAULT       = 0,
+
        /* SMPTE 170M: used for broadcast NTSC/PAL SDTV */
        V4L2_COLORSPACE_SMPTE170M     = 1,
 
@@ -252,8 +258,20 @@ enum v4l2_colorspace {
 
        /* BT.2020 colorspace, used for UHDTV. */
        V4L2_COLORSPACE_BT2020        = 10,
+
+       /* Raw colorspace: for RAW unprocessed images */
+       V4L2_COLORSPACE_RAW           = 11,
 };
 
+/*
+ * Determine how COLORSPACE_DEFAULT should map to a proper colorspace.
+ * This depends on whether this is a SDTV image (use SMPTE 170M), an
+ * HDTV image (use Rec. 709), or something else (use sRGB).
+ */
+#define V4L2_MAP_COLORSPACE_DEFAULT(is_sdtv, is_hdtv) \
+       ((is_sdtv) ? V4L2_COLORSPACE_SMPTE170M : \
+        ((is_hdtv) ? V4L2_COLORSPACE_REC709 : V4L2_COLORSPACE_SRGB))
+
 enum v4l2_ycbcr_encoding {
        /*
         * Mapping of V4L2_YCBCR_ENC_DEFAULT to actual encodings for the
@@ -298,6 +316,16 @@ enum v4l2_ycbcr_encoding {
        V4L2_YCBCR_ENC_SMPTE240M      = 8,
 };
 
+/*
+ * Determine how YCBCR_ENC_DEFAULT should map to a proper Y'CbCr encoding.
+ * This depends on the colorspace.
+ */
+#define V4L2_MAP_YCBCR_ENC_DEFAULT(colsp) \
+       ((colsp) == V4L2_COLORSPACE_REC709 ? V4L2_YCBCR_ENC_709 : \
+        ((colsp) == V4L2_COLORSPACE_BT2020 ? V4L2_YCBCR_ENC_BT2020 : \
+         ((colsp) == V4L2_COLORSPACE_SMPTE240M ? V4L2_YCBCR_ENC_SMPTE240M : \
+          V4L2_YCBCR_ENC_601)))
+
 enum v4l2_quantization {
        /*
         * The default for R'G'B' quantization is always full range, except
@@ -310,6 +338,17 @@ enum v4l2_quantization {
        V4L2_QUANTIZATION_LIM_RANGE   = 2,
 };
 
+/*
+ * Determine how QUANTIZATION_DEFAULT should map to a proper quantization.
+ * This depends on whether the image is RGB or not, the colorspace and the
+ * Y'CbCr encoding.
+ */
+#define V4L2_MAP_QUANTIZATION_DEFAULT(is_rgb, colsp, ycbcr_enc) \
+       (((is_rgb) && (colsp) == V4L2_COLORSPACE_BT2020) ? 
V4L2_QUANTIZATION_LIM_RANGE : \
+        (((is_rgb) || (ycbcr_enc) == V4L2_YCBCR_ENC_XV601 || \
+         (ycbcr_enc) == V4L2_YCBCR_ENC_XV709 || (colsp) == 
V4L2_COLORSPACE_JPEG) ? \
+        V4L2_QUANTIZATION_FULL_RANGE : V4L2_QUANTIZATION_LIM_RANGE))
+
 enum v4l2_priority {
        V4L2_PRIORITY_UNSET       = 0,  /* not initialized */
        V4L2_PRIORITY_BACKGROUND  = 1,
@@ -436,6 +475,7 @@ struct v4l2_pix_format {
 #define V4L2_PIX_FMT_Y10     v4l2_fourcc('Y', '1', '0', ' ') /* 10  Greyscale  
   */
 #define V4L2_PIX_FMT_Y12     v4l2_fourcc('Y', '1', '2', ' ') /* 12  Greyscale  
   */
 #define V4L2_PIX_FMT_Y16     v4l2_fourcc('Y', '1', '6', ' ') /* 16  Greyscale  
   */
+#define V4L2_PIX_FMT_Y16_BE  v4l2_fourcc_be('Y', '1', '6', ' ') /* 16  
Greyscale BE  */
 
 /* Grey bit-packed formats */
 #define V4L2_PIX_FMT_Y10BPACK    v4l2_fourcc('Y', '1', '0', 'B') /* 10  
Greyscale bit-packed */
diff --git a/include/linux/dvb/frontend.h b/include/linux/dvb/frontend.h
index 8f74a4e..9254649 100644
--- a/include/linux/dvb/frontend.h
+++ b/include/linux/dvb/frontend.h
@@ -36,7 +36,7 @@ typedef enum fe_type {
 } fe_type_t;
 
 
-typedef enum fe_caps {
+enum fe_caps {
        FE_IS_STUPID                    = 0,
        FE_CAN_INVERSION_AUTO           = 0x1,
        FE_CAN_FEC_1_2                  = 0x2,
@@ -68,7 +68,9 @@ typedef enum fe_caps {
        FE_NEEDS_BENDING                = 0x20000000, /* not supported anymore, 
don't use (frontend requires frequency bending) */
        FE_CAN_RECOVER                  = 0x40000000, /* frontend can recover 
from a cable unplug automatically */
        FE_CAN_MUTE_TS                  = 0x80000000  /* frontend can stop 
spurious TS data output */
-} fe_caps_t;
+};
+
+typedef enum fe_caps fe_caps_t;
 
 
 struct dvb_frontend_info {
@@ -103,23 +105,29 @@ struct dvb_diseqc_slave_reply {
 };                     /*  errorcode when no message was received  */
 
 
-typedef enum fe_sec_voltage {
+enum fe_sec_voltage {
        SEC_VOLTAGE_13,
        SEC_VOLTAGE_18,
        SEC_VOLTAGE_OFF
-} fe_sec_voltage_t;
+};
 
+typedef enum fe_sec_voltage fe_sec_voltage_t;
 
-typedef enum fe_sec_tone_mode {
+
+enum fe_sec_tone_mode {
        SEC_TONE_ON,
        SEC_TONE_OFF
-} fe_sec_tone_mode_t;
+};
+
+typedef enum fe_sec_tone_mode fe_sec_tone_mode_t;
 
 
-typedef enum fe_sec_mini_cmd {
+enum fe_sec_mini_cmd {
        SEC_MINI_A,
        SEC_MINI_B
-} fe_sec_mini_cmd_t;
+};
+
+typedef enum fe_sec_mini_cmd fe_sec_mini_cmd_t;
 
 
 /**
@@ -134,7 +142,7 @@ typedef enum fe_sec_mini_cmd {
  *                     to reset DiSEqC, tone and parameters
  */
 
-typedef enum fe_status {
+enum fe_status {
        FE_HAS_SIGNAL           = 0x01,
        FE_HAS_CARRIER          = 0x02,
        FE_HAS_VITERBI          = 0x04,
@@ -142,16 +150,19 @@ typedef enum fe_status {
        FE_HAS_LOCK             = 0x10,
        FE_TIMEDOUT             = 0x20,
        FE_REINIT               = 0x40,
-} fe_status_t;
+};
 
-typedef enum fe_spectral_inversion {
+typedef enum fe_status fe_status_t;
+
+enum fe_spectral_inversion {
        INVERSION_OFF,
        INVERSION_ON,
        INVERSION_AUTO
-} fe_spectral_inversion_t;
+};
 
+typedef enum fe_spectral_inversion fe_spectral_inversion_t;
 
-typedef enum fe_code_rate {
+enum fe_code_rate {
        FEC_NONE = 0,
        FEC_1_2,
        FEC_2_3,
@@ -165,10 +176,12 @@ typedef enum fe_code_rate {
        FEC_3_5,
        FEC_9_10,
        FEC_2_5,
-} fe_code_rate_t;
+};
+
+typedef enum fe_code_rate fe_code_rate_t;
 
 
-typedef enum fe_modulation {
+enum fe_modulation {
        QPSK,
        QAM_16,
        QAM_32,
@@ -183,9 +196,11 @@ typedef enum fe_modulation {
        APSK_32,
        DQPSK,
        QAM_4_NR,
-} fe_modulation_t;
+};
 
-typedef enum fe_transmit_mode {
+typedef enum fe_modulation fe_modulation_t;
+
+enum fe_transmit_mode {
        TRANSMISSION_MODE_2K,
        TRANSMISSION_MODE_8K,
        TRANSMISSION_MODE_AUTO,
@@ -195,9 +210,11 @@ typedef enum fe_transmit_mode {
        TRANSMISSION_MODE_32K,
        TRANSMISSION_MODE_C1,
        TRANSMISSION_MODE_C3780,
-} fe_transmit_mode_t;
+};
+
+typedef enum fe_transmit_mode fe_transmit_mode_t;
 
-typedef enum fe_bandwidth {
+enum fe_bandwidth {
        BANDWIDTH_8_MHZ,
        BANDWIDTH_7_MHZ,
        BANDWIDTH_6_MHZ,
@@ -205,9 +222,11 @@ typedef enum fe_bandwidth {
        BANDWIDTH_5_MHZ,
        BANDWIDTH_10_MHZ,
        BANDWIDTH_1_712_MHZ,
-} fe_bandwidth_t;
+};
+
+typedef enum fe_bandwidth fe_bandwidth_t;
 
-typedef enum fe_guard_interval {
+enum fe_guard_interval {
        GUARD_INTERVAL_1_32,
        GUARD_INTERVAL_1_16,
        GUARD_INTERVAL_1_8,
@@ -219,16 +238,19 @@ typedef enum fe_guard_interval {
        GUARD_INTERVAL_PN420,
        GUARD_INTERVAL_PN595,
        GUARD_INTERVAL_PN945,
-} fe_guard_interval_t;
+};
 
+typedef enum fe_guard_interval fe_guard_interval_t;
 
-typedef enum fe_hierarchy {
+enum fe_hierarchy {
        HIERARCHY_NONE,
        HIERARCHY_1,
        HIERARCHY_2,
        HIERARCHY_4,
        HIERARCHY_AUTO
-} fe_hierarchy_t;
+};
+
+typedef enum fe_hierarchy fe_hierarchy_t;
 
 enum fe_interleaving {
        INTERLEAVING_NONE,
diff --git a/include/linux/videodev2.h b/include/linux/videodev2.h
index e6d2fbe..6908397 100644
--- a/include/linux/videodev2.h
+++ b/include/linux/videodev2.h
@@ -176,6 +176,12 @@ enum v4l2_memory {
 
 /* see also http://vektor.theorem.ca/graphics/ycbcr/ */
 enum v4l2_colorspace {
+       /*
+        * Default colorspace, i.e. let the driver figure it out.
+        * Can only be used with video capture.
+        */
+       V4L2_COLORSPACE_DEFAULT       = 0,
+
        /* SMPTE 170M: used for broadcast NTSC/PAL SDTV */
        V4L2_COLORSPACE_SMPTE170M     = 1,
 
@@ -218,8 +224,20 @@ enum v4l2_colorspace {
 
        /* BT.2020 colorspace, used for UHDTV. */
        V4L2_COLORSPACE_BT2020        = 10,
+
+       /* Raw colorspace: for RAW unprocessed images */
+       V4L2_COLORSPACE_RAW           = 11,
 };
 
+/*
+ * Determine how COLORSPACE_DEFAULT should map to a proper colorspace.
+ * This depends on whether this is a SDTV image (use SMPTE 170M), an
+ * HDTV image (use Rec. 709), or something else (use sRGB).
+ */
+#define V4L2_MAP_COLORSPACE_DEFAULT(is_sdtv, is_hdtv) \
+       ((is_sdtv) ? V4L2_COLORSPACE_SMPTE170M : \
+        ((is_hdtv) ? V4L2_COLORSPACE_REC709 : V4L2_COLORSPACE_SRGB))
+
 enum v4l2_ycbcr_encoding {
        /*
         * Mapping of V4L2_YCBCR_ENC_DEFAULT to actual encodings for the
@@ -264,6 +282,16 @@ enum v4l2_ycbcr_encoding {
        V4L2_YCBCR_ENC_SMPTE240M      = 8,
 };
 
+/*
+ * Determine how YCBCR_ENC_DEFAULT should map to a proper Y'CbCr encoding.
+ * This depends on the colorspace.
+ */
+#define V4L2_MAP_YCBCR_ENC_DEFAULT(colsp) \
+       ((colsp) == V4L2_COLORSPACE_REC709 ? V4L2_YCBCR_ENC_709 : \
+        ((colsp) == V4L2_COLORSPACE_BT2020 ? V4L2_YCBCR_ENC_BT2020 : \
+         ((colsp) == V4L2_COLORSPACE_SMPTE240M ? V4L2_YCBCR_ENC_SMPTE240M : \
+          V4L2_YCBCR_ENC_601)))
+
 enum v4l2_quantization {
        /*
         * The default for R'G'B' quantization is always full range, except
@@ -276,6 +304,17 @@ enum v4l2_quantization {
        V4L2_QUANTIZATION_LIM_RANGE   = 2,
 };
 
+/*
+ * Determine how QUANTIZATION_DEFAULT should map to a proper quantization.
+ * This depends on whether the image is RGB or not, the colorspace and the
+ * Y'CbCr encoding.
+ */
+#define V4L2_MAP_QUANTIZATION_DEFAULT(is_rgb, colsp, ycbcr_enc) \
+       (((is_rgb) && (colsp) == V4L2_COLORSPACE_BT2020) ? 
V4L2_QUANTIZATION_LIM_RANGE : \
+        (((is_rgb) || (ycbcr_enc) == V4L2_YCBCR_ENC_XV601 || \
+         (ycbcr_enc) == V4L2_YCBCR_ENC_XV709 || (colsp) == 
V4L2_COLORSPACE_JPEG) ? \
+        V4L2_QUANTIZATION_FULL_RANGE : V4L2_QUANTIZATION_LIM_RANGE))
+
 enum v4l2_priority {
        V4L2_PRIORITY_UNSET       = 0,  /* not initialized */
        V4L2_PRIORITY_BACKGROUND  = 1,
@@ -402,6 +441,7 @@ struct v4l2_pix_format {
 #define V4L2_PIX_FMT_Y10     v4l2_fourcc('Y', '1', '0', ' ') /* 10  Greyscale  
   */
 #define V4L2_PIX_FMT_Y12     v4l2_fourcc('Y', '1', '2', ' ') /* 12  Greyscale  
   */
 #define V4L2_PIX_FMT_Y16     v4l2_fourcc('Y', '1', '6', ' ') /* 16  Greyscale  
   */
+#define V4L2_PIX_FMT_Y16_BE  v4l2_fourcc_be('Y', '1', '6', ' ') /* 16  
Greyscale BE  */
 
 /* Grey bit-packed formats */
 #define V4L2_PIX_FMT_Y10BPACK    v4l2_fourcc('Y', '1', '0', 'B') /* 10  
Greyscale bit-packed */
diff --git a/lib/include/libdvbv5/dvb-fe.h b/lib/include/libdvbv5/dvb-fe.h
index 5a842ed..00fb6ab 100644
--- a/lib/include/libdvbv5/dvb-fe.h
+++ b/lib/include/libdvbv5/dvb-fe.h
@@ -753,7 +753,7 @@ int dvb_fe_set_default_country(struct dvb_v5_fe_parms 
*parms,
 extern const unsigned fe_bandwidth_name[8];
 extern const char *dvb_v5_name[71];
 extern const void *dvb_v5_attr_names[];
-extern const char *delivery_system_name[20];
+extern const char *delivery_system_name[22];
 extern const char *fe_code_rate_name[14];
 extern const char *fe_modulation_name[15];
 extern const char *fe_transmission_mode_name[10];
diff --git a/lib/libdvbv5/dvb-v5.c b/lib/libdvbv5/dvb-v5.c
index ade44f1..d804c65 100644
--- a/lib/libdvbv5/dvb-v5.c
+++ b/lib/libdvbv5/dvb-v5.c
@@ -241,26 +241,28 @@ const char *dvb_v5_name[71] = {
        [70] = NULL,
 };
 
-const char *delivery_system_name[20] = {
-       [SYS_ATSC] =         "ATSC",
-       [SYS_ATSCMH] =       "ATSCMH",
-       [SYS_CMMB] =         "CMMB",
-       [SYS_DAB] =          "DAB",
-       [SYS_DSS] =          "DSS",
-       [SYS_DTMB] =         "DTMB",
-       [SYS_DVBC_ANNEX_A] = "DVBC/ANNEX_A",
-       [SYS_DVBC_ANNEX_B] = "DVBC/ANNEX_B",
-       [SYS_DVBC_ANNEX_C] = "DVBC/ANNEX_C",
-       [SYS_DVBH] =         "DVBH",
-       [SYS_DVBS] =         "DVBS",
-       [SYS_DVBS2] =        "DVBS2",
-       [SYS_DVBT] =         "DVBT",
-       [SYS_DVBT2] =        "DVBT2",
-       [SYS_ISDBC] =        "ISDBC",
-       [SYS_ISDBS] =        "ISDBS",
-       [SYS_ISDBT] =        "ISDBT",
-       [SYS_TURBO] =        "TURBO",
-       [SYS_UNDEFINED] =    "UNDEFINED",
-       [19] = NULL,
+const char *delivery_system_name[22] = {
+       [SYS_ATSC] =          "ATSC",
+       [SYS_ATSCMH] =        "ATSCMH",
+       [SYS_CMMB] =          "CMMB",
+       [SYS_DAB] =           "DAB",
+       [SYS_DMBTH] =         "DMBTH",
+       [SYS_DSS] =           "DSS",
+       [SYS_DTMB] =          "DTMB",
+       [SYS_DVBC_ANNEX_A] =  "DVBC/ANNEX_A",
+       [SYS_DVBC_ANNEX_AC] = "DVBC/ANNEX_AC",
+       [SYS_DVBC_ANNEX_B] =  "DVBC/ANNEX_B",
+       [SYS_DVBC_ANNEX_C] =  "DVBC/ANNEX_C",
+       [SYS_DVBH] =          "DVBH",
+       [SYS_DVBS] =          "DVBS",
+       [SYS_DVBS2] =         "DVBS2",
+       [SYS_DVBT] =          "DVBT",
+       [SYS_DVBT2] =         "DVBT2",
+       [SYS_ISDBC] =         "ISDBC",
+       [SYS_ISDBS] =         "ISDBS",
+       [SYS_ISDBT] =         "ISDBT",
+       [SYS_TURBO] =         "TURBO",
+       [SYS_UNDEFINED] =     "UNDEFINED",
+       [21] = NULL,
 };
 
diff --git a/lib/libdvbv5/dvb-v5.h b/lib/libdvbv5/dvb-v5.h
index bf2f550..8399fca 100644
--- a/lib/libdvbv5/dvb-v5.h
+++ b/lib/libdvbv5/dvb-v5.h
@@ -26,5 +26,5 @@ const char *fe_inversion_name[4];
 const char *fe_pilot_name[4];
 const char *fe_rolloff_name[5];
 const char *dvb_v5_name[71];
-const char *delivery_system_name[20];
+const char *delivery_system_name[22];
 #endif
diff --git a/lib/libdvbv5/gen_dvb_structs.pl b/lib/libdvbv5/gen_dvb_structs.pl
index 1fab057..e99032c 100755
--- a/lib/libdvbv5/gen_dvb_structs.pl
+++ b/lib/libdvbv5/gen_dvb_structs.pl
@@ -57,12 +57,12 @@ sub gen_fe($)
     #
     # Mode FE_CAPS
     #
-    if (m/typedef enum fe_caps\ {/) {
+    if (m/enum fe_caps\ {/) {
       $mode = FE_CAPS;
       next;
     }
     if ($mode == FE_CAPS) {
-      if (m/\} fe_caps_t;/) {
+      if (m/\};/) {
         $mode = NORMAL;
         next;
       }
@@ -76,12 +76,12 @@ sub gen_fe($)
     #
     # Mode FE_STATUS
     #
-    if (m/typedef enum fe_status\ {/) {
+    if (m/enum fe_status\ {/) {
       $mode = FE_STATUS;
       next;
     }
     if ($mode == FE_STATUS) {
-      if (m/\} fe_status_t;/) {
+      if (m/\};/) {
         $mode = NORMAL;
         next;
       }
@@ -97,12 +97,12 @@ sub gen_fe($)
     #
     # Mode FE_CODERATE
     #
-    if (m/typedef enum fe_code_rate \{/) {
+    if (m/enum fe_code_rate \{/) {
       $mode = FE_CODERATE;
       next;
     }
     if ($mode == FE_CODERATE) {
-      if (m/\} fe_code_rate_t;/) {
+      if (m/\};/) {
         $mode = NORMAL;
         next;
       }
@@ -117,12 +117,12 @@ sub gen_fe($)
     #
     # Mode FE_MODULATION
     #
-    if (m/typedef enum fe_modulation \{/) {
+    if (m/enum fe_modulation \{/) {
       $mode = FE_MODULATION;
       next;
     }
     if ($mode == FE_MODULATION) {
-      if (m/\} fe_modulation_t;/) {
+      if (m/\};/) {
         $mode = NORMAL;
         next;
       }
@@ -137,12 +137,12 @@ sub gen_fe($)
     #
     # Mode FE_TMODE
     #
-    if (m/typedef enum fe_transmit_mode \{/) {
+    if (m/enum fe_transmit_mode \{/) {
       $mode = FE_TMODE;
       next;
     }
     if ($mode == FE_TMODE) {
-      if (m/\} fe_transmit_mode_t;/) {
+      if (m/\};/) {
         $mode = NORMAL;
         next;
       }
@@ -157,12 +157,12 @@ sub gen_fe($)
     #
     # Mode FE_BW
     #
-    if (m/typedef enum fe_bandwidth \{/) {
+    if (m/enum fe_bandwidth \{/) {
       $mode = FE_BW;
       next;
     }
     if ($mode == FE_BW) {
-      if (m/\} fe_bandwidth_t;/) {
+      if (m/\};/) {
         $mode = NORMAL;
         next;
       }
@@ -183,12 +183,12 @@ sub gen_fe($)
     #
     # Mode FE_GINTERVAL
     #
-    if (m/typedef enum fe_guard_interval \{/) {
+    if (m/enum fe_guard_interval \{/) {
       $mode = FE_GINTERVAL;
       next;
     }
     if ($mode == FE_GINTERVAL) {
-      if (m/\} fe_guard_interval_t;/) {
+      if (m/\};/) {
         $mode = NORMAL;
         next;
       }
@@ -203,12 +203,12 @@ sub gen_fe($)
     #
     # Mode FE_HIERARCHY
     #
-    if (m/typedef enum fe_hierarchy \{/) {
+    if (m/enum fe_hierarchy \{/) {
       $mode = FE_HIERARCHY;
       next;
     }
     if ($mode == FE_HIERARCHY) {
-      if (m/\} fe_hierarchy_t;/) {
+      if (m/\};/) {
         $mode = NORMAL;
         next;
       }
@@ -223,12 +223,12 @@ sub gen_fe($)
     #
     # Mode FE_VOLTAGE
     #
-    if (m/typedef enum fe_sec_voltage \{/) {
+    if (m/enum fe_sec_voltage \{/) {
       $mode = FE_VOLTAGE;
       next;
     }
     if ($mode == FE_VOLTAGE) {
-      if (m/\} fe_sec_voltage_t;/) {
+      if (m/\};/) {
         $mode = NORMAL;
         next;
       }
@@ -243,12 +243,12 @@ sub gen_fe($)
     #
     # Mode FE_TONE
     #
-    if (m/typedef enum fe_sec_tone_mode \{/) {
+    if (m/enum fe_sec_tone_mode \{/) {
       $mode = FE_TONE;
       next;
     }
     if ($mode == FE_TONE) {
-      if (m/\} fe_sec_tone_mode_t;/) {
+      if (m/\};/) {
         $mode = NORMAL;
         next;
       }
@@ -263,12 +263,12 @@ sub gen_fe($)
     #
     # Mode FE_INVERSION
     #
-    if (m/typedef enum fe_spectral_inversion \{/) {
+    if (m/enum fe_spectral_inversion \{/) {
       $mode = FE_INVERSION;
       next;
     }
     if ($mode == FE_INVERSION) {
-      if (m/\} fe_spectral_inversion_t;/) {
+      if (m/\};/) {
         $mode = NORMAL;
         next;
       }
@@ -283,12 +283,12 @@ sub gen_fe($)
     #
     # Mode FE_PILOT
     #
-    if (m/typedef enum fe_pilot \{/) {
+    if (m/enum fe_pilot \{/) {
       $mode = FE_PILOT;
       next;
     }
     if ($mode == FE_PILOT) {
-      if (m/\} fe_pilot_t;/) {
+      if (m/\};/) {
         $mode = NORMAL;
         next;
       }
@@ -303,12 +303,12 @@ sub gen_fe($)
     #
     # Mode FE_ROLLOFF
     #
-    if (m/typedef enum fe_rolloff \{/) {
+    if (m/enum fe_rolloff \{/) {
       $mode =FE_ROLLOFF;
       next;
     }
     if ($mode == FE_ROLLOFF) {
-      if (m/\} fe_rolloff_t;/) {
+      if (m/\};/) {
         $mode = NORMAL;
         next;
       }
@@ -333,12 +333,12 @@ sub gen_fe($)
     #
     # Mode FE_DTS
     #
-    if (m/typedef enum fe_delivery_system \{/) {
+    if (m/enum fe_delivery_system \{/) {
       $mode = FE_DTS;
       next;
     }
     if ($mode == FE_DTS) {
-      if (m/\} fe_delivery_system_t;/) {
+      if (m/\};/) {
         $mode = NORMAL;
         next;
       }
diff --git a/utils/v4l2-ctl/vivid-tpg.c b/utils/v4l2-ctl/vivid-tpg.c
index 4df755a..b1147f2 100644
--- a/utils/v4l2-ctl/vivid-tpg.c
+++ b/utils/v4l2-ctl/vivid-tpg.c
@@ -220,6 +220,8 @@ bool tpg_s_fourcc(struct tpg_data *tpg, u32 fourcc)
        case V4L2_PIX_FMT_ARGB32:
        case V4L2_PIX_FMT_ABGR32:
        case V4L2_PIX_FMT_GREY:
+       case V4L2_PIX_FMT_Y16:
+       case V4L2_PIX_FMT_Y16_BE:
                tpg->is_yuv = false;
                break;
        case V4L2_PIX_FMT_YUV444:
@@ -292,6 +294,7 @@ bool tpg_s_fourcc(struct tpg_data *tpg, u32 fourcc)
        }
 
        switch (fourcc) {
+       case V4L2_PIX_FMT_GREY:
        case V4L2_PIX_FMT_RGB332:
                tpg->twopixelsize[0] = 2;
                break;
@@ -313,6 +316,8 @@ bool tpg_s_fourcc(struct tpg_data *tpg, u32 fourcc)
        case V4L2_PIX_FMT_YUV444:
        case V4L2_PIX_FMT_YUV555:
        case V4L2_PIX_FMT_YUV565:
+       case V4L2_PIX_FMT_Y16:
+       case V4L2_PIX_FMT_Y16_BE:
                tpg->twopixelsize[0] = 2 * 2;
                break;
        case V4L2_PIX_FMT_RGB24:
@@ -329,9 +334,6 @@ bool tpg_s_fourcc(struct tpg_data *tpg, u32 fourcc)
        case V4L2_PIX_FMT_YUV32:
                tpg->twopixelsize[0] = 2 * 4;
                break;
-       case V4L2_PIX_FMT_GREY:
-               tpg->twopixelsize[0] = 2;
-               break;
        case V4L2_PIX_FMT_NV12:
        case V4L2_PIX_FMT_NV21:
        case V4L2_PIX_FMT_NV12M:
@@ -712,7 +714,9 @@ static void precalculate_color(struct tpg_data *tpg, int k)
                g <<= 4;
                b <<= 4;
        }
-       if (tpg->qual == TPG_QUAL_GRAY || tpg->fourcc == V4L2_PIX_FMT_GREY) {
+       if (tpg->qual == TPG_QUAL_GRAY || tpg->fourcc == V4L2_PIX_FMT_GREY ||
+           tpg->fourcc == V4L2_PIX_FMT_Y16 ||
+           tpg->fourcc == V4L2_PIX_FMT_Y16_BE) {
                /* Rec. 709 Luma function */
                /* (0.2126, 0.7152, 0.0722) * (255 * 256) */
                r = g = b = (13879 * r + 46688 * g + 4713 * b) >> 16;
@@ -895,6 +899,14 @@ static void gen_twopix(struct tpg_data *tpg,
        case V4L2_PIX_FMT_GREY:
                buf[0][offset] = r_y;
                break;
+       case V4L2_PIX_FMT_Y16:
+               buf[0][offset] = 0;
+               buf[0][offset+1] = r_y;
+               break;
+       case V4L2_PIX_FMT_Y16_BE:
+               buf[0][offset] = r_y;
+               buf[0][offset+1] = 0;
+               break;
        case V4L2_PIX_FMT_YUV422P:
        case V4L2_PIX_FMT_YUV420:
        case V4L2_PIX_FMT_YUV420M:
@@ -1640,48 +1652,15 @@ static void tpg_recalc(struct tpg_data *tpg)
                tpg->recalc_lines = true;
                tpg->real_ycbcr_enc = tpg->ycbcr_enc;
                tpg->real_quantization = tpg->quantization;
-               if (tpg->ycbcr_enc == V4L2_YCBCR_ENC_DEFAULT) {
-                       switch (tpg->colorspace) {
-                       case V4L2_COLORSPACE_REC709:
-                               tpg->real_ycbcr_enc = V4L2_YCBCR_ENC_709;
-                               break;
-                       case V4L2_COLORSPACE_SRGB:
-                               tpg->real_ycbcr_enc = V4L2_YCBCR_ENC_SYCC;
-                               break;
-                       case V4L2_COLORSPACE_BT2020:
-                               tpg->real_ycbcr_enc = V4L2_YCBCR_ENC_BT2020;
-                               break;
-                       case V4L2_COLORSPACE_SMPTE240M:
-                               tpg->real_ycbcr_enc = V4L2_YCBCR_ENC_SMPTE240M;
-                               break;
-                       case V4L2_COLORSPACE_SMPTE170M:
-                       case V4L2_COLORSPACE_470_SYSTEM_M:
-                       case V4L2_COLORSPACE_470_SYSTEM_BG:
-                       case V4L2_COLORSPACE_ADOBERGB:
-                       default:
-                               tpg->real_ycbcr_enc = V4L2_YCBCR_ENC_601;
-                               break;
-                       }
-               }
-               if (tpg->quantization == V4L2_QUANTIZATION_DEFAULT) {
-                       tpg->real_quantization = V4L2_QUANTIZATION_FULL_RANGE;
-                       if (tpg->is_yuv) {
-                               switch (tpg->real_ycbcr_enc) {
-                               case V4L2_YCBCR_ENC_SYCC:
-                               case V4L2_YCBCR_ENC_XV601:
-                               case V4L2_YCBCR_ENC_XV709:
-                                       break;
-                               default:
-                                       tpg->real_quantization =
-                                               V4L2_QUANTIZATION_LIM_RANGE;
-                                       break;
-                               }
-                       } else if (tpg->colorspace == V4L2_COLORSPACE_BT2020) {
-                               /* R'G'B' BT.2020 is limited range */
-                               tpg->real_quantization =
-                                       V4L2_QUANTIZATION_LIM_RANGE;
-                       }
-               }
+               if (tpg->ycbcr_enc == V4L2_YCBCR_ENC_DEFAULT)
+                       tpg->real_ycbcr_enc =
+                               V4L2_MAP_YCBCR_ENC_DEFAULT(tpg->colorspace);
+
+               if (tpg->quantization == V4L2_QUANTIZATION_DEFAULT)
+                       tpg->real_quantization =
+                               V4L2_MAP_QUANTIZATION_DEFAULT(!tpg->is_yuv,
+                                       tpg->colorspace, tpg->real_ycbcr_enc);
+
                tpg_precalculate_colors(tpg);
        }
        if (tpg->recalc_square_border) {

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

Reply via email to