37
37
u32 dwHostMemoryRegionSize;
38
38
u32 dwHostHibernatMemRegion;
39
39
u32 dwHostHibernatMemRegionSize;
40
} __attribute__((packed)) tmComResHWDescr_t;
40
} __attribute__((packed));
42
42
/* This is DWORD aligned on windows but I can't find the right
43
43
* gcc syntax to match the binary data from the device.
44
44
* I've manually padded with Reserved[3] bytes to match the hardware,
45
45
* but this could break if GCC decies to pack in a different way.
47
struct tmComResInterfaceDescr {
49
49
u8 bDescriptorType;
50
50
u8 bDescriptorSubtype;
283
283
u8 bPacketLength;
284
284
u8 bStrideLength;
285
285
u8 guidStrideFormat[16];
286
} __attribute__((packed)) tmComResTSFormatDescrHeader_t;
286
} __attribute__((packed));
288
/* Encoder related structures */
290
/* A/V Mux Selector */
291
struct tmComResSelDescrHeader {
298
} __attribute__((packed));
300
/* A/V Audio processor definitions */
301
struct tmComResProcDescrHeader {
309
} __attribute__((packed));
311
/* Video bitrate control message */
312
#define EU_VIDEO_BIT_RATE_MODE_CONSTANT (0)
313
#define EU_VIDEO_BIT_RATE_MODE_VARIABLE_AVERAGE (1)
314
#define EU_VIDEO_BIT_RATE_MODE_VARIABLE_PEAK (2)
315
struct tmComResEncVideoBitRate {
316
u8 ucVideoBitRateMode;
318
u32 dwVideoBitRatePeak;
319
} __attribute__((packed));
321
/* Video Encoder Aspect Ratio message */
322
struct tmComResEncVideoInputAspectRatio {
325
} __attribute__((packed));
327
/* Video Encoder GOP IBP message */
328
/* 1. IPPPPPPPPPPPPPP */
329
/* 2. IBPBPBPBPBPBPBP */
330
/* 3. IBBPBBPBBPBBP */
331
#define SAA7164_ENCODER_DEFAULT_GOP_DIST (1)
332
#define SAA7164_ENCODER_DEFAULT_GOP_SIZE (15)
333
struct tmComResEncVideoGopStructure {
334
u8 ucGOPSize; /* GOP Size 12, 15 */
335
u8 ucRefFrameDist; /* Reference Frame Distance */
336
} __attribute__((packed));
338
/* Encoder processor definition */
339
struct tmComResEncoderDescrHeader {
351
u16 wmVidResolutionsCap;
355
} __attribute__((packed));
357
/* Audio processor definition */
358
struct tmComResAFeatureDescrHeader {
365
} __attribute__((packed));
367
/* Audio control messages */
368
struct tmComResAudioDefaults {
370
u8 ucDecoderFM_Level;
375
} __attribute__((packed));
377
/* Audio bitrate control message */
378
struct tmComResEncAudioBitRate {
379
u8 ucAudioBitRateMode;
381
u32 dwAudioBitRatePeak;
382
} __attribute__((packed));
384
/* Tuner / AV Decoder messages */
385
struct tmComResTunerStandard {
388
} __attribute__((packed));
390
struct tmComResTunerStandardAuto {
392
} __attribute__((packed));
394
/* EEPROM definition for PS stream types */
395
struct tmComResPSFormatDescrHeader {
403
} __attribute__((packed));
405
/* VBI control structure */
406
struct tmComResVBIFormatDescrHeader {
409
u8 subtype; /* VS_FORMAT_VBI */
411
u32 VideoStandard; /* See KS_AnalogVideoStandard, NTSC = 1 */
412
u8 StartLine; /* NTSC Start = 10 */
413
u8 EndLine; /* NTSC = 21 */
414
u8 FieldRate; /* 60 for NTSC */
415
u8 bNumLines; /* Unsed - scheduled for removal */
416
} __attribute__((packed));
418
struct tmComResProbeCommit {
422
} __attribute__((packed));
424
struct tmComResDebugSetLevel {
426
} __attribute__((packed));
428
struct tmComResDebugGetData {
431
} __attribute__((packed));
433
struct tmFwInfoStruct {
442
} __attribute__((packed));