123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138 |
- #if !defined(VP50_COMP_INTERFACE_H)
- #define VP50_COMP_INTERFACE_H
- /****************************************************************************
- *
- * Module Title : VFW_COMP_INTERFACE.H
- *
- * Description : Interface to video codec demo compressor DLL
- *
- * AUTHOR : Paul Wilkins
- *
- *****************************************************************************
- * Revision History
- *
- * 1.04 JBB 26 AUG 00 JBB Added fixed q setting
- * 1.03 PGW 07/12/99 Retro fit JBB changes
- * 1.02 PGW 16/09/99 Interface changes to simplify things for command line
- * compressor.
- * 1.01 PGW 07/07/99 Added COMP_CONFIG.
- * 1.00 PGW 28/06/99 New configuration baseline
- *
- *****************************************************************************
- */
- // C4514 Unreferenced inline function has been removed
- #ifndef MACPPC
- #pragma warning(disable: 4514)
- #endif
- #include "codec_common_interface.h"
- #include "type_aliases.h"
- /* Command interface to compressor. */
- /* Settings Control */
- typedef struct
- {
- UINT32 FrameSize;
- UINT32 TargetBitRate;
- UINT32 FrameRate;
- UINT32 KeyFrameFrequency;
- UINT32 KeyFrameDataTarget;
- UINT32 Quality;
- BOOL AllowDF;
- BOOL QuickCompress;
- BOOL AutoKeyFrameEnabled;
- INT32 AutoKeyFrameThreshold;
- UINT32 MinimumDistanceToKeyFrame;
- INT32 ForceKeyFrameEvery;
- INT32 NoiseSensitivity;
- BOOL AllowSpatialResampling;
- // The Intended Horizontal Scale
- UINT32 HScale;
- UINT32 HRatio;
- // The Intended Vertical Scale
- UINT32 VScale;
- UINT32 VRatio;
- // The way in which we intended
- UINT32 ScalingMode;
- // Interlaced (0) means no (1) means Yes
- UINT32 Interlaced;
- BOOL FixedQ;
- INT32 StartingBufferLevel; // The initial encoder buffer level
- INT32 OptimalBufferLevel; // The buffer level target we strive to reach / maintain.
- INT32 DropFramesWaterMark; // Buffer fullness watermark for forced drop frames.
- INT32 ResampleDownWaterMark; // Buffer fullness watermark for downwards spacial re-sampling
- INT32 ResampleUpWaterMark; // Buffer fullness watermark where returning to larger image size is consdered
- INT32 OutputFrameRate;
- INT32 Speed;
- BOOL ErrorResilientMode; // compress using a mode that won't completely fall apart if we decompress using
- // the frame after a dropped frame
- } COMP_CONFIG_VP5;
- INLINE
- void comp_config_default_vp5(COMP_CONFIG_VP5* pcc)
- {
- pcc->FrameSize = 0; // No default value
- pcc->TargetBitRate = 300;
- pcc->FrameRate = 0; // No default value
- pcc->KeyFrameFrequency = 120;
- pcc->KeyFrameDataTarget = 0; // No default value
- pcc->Quality = 56;
- pcc->AllowDF = 0;
- pcc->QuickCompress = 1;
- pcc->AutoKeyFrameEnabled = 1;
- pcc->AutoKeyFrameThreshold = 80;
- pcc->MinimumDistanceToKeyFrame = 8;
- pcc->ForceKeyFrameEvery = 120;
- pcc->NoiseSensitivity = 0;
- pcc->AllowSpatialResampling = 0;
- pcc->HScale = 1;
- pcc->HRatio = 1;
- pcc->VScale = 1;
- pcc->VRatio = 1;
- pcc->ScalingMode = MAINTAIN_ASPECT_RATIO;
- pcc->Interlaced = 0;
- pcc->FixedQ = 0;
- pcc->StartingBufferLevel = 6;
- pcc->OptimalBufferLevel = 10;
- pcc->DropFramesWaterMark = 20;
- pcc->ResampleDownWaterMark = 35;
- pcc->ResampleUpWaterMark = 45;
- pcc->OutputFrameRate = 30;
- pcc->Speed = 12;
- pcc->ErrorResilientMode = FALSE;
- return;
- }
- #ifndef YUVINPUTBUFFERCONFIG
- #define YUVINPUTBUFFERCONFIG
- typedef struct
- {
- int YWidth;
- int YHeight;
- int YStride;
- int UVWidth;
- int UVHeight;
- int UVStride;
- char * YBuffer;
- char * UBuffer;
- char * VBuffer;
- } YUV_INPUT_BUFFER_CONFIG;
- #endif
- #endif
|