Code Search for Developers
 
 
  

AppAvCap.h from bccSDK at Krugle


Show AppAvCap.h syntax highlighted

//****************************************************************************
//  File:       APPAVCAP.H
//  Content:    
//     Network audio/video application capability interface. Provides
//     data structures for adding, removing, enumerating, prioritizing,
//     and enabling/disabling codecs independently for send/receive.
//
//  Copyright (c) Microsoft Corporation 1999-2002, All rights reserved
//
// THIS CODE AND INFORMATION IS PROVIDED "AS IS" WITHOUT WARRANTY OF 
// ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO 
// THE IMPLIED WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A 
// PARTICULAR PURPOSE.
//****************************************************************************


#ifndef _APPAVCAP_H
#define _APPAVCAP_H

#ifdef __BORLANDC__
#pragma option push -b -a8 -pc -A- /*P_O_Push*/
#endif

#include <mmreg.h>
#include <msacm.h>

#include <pshpack8.h> /* Assume 8 byte packing throughout */

// For use as dimension for variable size arrays
#define VARIABLE_DIM 1

// CPU utilization numbers for NetMeeting-provided codecs
#define LNH_48_CPU 97
#define LNH_8_CPU  47
#define LNH_12_CPU 48
#define LNH_16_CPU 49
#define MS_G723_CPU 70
#define CCITT_A_CPU 24
#define	CCITT_U_CPU 25


// AUDIO_FORMAT_ID is an index into an array of AUDCAPS structures
typedef DWORD AUDIO_FORMAT_ID;
#define INVALID_AUDIO_FORMAT 0xffffffff
typedef DWORD MEDIA_FORMAT_ID;
#define INVALID_MEDIA_FORMAT 0xffffffff
// VIDEO_FORMAT_ID is an index into an array of VIDCAPS structures
typedef DWORD VIDEO_FORMAT_ID;
#define INVALID_VIDEO_FORMAT 0xffffffff

/*
 *  @doc  EXTERNAL DATASTRUC
 *
 *	AUDIO capabilities info structure
 *
 *	@struct AUDCAP_INFO | AUDIO capabilities info structure.
 *	Use for both input and output when calling capabilties APIs.
 *	The fields are input-only, output-only or input/output depending on the API used.
 *	Behavior is undefined if these are altered.
 */

// basic audcap structure
typedef struct BasicAudCapInfo
{
	WORD wFormatTag;			// @field The ACM format tag
	AUDIO_FORMAT_ID	Id;			// @field (OUTPUT only) The local id (a.k.a. *Handle*) of this capability entry
	char szFormat[ACMFORMATDETAILS_FORMAT_CHARS];	// @field (OUTPUT only) Descriptive string of
													// the format, e.g. "Microsoft GSM 6.10"
	UINT uMaxBitrate;			// @field (OUTPUT only) Worst case bitrate
	UINT uAvgBitrate;			// @field The average bitrate for this codec
	WORD wCPUUtilizationEncode;	// @field % of Pentium 90Mhz needed for compress
	WORD wCPUUtilizationDecode;	// @field % of Pentium 90Mhz needed for decompress
	
	BOOL bSendEnabled;			// @field OK to use this format for sending
	BOOL bRecvEnabled;			// @field OK to use this format for receiving
	WORD wSortIndex;			// @field The ordered position of this entry
								// in the capability table. Can be used as input only 
								// in ReorderFormats
}BASIC_AUDCAP_INFO, *PBASIC_AUDCAP_INFO, AUDCAP_INFO, *PAUDCAP_INFO;

/*
 *	@struct AUDCAP_INFO_LIST | List of AUDCAP_INFO structures
 */
typedef struct _audcapinfolist
{
	ULONG	cFormats;			// @field Number of AUDCAP_INFO structures in this list
	AUDCAP_INFO	aFormats[VARIABLE_DIM];	// @field cFormats AUDCAP_INFO structures
} AUDCAP_INFO_LIST, *PAUDCAP_INFO_LIST;

/*
 *	@enum VIDEO_SIZES | Enumeration values for the three video sizes supported by NetMeeting
 */
typedef enum
{
	Small = 0,	// @emem Small size video
	Medium,		// @emem Medium size video
	Large		// @emem Large size video
} VIDEO_SIZES;

/*
 *	VIDEO capabilities info structure
 *
 *	@struct VIDCAP_INFO | VIDEO capabilities info structure.
 *	Use for both input and output when calling capabilties APIs.
 *	The fields are input-only, output-only or input/output depending on the API used.
 *	Behavior is undefined if these are altered.
 */

// VIDCAP_INFO structure
typedef struct BasicVidCapInfo
{
	// format identification
	DWORD dwFormatTag;			// @field The format tag of this format
	VIDEO_FORMAT_ID	Id;			// @field (OUTPUT only) The local id (a.k.a. *Handle*) of this capability entry
	char szFormat[ACMFORMATDETAILS_FORMAT_CHARS];	// @field (OUTPUT only) Descriptive string of,
													// the formate.g. "Microsoft H.263"
	// NetMeeting specific info
	WORD wCPUUtilizationEncode;	// @field % of Pentium 90Mhz needed for compress
	WORD wCPUUtilizationDecode;	// @field % of Pentium 90Mhz needed for decompress
	BOOL bSendEnabled;			// @field OK to use this format for sending
	BOOL bRecvEnabled;			// @field OK to use this format for receiving
	WORD wSortIndex;			// @field (OUTPUT only) The ordered position of this entry
								// in the capability table.

	// video format details
	VIDEO_SIZES enumVideoSize;	// @field The video size for this format. Different video sizes for 
								// the same formats must be added as separate formats 
    BITMAPINFOHEADER bih;		// @field The BITMAPINFOHEADER sturcture for the video 
								// size in enumVideosize
	UINT uFrameRate;			// @field Number of frames per second
	DWORD dwBitsPerSample;		// @field number of bits per sample for this format. Must
								// match the value in bih.biBitCount
	UINT uAvgBitrate;			// @field The average bitrate for this codec
	UINT uMaxBitrate;			// (OUTPUT only) Worst case bitrate
}BASIC_VIDCAP_INFO, *PBASIC_VIDCAP_INFO, VIDCAP_INFO, *PVIDCAP_INFO;


/*
 *	@struct VIDCAP_INFO_LIST | List of VIDCAP_INFO structures
 */
typedef struct _vidcapinfolist
{
	ULONG	cFormats;// @field Number of VIDCAP_INFO structures in this list
	VIDCAP_INFO	aFormats[VARIABLE_DIM];	// @field cFormats VIDCAP_INFO structures
} VIDCAP_INFO_LIST, *PVIDCAP_INFO_LIST;

#include <poppack.h> /* End byte packing */

#ifdef __BORLANDC__
#pragma option pop /*P_O_Pop*/
#endif

#endif	//#ifndef _APPAVCAP_H





See more files for this project here

bccSDK

This project has a goal to provide complete port of latest MS Platform SDK along with some other commonly used separate SDK\'s for both older and newer Borland compilers. This includes headers, idl files and static and import lib files.

Project homepage: http://sourceforge.net/projects/bccsdk
Programming language(s): C,C++,IDL
License: mit

  atl/
  idl/
  wtl/
  ADSIid.h
  AF_Irda.h
  AccCtrl.h
  AclAPI.h
  AclUI.h
  ActivScp.h
  ActiveDS.h
  Admex.h
  Adptif.h
  AdsDb.h
  AdsErr.h
  AdsHlp.h
  AdsProp.h
  Adsnms.h
  Adssts.h
  AdtGen.h
  AgtCtl.h
  AgtCtl_i.c
  AgtErr.h
  AgtSvr.h
  AgtSvr_i.c
  AppAvCap.h
  AqAdmTyp.h
  AqErr.mc
  Asptlb.h
  AtalkWsh.h
  AuthZ.h
  Authif.h
  AviFmt.h
  BLBErr.h
  BaseTsd.h
  BaseTyps.h
  BatClass.h
  BiDiSpl.h
  Bits.h
  BitsMsg.h
  BluetoothAPIs.h
  CChannel.h
  CDONTS.h
  CDOSys.h
  CDOSysErr.h
  CDOSysStr.h
  CDOSys_I.c
  CGuid.h
  CatErr.mc
  CdErr.h
  CeLib.h
  CertAdm.h
  CertBCli.h
  CertBase.h
  CertCli.h
  CertEnc.h
  CertExit.h
  CertMod.h
  CertPol.h
  CertSrv.h
  CertView.h
  Certif.h
  ChPtrArr.h
  ChStrArr.h
  ChString.h
  ChanMgr.h
  CiError.h
  CluAdmEx.h
  ClusApi.h
  ClusCfgGuids.h
  ClusCfgServer.h
  ClusCfgWizard.h
  CmnQuery.h
  Codecs.h
  Color.Dlg
  ColorDlg.h
  ComAdmin.h
  ComCat.h
  ComDef.h
  ComSvcs.h
  CommCtrl.h
  CommCtrl.rh
  CommDlg.h
  CompObj.h
  ConfPriv.h
  CorReg.h
  Cpl.h
  Cplext.h
  CustCntl.h
  CustomAw.h
  DHtmldid.h
  DHtmled.h
  DHtmled.js
  DHtmled.vbs
  DHtmliid.h
  DSAdmin.h
  DSClient.h
  DSQuery.h
  DSRole.h
  DShow.h
  DataPath.h
  DbgEng.h
  DbgHelp.h
  DbgProp.h
  Dbt.h