You've already forked FFmpeg
mirror of
https://github.com/FFmpeg/FFmpeg.git
synced 2025-08-04 22:03:09 +02:00
avcodec/qdm2, vorbisdec: Use compile-time const max_depth in get_vlc2
It makes no sense to try to be exact with max depth in get_vlc2(): It will mean that the compiler emits code for all three stages of parsing and runtime checks for whether max_depth is big enough to parse the next stage when a not yet complete code has been encountered. Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
This commit is contained in:
@ -34,6 +34,7 @@
|
||||
#include <math.h>
|
||||
#include <stddef.h>
|
||||
|
||||
#include "libavutil/attributes.h"
|
||||
#include "libavutil/channel_layout.h"
|
||||
#include "libavutil/mem_internal.h"
|
||||
#include "libavutil/thread.h"
|
||||
@ -199,9 +200,8 @@ static const int switchtable[23] = {
|
||||
|
||||
static int qdm2_get_vlc(GetBitContext *gb, const VLC *vlc, int flag, int depth)
|
||||
{
|
||||
int value;
|
||||
|
||||
value = get_vlc2(gb, vlc->table, vlc->bits, depth);
|
||||
int value = get_vlc2(gb, vlc->table, vlc->bits,
|
||||
av_builtin_constant_p(depth) ? depth : 2);
|
||||
|
||||
/* stage-2, 3 bits exponent escape sequence */
|
||||
if (value < 0)
|
||||
|
@ -1150,7 +1150,7 @@ static int vorbis_floor0_decode(vorbis_context *vc,
|
||||
ff_dlog(NULL, "floor0 dec: maximum depth: %d\n", codebook.maxdepth);
|
||||
/* read temp vector */
|
||||
vec_off = get_vlc2(&vc->gb, codebook.vlc.table,
|
||||
codebook.nb_bits, codebook.maxdepth);
|
||||
codebook.nb_bits, 3);
|
||||
if (vec_off < 0)
|
||||
return AVERROR_INVALIDDATA;
|
||||
vec_off *= codebook.dimensions;
|
||||
|
Reference in New Issue
Block a user