Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 335961ca authored by Steven Toth's avatar Steven Toth Committed by Mauro Carvalho Chehab
Browse files

[media] saa7164: Add some encoder firmwares message types and structs

parent 9b8b0199
Loading
Loading
Loading
Loading
+46 −1
Original line number Diff line number Diff line
@@ -162,5 +162,50 @@
#define SAA_DMASTATE_PAUSE	0x02
#define SAA_DMASTATE_RUN	0x03

/* Hardware registers */
/* A/V Mux Input Selector */
#define SU_INPUT_SELECT_CONTROL 0x01

/* Encoder Profiles */
#define EU_PROFILE_PS_DVD	0x06
#define EU_PROFILE_TS_HQ	0x09
#define EU_VIDEO_FORMAT_MPEG_2	0x02

/* Tuner */
#define TU_AUDIO_MODE_CONTROL  0x17

/* Video Formats */
#define TU_STANDARD_CONTROL		0x00
#define TU_STANDARD_AUTO_CONTROL	0x01
#define TU_STANDARD_NONE		0x00
#define TU_STANDARD_NTSC_M		0x01
#define TU_STANDARD_PAL_I		0x08
#define TU_STANDARD_MANUAL		0x00
#define TU_STANDARD_AUTO		0x01

/* Video Controls */
#define PU_BRIGHTNESS_CONTROL	0x02
#define PU_CONTRAST_CONTROL	0x03
#define PU_HUE_CONTROL		0x06
#define PU_SATURATION_CONTROL	0x07
#define PU_SHARPNESS_CONTROL	0x08

/* Audio Controls */
#define MUTE_CONTROL		0x01
#define VOLUME_CONTROL		0x02
#define AUDIO_DEFAULT_CONTROL	0x0D

/* Default Volume Levels */
#define TMHW_LEV_ADJ_DECLEV_DEFAULT     0x00
#define TMHW_LEV_ADJ_MONOLEV_DEFAULT    0x00
#define TMHW_LEV_ADJ_NICLEV_DEFAULT     0x00
#define TMHW_LEV_ADJ_SAPLEV_DEFAULT     0x00
#define TMHW_LEV_ADJ_ADCLEV_DEFAULT     0x00

/* Encoder Related Commands */
#define EU_PROFILE_CONTROL		0x00
#define EU_VIDEO_FORMAT_CONTROL		0x01
#define EU_VIDEO_BIT_RATE_CONTROL	0x02
#define EU_VIDEO_INPUT_ASPECT_CONTROL	0x0A
#define EU_AUDIO_FORMAT_CONTROL		0x0C
#define EU_AUDIO_BIT_RATE_CONTROL	0x0D
+114 −0
Original line number Diff line number Diff line
@@ -285,3 +285,117 @@ typedef struct {
	u8	guidStrideFormat[16];
} __attribute__((packed)) tmComResTSFormatDescrHeader_t;

/* Encoder related structures */

/* A/V Mux Selector */
typedef struct
{
	u8	len;
	u8	type;
	u8	subtype;
	u8	unitid;
	u8	nrinpins;
	u8	sourceid;
} __attribute__((packed)) tmComResSelDescrHeader_t;

/* A/V Audio processor definitions */
typedef struct
{
	u8	len;
	u8	type;
	u8	subtype;
	u8	unitid;
	u8	sourceid;
	u16	wreserved;
	u8	controlsize;
} __attribute__((packed)) tmComResProcDescrHeader_t;

/* Video bitrate control message */
typedef struct
{
	u8	ucVideoBitRateMode;
	u32	dwVideoBitRate;
	u32	dwVideoBitRatePeak;
} __attribute__((packed)) tmComResEncVideoBitRate_t;

/* Video Encoder Aspect Ratio message */
typedef struct
{
	u8	width;
	u8	height;
} __attribute__((packed)) tmComResEncVideoInputAspectRatio_t;

/* Encoder processor definition */
typedef struct
{
	u8	len;
	u8	type;
	u8	subtype;
	u8	unitid;
	u8	vsourceid;
	u8	asourceid;
	u8	iunit;
	u32	dwmControlCap;
	u32	dwmProfileCap;
	u32	dwmVidFormatCap;
	u8	bmVidBitrateCap;
	u16	wmVidResolutionsCap;
	u16	wmVidFrmRateCap;
	u32	dwmAudFormatCap;
	u8	bmAudBitrateCap;
} __attribute__((packed)) tmComResEncoderDescrHeader_t;

/* Audio processor definition */
typedef struct
{
	u8	len;
	u8	type;
	u8	subtype;
	u8	unitid;
	u8	sourceid;
	u8	controlsize;
} __attribute__((packed)) tmComResAFeatureDescrHeader_t;

/* Audio control messages */
typedef struct
{
	u8	ucDecoderLevel;
	u8	ucDecoderFM_Level;
	u8	ucMonoLevel;
	u8	ucNICAM_Level;
	u8	ucSAP_Level;
	u8	ucADC_Level;
} __attribute__((packed)) tmComResAudioDefaults_t;

/* Audio bitrate control message */
typedef struct
{
	u8	ucAudioBitRateMode;
	u32	dwAudioBitRate;
	u32	dwAudioBitRatePeak;
} __attribute__((packed)) tmComResEncAudioBitRate_t;

/* Tuner / AV Decoder messages */
typedef struct
{
	u8	std;
	u32	country;
} __attribute__((packed)) tmComResTunerStandard_t;

typedef struct
{
	u8	mode;
} __attribute__((packed)) tmComResTunerStandardAuto_t;

/* EEPROM definition for PS stream types */
typedef struct
{
	u8	len;
	u8	type;
	u8	subtype;
	u8	bFormatIndex;
	u16	wPacketLength;
	u16	wPackLength;
	u8	bPackDataType;
} __attribute__((packed)) tmComResPSFormatDescrHeader_t;