mirror of
https://github.com/Q3Rally-Team/q3rally.git
synced 2024-11-26 05:41:46 +00:00
0d5fb492cd
Fix GCC 6 misleading-indentation warning add SECURITY.md OpenGL2: Restore adding fixed ambient light when HDR is enabled Few LCC memory fixes. fix a few potential buffer overwrite in Game VM Enable compiler optimization on all macOS architectures Don't allow qagame module to create "botlib.log" at ANY filesystem location Make FS_BuildOSPath for botlib.log consistent with typical usage tiny readme thing Remove extra plus sign from Huff_Compress() Fix VMs being able to change CVAR_PROTECTED cvars Don't register fs_game cvar everywhere just to get the value Don't let VMs change engine latch cvars immediately Fix fs_game '..' reading outside of home and base path Fix VMs forcing engine latch cvar to update to latched value Revert my recent cvar latch changes Revert "Don't let VMs change engine latch cvars immediately" Partially revert "Fix fs_game '..' reading outside of home and base path" Revert "Fix VMs forcing engine latch cvar to update to latched value" Fix exploit to bypass filename restrictions on Windows Changes to systemd q3a.service Fix Q_vsnprintf for mingw-w64 Fix timelimit causing an infinite map ending loop Fix invalid access to cluster 0 in AAS_AreaRouteToGoalArea() Fix negative frag/capturelimit causing an infinite map end loop OpenGL2: Fix dark lightmap on shader in mpteam6 Make FS_InvalidGameDir() consider subdirectories invalid [qcommon] Remove dead serialization code [qcommon] Make several zone variables and functions static. Fix MAC_OS_X_VERSION_MIN_REQUIRED for macOS 10.10 and later Increase q3_ui .arena filename list buffer size to 4096 bytes OpenGL2: Fix crash when BSP has deluxe maps and vertex lit surfaces Support Unicode characters greater than 0xFF in cl_consoleKeys Fix macOS app bundle with space in name OpenGL1: Use glGenTextures instead of hardcoded values Remove CON_FlushIn function and where STDIN needs flushing, use tcflush POSIX function Update libogg from 1.3.2 to 1.3.3 Rename (already updated) libogg-1.3.2 to libogg-1.3.3 Update libvorbis from 1.3.5 to 1.3.6 * Fix CVE-2018-5146 - out-of-bounds write on codebook decoding. * Fix CVE-2017-14632 - free() on unitialized data * Fix CVE-2017-14633 - out-of-bounds read Rename (already updated) libvorbis-1.3.5 to libvorbis-1.3.6 Update opus from 1.1.4 to 1.2.1 Rename (already updated) opus-1.1.4 to opus-1.2.1 Update opusfile from 0.8 to 0.9 Rename (already updated) opusfile-0.8 to opusfile-0.9 First swing at a CONTRIBUTING.md Allow loading system OpenAL library on macOS again Remove duplicate setting of FREETYPE_CFLAGS in Makefile Fix exploit to reset player by sending wrong serverId Fix "Going to CS_ZOMBIE for [clientname]" developer message Fix MSG_Read*String*() functions not being able to read last byte from message
100 lines
4.7 KiB
C
100 lines
4.7 KiB
C
/* Copyright (c) 2001-2011 Timothy B. Terriberry
|
|
Copyright (c) 2008-2009 Xiph.Org Foundation */
|
|
/*
|
|
Redistribution and use in source and binary forms, with or without
|
|
modification, are permitted provided that the following conditions
|
|
are met:
|
|
|
|
- Redistributions of source code must retain the above copyright
|
|
notice, this list of conditions and the following disclaimer.
|
|
|
|
- Redistributions in binary form must reproduce the above copyright
|
|
notice, this list of conditions and the following disclaimer in the
|
|
documentation and/or other materials provided with the distribution.
|
|
|
|
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
|
``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
|
|
LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
|
|
A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER
|
|
OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
|
|
EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
|
|
PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
|
|
PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
|
|
LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
|
|
NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
|
|
SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
|
*/
|
|
|
|
#if !defined(_entdec_H)
|
|
# define _entdec_H (1)
|
|
# include <limits.h>
|
|
# include "entcode.h"
|
|
|
|
/*Initializes the decoder.
|
|
_buf: The input buffer to use.
|
|
Return: 0 on success, or a negative value on error.*/
|
|
void ec_dec_init(ec_dec *_this,unsigned char *_buf,opus_uint32 _storage);
|
|
|
|
/*Calculates the cumulative frequency for the next symbol.
|
|
This can then be fed into the probability model to determine what that
|
|
symbol is, and the additional frequency information required to advance to
|
|
the next symbol.
|
|
This function cannot be called more than once without a corresponding call to
|
|
ec_dec_update(), or decoding will not proceed correctly.
|
|
_ft: The total frequency of the symbols in the alphabet the next symbol was
|
|
encoded with.
|
|
Return: A cumulative frequency representing the encoded symbol.
|
|
If the cumulative frequency of all the symbols before the one that
|
|
was encoded was fl, and the cumulative frequency of all the symbols
|
|
up to and including the one encoded is fh, then the returned value
|
|
will fall in the range [fl,fh).*/
|
|
unsigned ec_decode(ec_dec *_this,unsigned _ft);
|
|
|
|
/*Equivalent to ec_decode() with _ft==1<<_bits.*/
|
|
unsigned ec_decode_bin(ec_dec *_this,unsigned _bits);
|
|
|
|
/*Advance the decoder past the next symbol using the frequency information the
|
|
symbol was encoded with.
|
|
Exactly one call to ec_decode() must have been made so that all necessary
|
|
intermediate calculations are performed.
|
|
_fl: The cumulative frequency of all symbols that come before the symbol
|
|
decoded.
|
|
_fh: The cumulative frequency of all symbols up to and including the symbol
|
|
decoded.
|
|
Together with _fl, this defines the range [_fl,_fh) in which the value
|
|
returned above must fall.
|
|
_ft: The total frequency of the symbols in the alphabet the symbol decoded
|
|
was encoded in.
|
|
This must be the same as passed to the preceding call to ec_decode().*/
|
|
void ec_dec_update(ec_dec *_this,unsigned _fl,unsigned _fh,unsigned _ft);
|
|
|
|
/* Decode a bit that has a 1/(1<<_logp) probability of being a one */
|
|
int ec_dec_bit_logp(ec_dec *_this,unsigned _logp);
|
|
|
|
/*Decodes a symbol given an "inverse" CDF table.
|
|
No call to ec_dec_update() is necessary after this call.
|
|
_icdf: The "inverse" CDF, such that symbol s falls in the range
|
|
[s>0?ft-_icdf[s-1]:0,ft-_icdf[s]), where ft=1<<_ftb.
|
|
The values must be monotonically non-increasing, and the last value
|
|
must be 0.
|
|
_ftb: The number of bits of precision in the cumulative distribution.
|
|
Return: The decoded symbol s.*/
|
|
int ec_dec_icdf(ec_dec *_this,const unsigned char *_icdf,unsigned _ftb);
|
|
|
|
/*Extracts a raw unsigned integer with a non-power-of-2 range from the stream.
|
|
The bits must have been encoded with ec_enc_uint().
|
|
No call to ec_dec_update() is necessary after this call.
|
|
_ft: The number of integers that can be decoded (one more than the max).
|
|
This must be at least one, and no more than 2**32-1.
|
|
Return: The decoded bits.*/
|
|
opus_uint32 ec_dec_uint(ec_dec *_this,opus_uint32 _ft);
|
|
|
|
/*Extracts a sequence of raw bits from the stream.
|
|
The bits must have been encoded with ec_enc_bits().
|
|
No call to ec_dec_update() is necessary after this call.
|
|
_ftb: The number of bits to extract.
|
|
This must be between 0 and 25, inclusive.
|
|
Return: The decoded bits.*/
|
|
opus_uint32 ec_dec_bits(ec_dec *_this,unsigned _ftb);
|
|
|
|
#endif
|