You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
324 lines
12 KiB
324 lines
12 KiB
/* *************************************************************************
|
|
** INTEL Corporation Proprietary Information
|
|
**
|
|
** This listing is supplied under the terms of a license
|
|
** agreement with INTEL Corporation and may not be copied
|
|
** nor disclosed except in accordance with the terms of
|
|
** that agreement.
|
|
**
|
|
** Copyright (c) 1995 Intel Corporation.
|
|
** All Rights Reserved.
|
|
**
|
|
** *************************************************************************
|
|
////////////////////////////////////////////////////////////////////////////
|
|
//
|
|
// $Author: JMCVEIGH $
|
|
// $Date: 05 Feb 1997 12:14:22 $
|
|
// $Archive: S:\h26x\src\common\cdrvcom.h_v $
|
|
// $Header: S:\h26x\src\common\cdrvcom.h_v 1.21 05 Feb 1997 12:14:22 JMCVEIGH $
|
|
// $Log: S:\h26x\src\common\cdrvcom.h_v $
|
|
;//
|
|
;// Rev 1.21 05 Feb 1997 12:14:22 JMCVEIGH
|
|
;// Support for improved PB-frames custom message handling.
|
|
;//
|
|
;// Rev 1.20 19 Dec 1996 16:44:08 MDUDA
|
|
;// Added custom messages to get machine type information.
|
|
;//
|
|
;// Rev 1.19 16 Dec 1996 17:36:46 JMCVEIGH
|
|
;// H.263+ custom message definitions.
|
|
;//
|
|
;// Rev 1.18 11 Dec 1996 14:56:08 JMCVEIGH
|
|
;//
|
|
;// Added H.263+ field lengths for EPTYPE and custom message definitions.
|
|
;//
|
|
;// Rev 1.17 09 Dec 1996 17:42:46 JMCVEIGH
|
|
;// Added support for arbitrary frame size support.
|
|
;//
|
|
;// Rev 1.16 09 Dec 1996 09:25:22 MDUDA
|
|
;//
|
|
;// Modified _CODEC_STATS stuff.
|
|
;//
|
|
;// Rev 1.15 11 Oct 1996 16:01:46 MDUDA
|
|
;//
|
|
;// Added initial _CODEC_STATS stuff.
|
|
;//
|
|
;// Rev 1.14 10 Sep 1996 16:13:04 KLILLEVO
|
|
;// added custom message in decoder to turn block edge filter on or off
|
|
;//
|
|
;// Rev 1.13 22 Jul 1996 14:44:36 BECHOLS
|
|
;// fixed last comment.
|
|
;//
|
|
;// Rev 1.12 22 Jul 1996 14:36:20 BECHOLS
|
|
;// Wrapped the comment section with /* ... */ /* so that Steve Ing won't
|
|
;// be hassled with changing this.
|
|
;//
|
|
;// Rev 1.11 22 May 1996 18:48:08 BECHOLS
|
|
;//
|
|
;// Added APPLICATION_IDENTIFICATION_CODE.
|
|
;//
|
|
;// Rev 1.10 06 May 1996 00:41:50 BECHOLS
|
|
;//
|
|
;// Added the necessary message constants to allow the app to control
|
|
;// the bit rate dialog stuff.
|
|
;//
|
|
;// Rev 1.9 26 Apr 1996 11:10:44 BECHOLS
|
|
;//
|
|
;// Added RTP stuff.
|
|
;//
|
|
;// Rev 1.8 27 Dec 1995 14:11:54 RMCKENZX
|
|
;// Added copyright notice
|
|
;//
|
|
;// Added CODEC_CUSTOM_ENCODER_CONTROL.
|
|
;// Integrate with build 29
|
|
//
|
|
////////////////////////////////////////////////////////////////////////////
|
|
// ---------------------------------------------------------------------
|
|
// ?_CUSTOM_VIDEO_EFFECTS:
|
|
// This header defines the flags passed to lParam1 to determine what
|
|
// function the driver (capture/codec) performs. The actual message
|
|
// is defined in a custom header provided by each driver team.
|
|
//
|
|
// Parameters:
|
|
// hdrvr - Installable driver handle (must be the video in device
|
|
// channel for capture driver)
|
|
// lParam1 - function selector
|
|
// lParam2 - value/address to return value
|
|
//
|
|
// HIWORD(lParam1) = VE_SET_CURRENT:
|
|
// LOWORD(lParam1) = VE_CONTRAST, VE_HUE, VE_SATURATION, VE_BRIGHTNESS
|
|
// lParam2 = value of corresponding value..
|
|
//
|
|
// HIWORD(lParam1) = VE_GET_FACTORY_DEFAULT:
|
|
// LOWORD(lParam1) = VE_CONTRAST, VE_HUE, VE_SATURATION, VE_BRIGHTNESS
|
|
// lParam2 = (WORD FAR *)Address of the return value.
|
|
//
|
|
// HIWORD(lParam1) = VE_GET_FACTORY_LIMITS:
|
|
// LOWORD(lParam1) = VE_CONTRAST, VE_HUE, VE_SATURATION, VE_BRIGHTNESS
|
|
// lParam2 = (DWORD FAR *)Address of the return value.
|
|
// LOWORD(*lParam2) = lower limit
|
|
// HIWORD(*lParam2) = upper limit
|
|
//
|
|
// HIWORD(lParam1) = VE_SET_INPUT_CONNECTOR:
|
|
// LOWORD(lParam1) = VE_INPUT_COMPOSITE_1, VE_INPUT_SVIDEO_1
|
|
// lParam2 = 0
|
|
// ---------------------------------------------------------------------
|
|
*/
|
|
|
|
// CUSTOM_VIDEO_EFFECTS: LOWORD(lParam1)
|
|
#define VE_CONTRAST 0
|
|
#define VE_HUE 1
|
|
#define VE_SATURATION 2
|
|
#define VE_BRIGHTNESS 3
|
|
|
|
// CUSTOM_VIDEO_EFFECTS: HIWORD(lParam1)
|
|
#define VE_SET_CURRENT 0
|
|
#define VE_GET_FACTORY_DEFAULT 1
|
|
#define VE_GET_FACTORY_LIMITS 2
|
|
#define VE_SET_INPUT_CONNECTOR 3
|
|
#define VE_RESET_CURRENT 4
|
|
|
|
// CUSTOM_SET_INPUT_CONNECTOR: LOWORD(lParam1)
|
|
#define VE_INPUT_COMPOSITE_1 0
|
|
#define VE_INPUT_SVIDEO_1 1
|
|
|
|
////////////////////////////////////////////////////////////////////////////
|
|
// ---------------------------------------------------------------------
|
|
// ?_CUSTOM_ENCODER_CONTROL:
|
|
// This header defines the flags passed to lParam1 to determine what
|
|
// function the driver (capture/codec) performs. The actual message
|
|
// is defined in a custom header provided by each driver team.
|
|
//
|
|
// Parameters:
|
|
// hdrvr - Installable driver handle (must be the video in device
|
|
// channel for capture driver)
|
|
// lParam1 - function selector
|
|
// lParam2 - value/address to return value
|
|
//
|
|
// HIWORD(lParam1) = EC_GET_FACTORY_DEFAULT:
|
|
// LOWORD(lParam1) = EC_RTP_HEADER, EC_RESILIENCY, EC_BITRATE_CONTROL, EC_PACKET_SIZE, EC_PACKET_LOSS, EC_BITRATE
|
|
// lParam2 = (DWORD FAR *)Address of the return value.
|
|
//
|
|
// HIWORD(lParam1) = VE_GET_FACTORY_LIMITS:
|
|
// LOWORD(lParam1) = EC_PACKET_SIZE, EC_PACKET_LOSS, EC_BITRATE
|
|
// lParam2 = (DWORD FAR *)Address of the return value.
|
|
// LOWORD(*lParam2) = lower limit
|
|
// HIWORD(*lParam2) = upper limit
|
|
//
|
|
// HIWORD(lParam1) = EC_GET_CURRENT:
|
|
// LOWORD(lParam1) = EC_RTP_HEADER, EC_RESILIENCY, EC_BITRATE_CONTROL, EC_PACKET_SIZE, EC_PACKET_LOSS, EC_BITRATE
|
|
// lParam2 = (DWORD FAR *)Address of the return value.
|
|
//
|
|
// HIWORD(lParam1) = EC_SET_CURRENT:
|
|
// LOWORD(lParam1) = EC_RTP_HEADER, EC_RESILIENCY, EC_BITRATE_CONTROL, EC_PACKET_SIZE, EC_PACKET_LOSS, EC_BITRATE
|
|
// lParam2 = value of corresponding value..
|
|
// ---------------------------------------------------------------------
|
|
|
|
// CUSTOM_ENCODER_CONTROL: LOWORD(lParam1)
|
|
#define EC_RTP_HEADER 0
|
|
#define EC_RESILIENCY 1
|
|
#define EC_PACKET_SIZE 2
|
|
#define EC_PACKET_LOSS 3
|
|
#define EC_BITRATE_CONTROL 4
|
|
#define EC_BITRATE 5
|
|
|
|
#ifdef H263P
|
|
// H.263+ options
|
|
#define EC_H263_PLUS 1000 // Must be sent before any option messages sent
|
|
|
|
// Numbering convention:
|
|
// 1xxx: H.263+ option
|
|
// xBBx: Bit number of option in extended PTYPE field
|
|
// Numbers are spaced by 10 to allow for additional parameters related to each option
|
|
//#define EC_ADVANCED_INTRA 1040
|
|
#define EC_DEBLOCKING_FILTER 1050
|
|
//#define EC_SLICE_STRUCTURED 1060
|
|
//#define EC_CUSTOM_PCF 1070
|
|
//#define EC_BACK_CHANNEL 1080
|
|
//#define EC_SCALABILITY 1090
|
|
//#define EC_TRUE_BFRAMES 1100
|
|
//#define EC_REF_RESAMPLING 1110
|
|
//#define EC_RES_UPDATE 1120
|
|
#define EC_IMPROVED_PB_FRAMES 1130
|
|
|
|
// Test support, stats monitoring, etc. messages are isolated here.
|
|
#define EC_MACHINE_TYPE 2000
|
|
|
|
// The use of the improved PB-frame mode is currently not signaled in the picture header.
|
|
// We assume that if EPTYPE is present and the frame was signaled as a PB-frame
|
|
// in PTYPE, then the improved PB-frame mode is used.
|
|
|
|
// end H.263+ options
|
|
#endif // H263P
|
|
|
|
// CUSTOM_ENCODER_CONTROL: HIWORD(lParam1)
|
|
#define EC_SET_CURRENT 0
|
|
#define EC_GET_FACTORY_DEFAULT 1
|
|
#define EC_GET_FACTORY_LIMITS 2
|
|
#define EC_GET_CURRENT 3
|
|
#define EC_RESET_TO_FACTORY_DEFAULTS 4
|
|
|
|
////////////////////////////////////////////////////////////////////////////
|
|
// ---------------------------------------------------------------------
|
|
// ?_CUSTOM_DECODER_CONTROL:
|
|
// This header defines the flags passed to lParam1 to determine what
|
|
// function the driver (capture/codec) performs. The actual message
|
|
// is defined in a custom header provided by each driver team.
|
|
//
|
|
// Parameters:
|
|
// hdrvr - Installable driver handle (must be the video in device
|
|
// channel for capture driver)
|
|
// lParam1 - function selector
|
|
// lParam2 - value/address to return value
|
|
//
|
|
// HIWORD(lParam1) = DC_SET_CURRENT:
|
|
// LOWORD(lParam1) = DC_BLOCK_EDGE_FILTER;
|
|
// lParam2 = 0:off, 1:on
|
|
|
|
// CUSTOM_DECODER_CONTROL: LOWORD(lParam1)
|
|
#define DC_BLOCK_EDGE_FILTER 0
|
|
#if defined(H263P)
|
|
// Test support, stats monitoring, etc. messages are isolated here.
|
|
#define DC_MACHINE_TYPE 2000
|
|
#endif
|
|
|
|
// CUSTOM_DECODER_CONTROL: HIWORD(lParam1)
|
|
#define DC_SET_CURRENT 0
|
|
#if defined(H263P)
|
|
// This was added simply to provide a consistent way to access
|
|
// machine type (see DC_MACHINE_TYPE).
|
|
#define DC_GET_CURRENT 1
|
|
#endif
|
|
|
|
|
|
/*
|
|
* Bit stream field sizes
|
|
*/
|
|
#ifdef H261
|
|
const unsigned int FIELDLEN_PSC = 20;
|
|
const unsigned int FIELDLEN_TR = 5; // temporal reference
|
|
|
|
const unsigned int FIELDLEN_PTYPE = 6; // picture type
|
|
const unsigned int FIELDLEN_PTYPE_SPLIT = 1;
|
|
const unsigned int FIELDLEN_PTYPE_DOC = 1;
|
|
const unsigned int FIELDLEN_PTYPE_RELEASE = 1;
|
|
const unsigned int FIELDLEN_PTYPE_SRCFORMAT = 1;
|
|
const unsigned int FIELDLEN_PTYPE_STILL = 1;
|
|
const unsigned int FIELDLEN_PTYPE_SPARE = 1;
|
|
const unsigned int FIELDLEN_PEI = 1; // extra insertion information.
|
|
const unsigned int FIELDLEN_PSPARE = 8; // spare information
|
|
|
|
const unsigned int FIELDLEN_GBSC = 16;
|
|
const unsigned int FIELDLEN_GN = 4;
|
|
const unsigned int FIELDLEN_GQUANT = 5;
|
|
const unsigned int FIELDLEN_GEI = 1;
|
|
|
|
const unsigned int FIELDLEN_MQUANT = 5;
|
|
const unsigned int FIELDLEN_MBA_STUFFING = 11;
|
|
|
|
#else
|
|
const unsigned int FIELDLEN_PSC = 22;
|
|
const unsigned int FIELDLEN_TR = 8; // temporal reference
|
|
|
|
const unsigned int FIELDLEN_PTYPE = 13; // picture type
|
|
const unsigned int FIELDLEN_PTYPE_CONST = 2;
|
|
const unsigned int FIELDLEN_PTYPE_SPLIT = 1;
|
|
const unsigned int FIELDLEN_PTYPE_DOC = 1;
|
|
const unsigned int FIELDLEN_PTYPE_RELEASE = 1;
|
|
const unsigned int FIELDLEN_PTYPE_SRCFORMAT = 3;
|
|
const unsigned int FIELDLEN_PTYPE_CODINGTYPE = 1;
|
|
const unsigned int FIELDLEN_PTYPE_UMV = 1;
|
|
const unsigned int FIELDLEN_PTYPE_SAC = 1;
|
|
const unsigned int FIELDLEN_PTYPE_AP = 1;
|
|
const unsigned int FIELDLEN_PTYPE_PB = 1;
|
|
|
|
#ifdef H263P
|
|
|
|
const unsigned int FIELDLEN_EPTYPE_SRCFORMAT = 3;
|
|
const unsigned int FIELDLEN_EPTYPE_CPCF = 1;
|
|
const unsigned int FIELDLEN_EPTYPE_AI = 1;
|
|
const unsigned int FIELDLEN_EPTYPE_DF = 1;
|
|
const unsigned int FIELDLEN_EPTYPE_SS = 1;
|
|
const unsigned int FIELDLEN_EPTYPE_IPB = 1;
|
|
const unsigned int FIELDLEN_EPTYPE_BCO = 1;
|
|
const unsigned int FIELDLEN_EPTYPE_SCALE = 1;
|
|
const unsigned int FIELDLEN_EPTYPE_TB = 1;
|
|
const unsigned int FIELDLEN_EPTYPE_RPR = 1;
|
|
const unsigned int FIELDLEN_EPTYPE_RRU = 1;
|
|
const unsigned int FIELDLEN_EPTYPE_CONST = 5;
|
|
|
|
const unsigned int FIELDLEN_CSFMT_PARC = 4;
|
|
const unsigned int FIELDLEN_CSFMT_FWI = 9;
|
|
const unsigned int FIELDLEN_CSFMT_CONST = 1;
|
|
const unsigned int FIELDLEN_CSFMT_FHI = 9;
|
|
|
|
const unsigned int FIELDLEN_EPAR_WIDTH = 8;
|
|
const unsigned int FIELDLEN_EPAR_HEIGHT = 8;
|
|
|
|
#endif
|
|
|
|
const unsigned int FIELDLEN_PQUANT = 5; // picture quant value
|
|
const unsigned int FIELDLEN_CPM = 1; // continuous presence multipoint indicator
|
|
const unsigned int FIELDLEN_PLCI = 2; // picture logical channel indicator.
|
|
const unsigned int FIELDLEN_TRB = 3; // temporal reference for B frames
|
|
const unsigned int FIELDLEN_DBQUANT = 2;// B frame differential quant value
|
|
const unsigned int FIELDLEN_PEI = 1; // extra insertion information.
|
|
const unsigned int FIELDLEN_PSPARE = 8; // spare information
|
|
|
|
const unsigned int FIELDLEN_GBSC = 17; // Group of blocks start code
|
|
const unsigned int FIELDLEN_GN = 5; // GOB number.
|
|
const unsigned int FIELDLEN_GLCI = 2; // GOB logical channel indicator
|
|
const unsigned int FIELDLEN_GFID = 2; // GOB Frame ID
|
|
const unsigned int FIELDLEN_GQUANT = 5; // GQUANT
|
|
#endif
|
|
|
|
/*
|
|
* Bit stream field values
|
|
*/
|
|
#ifdef H261
|
|
const unsigned int FIELDVAL_PSC = 0x00010;
|
|
const unsigned int FIELDVAL_GBSC = 0x0001;
|
|
const unsigned int FIELDVAL_MBA_STUFFING = 0x00F;
|
|
#else
|
|
const unsigned int FIELDVAL_PSC = 0x000020;
|
|
const unsigned int FIELDVAL_GBSC = 1;
|
|
#endif
|