📄 bitrate.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 + -