⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 bitrate.h

📁 fix point版本的Ogg Vorbis decoder
💻 H
字号:
/******************************************************************** *                                                                  * * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE.   * * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS     * * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE * * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING.       * *                                                                  * * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2001             * * by the XIPHOPHORUS Company http://www.xiph.org/                  * *                                                                  * ******************************************************************** function: bitrate tracking and management last mod: $Id: bitrate.h,v 1.5 2001/12/23 11:53:52 xiphmont Exp $ ********************************************************************/#ifndef _V_BITRATE_H_#define _V_BITRATE_H_#include "vorbis_codec.h"#include "codec_internal.h"#include "os.h"/* encode side bitrate tracking */#define BITTRACK_DIVISOR 16#define BITTRACK_BPT     6typedef struct bitrate_manager_state {  ogg_uint32_t  *queue_binned;  ogg_uint32_t  *queue_actual;  int            queue_size;  int            queue_head;  int            queue_bins;  long          *avg_binacc;  int            avg_center;  int            avg_tail;  ogg_uint32_t   avg_centeracc;  ogg_uint32_t   avg_sampleacc;  ogg_uint32_t   avg_sampledesired;  ogg_uint32_t   avg_centerdesired;  long          *minmax_binstack;  long          *minmax_posstack;  long          *minmax_limitstack;  long           minmax_stackptr;  long           minmax_acctotal;  int            minmax_tail;  ogg_uint32_t   minmax_sampleacc;  ogg_uint32_t   minmax_sampledesired;  int            next_to_flush;  int            last_to_flush;    double         avgfloat;  double         avgnoise;  long           noisetrigger_postpone;  double         noisetrigger_request;  /* unfortunately, we need to hold queued packet data somewhere */  oggpack_buffer *queue_packet_buffers;  ogg_packet     *queue_packets;} bitrate_manager_state;typedef struct bitrate_manager_info{  /* detailed bitrate management setup */  double queue_avg_time;  double queue_avg_center;  double queue_minmax_time;  double queue_hardmin;  double queue_hardmax;  double queue_avgmin;  double queue_avgmax;  double avgfloat_initial; /* set by mode */  double avgfloat_minimum; /* set by mode */  double avgfloat_downslew_max;  double avgfloat_upslew_max;  double avgfloat_noise_lowtrigger;  double avgfloat_noise_hightrigger;  double avgfloat_noise_minval;  double avgfloat_noise_maxval;} bitrate_manager_info;extern void vorbis_bitrate_init(vorbis_info *vi,bitrate_manager_state *bs);extern void vorbis_bitrate_clear(bitrate_manager_state *bs);extern int vorbis_bitrate_managed(vorbis_block *vb);extern int vorbis_bitrate_maxmarkers(void);extern int vorbis_bitrate_addblock(vorbis_block *vb);extern int vorbis_bitrate_flushpacket(vorbis_dsp_state *vd, ogg_packet *op);#endif

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -