On Friday 28 August 2009 02:16:47 [email protected] wrote:
> From: Santiago Nunez-Corrales <[email protected]>
>
> This patch provides required std and control definitions in TVP7002
> within v4l2.
Is this supposed to be merged into the mainline kernel? Or is this for a
non-mainline tree only?
If you want to get it merged in the mainline, then you should be aware that
there will be a new API for HD resolutions. I hope to have a good proposal
available for discussion during the Linux Plumbers Conference in September.
We are definitely not going to extend v4l2_std_id. That will be frozen for
use with PAL/SECAM/NTSC formats only.
Note that I also have serious doubts about the usefulness of the decoder
controls. Is anyone actually interested in setting those?
It will be another topic for discussion during that conference: how to give
applications access to these low-level controls and whether we even want that.
Regards,
Hans
>
> Signed-off-by: Santiago Nunez-Corrales <[email protected]>
> ---
> include/linux/videodev2.h | 87 +++++++++++++++++++++++++++++++++++++-
> include/media/v4l2-chip-ident.h | 3 +
> 2 files changed, 87 insertions(+), 3 deletions(-)
>
> diff --git a/include/linux/videodev2.h b/include/linux/videodev2.h
> index 74f1687..5a735be 100644
> --- a/include/linux/videodev2.h
> +++ b/include/linux/videodev2.h
> @@ -704,11 +704,66 @@ typedef __u64 v4l2_std_id;
> V4L2_STD_PAL_Nc |\
> V4L2_STD_SECAM)
> #define V4L2_STD_ATSC (V4L2_STD_ATSC_8_VSB |\
> - V4L2_STD_ATSC_16_VSB)
> +
> V4L2_STD_ATSC_16_VSB)
>
> +/* Frequency for HD (i.e. 60 vs 50) */
> +#define V4L2_STD_HDTV_50 ((v4l2_std_id)0x04000000)
> +#define V4L2_STD_HDTV_60 ((v4l2_std_id)0x00000000)
> +
> +/* interlaced vs progressive for HD */
> +#define V4L2_STD_HDTV_I ((v4l2_std_id)0x08000000)
> +#define V4L2_STD_HDTV_P ((v4l2_std_id)0x00000000)
> +
> +/* 720 vs 1080 HD modes */
> +#define V4L2_STD_HDTV_720 ((v4l2_std_id)0x08000000)
> +#define V4L2_STD_HDTV_1080 ((v4l2_std_id)0x10000000)
> +
> +/* FIXME:
> + *
> + * Definitions equal to zero are listed for clarity. In general,
> + * definitions of standards should be improved by using bits to
> + * denote properties, not specific standards and forcing the use
> + * of unnatural combinatorics tricks. Otherwise, as such is the
> + * current case, the descriptor bit space gets exhausted very
> + * rapidly.
> + */
> +
> +/* some standards for SDTV and HDTV */
> +#define V4L2_STD_480P_60 (V4L2_STD_525_60 |\
> + V4L2_STD_HDTV_P)
> +#define V4L2_STD_480I_60 (V4L2_STD_525_60 |\
> + V4L2_STD_HDTV_I)
> +#define V4L2_STD_576P_50 (V4L2_STD_625_50 |\
> + V4L2_STD_HDTV_P)
> +#define V4L2_STD_576I_50 (V4L2_STD_625_50 |\
> + V4L2_STD_HDTV_I)
> +#define V4L2_STD_720P_50 (V4L2_STD_ATSC |\
> + V4L2_STD_HDTV_50 |\
> + V4L2_STD_HDTV_P |\
> + V4L2_STD_HDTV_720)
> +#define V4L2_STD_720P_60 (V4L2_STD_ATSC |\
> + V4L2_STD_HDTV_60 |\
> + V4L2_STD_HDTV_P |\
> + V4L2_STD_HDTV_720)
> +#define V4L2_STD_1080I_50 (V4L2_STD_ATSC |\
> + V4L2_STD_HDTV_50 |\
> + V4L2_STD_HDTV_I |\
> + V4L2_STD_HDTV_1080)
> +#define V4L2_STD_1080I_60 (V4L2_STD_ATSC |\
> + V4L2_STD_HDTV_60 |\
> + V4L2_STD_HDTV_I |\
> + V4L2_STD_HDTV_1080)
> +#define V4L2_STD_1080P_50 (V4L2_STD_ATSC |\
> + V4L2_STD_HDTV_50 |\
> + V4L2_STD_HDTV_P |\
> + V4L2_STD_HDTV_1080)
> +#define V4L2_STD_1080P_60 (V4L2_STD_ATSC |\
> + V4L2_STD_HDTV_60 |\
> + V4L2_STD_HDTV_P |\
> + V4L2_STD_HDTV_1080)
> +
> +
> #define V4L2_STD_UNKNOWN 0
> -#define V4L2_STD_ALL (V4L2_STD_525_60 |\
> - V4L2_STD_625_50)
>
> struct v4l2_standard {
> __u32 index;
> @@ -808,6 +863,7 @@ struct v4l2_ext_controls {
> #define V4L2_CTRL_CLASS_USER 0x00980000 /* Old-style 'user' controls */
> #define V4L2_CTRL_CLASS_MPEG 0x00990000 /* MPEG-compression controls */
> #define V4L2_CTRL_CLASS_CAMERA 0x009a0000 /* Camera class controls */
> +#define V4L2_CTRL_CLASS_DECODER 0x009c0000 /* Decoder class controls */
>
> #define V4L2_CTRL_ID_MASK (0x0fffffff)
> #define V4L2_CTRL_ID2CLASS(id) ((id) & 0x0fff0000UL)
> @@ -1147,6 +1203,31 @@ enum v4l2_exposure_auto_type {
>
> #define V4L2_CID_PRIVACY (V4L2_CID_CAMERA_CLASS_BASE+16)
>
> +
> +/* tvp7002 control IDs*/
> +#define V4L2_CID_TVP7002_BASE V4L2_CTRL_CLASS_DECODER
> +#define V4L2_CID_TVP7002_COARSE_GAIN_R (V4L2_CID_TVP7002_BASE
> + 1)
> +#define V4L2_CID_TVP7002_COARSE_GAIN_G (V4L2_CID_TVP7002_BASE
> + 2)
> +#define V4L2_CID_TVP7002_COARSE_GAIN_B (V4L2_CID_TVP7002_BASE
> + 3)
> +#define V4L2_CID_TVP7002_FINE_GAIN_R (V4L2_CID_TVP7002_BASE + 4)
> +#define V4L2_CID_TVP7002_FINE_GAIN_G (V4L2_CID_TVP7002_BASE + 5)
> +#define V4L2_CID_TVP7002_FINE_GAIN_B (V4L2_CID_TVP7002_BASE + 6)
> +#define V4L2_CID_TVP7002_B_CLAMP (V4L2_CID_TVP7002_BASE + 7)
> +#define V4L2_CID_TVP7002_G_CLAMP (V4L2_CID_TVP7002_BASE + 8)
> +#define V4L2_CID_TVP7002_R_CLAMP (V4L2_CID_TVP7002_BASE + 9)
> +#define V4L2_CID_TVP7002_CLAMP_OFF_EN (V4L2_CID_TVP7002_BASE
> + 10)
> +#define V4L2_CID_TVP7002_FCTCA (V4L2_CID_PRIVATE_BASE
> + 11)
> +#define V4L2_CID_TVP7002_F_CLAMP_GB (V4L2_CID_TVP7002_BASE + 12)
> +#define V4L2_CID_TVP7002_F_CLAMP_R (V4L2_CID_TVP7002_BASE + 13)
> +#define V4L2_CID_TVP7002_CLAMP_START (V4L2_CID_TVP7002_BASE + 14)
> +#define V4L2_CID_TVP7002_CLAMP_W (V4L2_CID_TVP7002_BASE + 15)
> +#define V4L2_CID_TVP7002_B_COARSE_OFF (V4L2_CID_TVP7002_BASE
> + 16)
> +#define V4L2_CID_TVP7002_G_COARSE_OFF (V4L2_CID_TVP7002_BASE
> + 17)
> +#define V4L2_CID_TVP7002_R_COARSE_OFF (V4L2_CID_TVP7002_BASE
> + 18)
> +#define V4L2_CID_TVP7002_B_FINE_OFF (V4L2_CID_TVP7002_BASE + 19)
> +#define V4L2_CID_TVP7002_G_FINE_OFF (V4L2_CID_TVP7002_BASE + 20)
> +#define V4L2_CID_TVP7002_R_FINE_OFF (V4L2_CID_TVP7002_BASE + 21)
> +
> /*
> * T U N I N G
> */
> diff --git a/include/media/v4l2-chip-ident.h b/include/media/v4l2-chip-ident.h
> index 94e908c..b8c86d9 100644
> --- a/include/media/v4l2-chip-ident.h
> +++ b/include/media/v4l2-chip-ident.h
> @@ -129,6 +129,9 @@ enum {
> V4L2_IDENT_SAA6752HS = 6752,
> V4L2_IDENT_SAA6752HS_AC3 = 6753,
>
> + /* module tvp7002: just ident 7002 */
> + V4L2_IDENT_TVP7002 = 7002,
> +
> /* module adv7170: just ident 7170 */
> V4L2_IDENT_ADV7170 = 7170,
>
--
Hans Verkuil - video4linux developer - sponsored by TANDBERG Telecom
_______________________________________________
Davinci-linux-open-source mailing list
[email protected]
http://linux.davincidsp.com/mailman/listinfo/davinci-linux-open-source