X-Git-Url: http://review.tizen.org/git/?a=blobdiff_plain;f=lib%2Fbitrate.h;h=9f0a0179fd673b7010f4ec0a9b2382987cf465f2;hb=e5b1378996dba3ea82fb35403cb1f0bbff19495c;hp=87ef7040baa5753436b231bd629679bbf51a6667;hpb=a06da3587f26a6c068ed87a0d63d59d839399858;p=platform%2Fupstream%2Flibvorbis.git diff --git a/lib/bitrate.h b/lib/bitrate.h index 87ef704..9f0a017 100644 --- a/lib/bitrate.h +++ b/lib/bitrate.h @@ -5,13 +5,13 @@ * 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/ * + * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2007 * + * by the Xiph.Org Foundation http://www.xiph.org/ * * * ******************************************************************** function: bitrate tracking and management - last mod: $Id: bitrate.h,v 1.3 2001/12/19 07:33:51 xiphmont Exp $ + last mod: $Id$ ********************************************************************/ @@ -23,73 +23,36 @@ #include "os.h" /* encode side bitrate tracking */ -#define BITTRACK_DIVISOR 16 typedef struct bitrate_manager_state { - ogg_uint32_t *queue_binned; - ogg_uint32_t *queue_actual; - int queue_size; + int managed; - int queue_head; - int queue_bins; + long avg_reservoir; + long minmax_reservoir; + long avg_bitsper; + long min_bitsper; + long max_bitsper; - 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; - + long short_per_long; 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; + vorbis_block *vb; + int choice; } 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; + long avg_rate; + long min_rate; + long max_rate; + long reservoir_bits; + double reservoir_bias; + + double slew_damp; - double avgfloat_initial; /* set by mode */ - double avgfloat_minimum; /* set by mode */ - double avgfloat_downslew_max; - double avgfloat_upslew_max; - double avgfloat_downhyst; - double avgfloat_uphyst; - 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);