190d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber/*
2f71323e297a928af368937089d3ed71239786f86Andreas Huber *  Copyright (c) 2010 The WebM project authors. All Rights Reserved.
390d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber *
4f71323e297a928af368937089d3ed71239786f86Andreas Huber *  Use of this source code is governed by a BSD-style license
5f71323e297a928af368937089d3ed71239786f86Andreas Huber *  that can be found in the LICENSE file in the root of the source
6f71323e297a928af368937089d3ed71239786f86Andreas Huber *  tree. An additional intellectual property rights grant can be found
7f71323e297a928af368937089d3ed71239786f86Andreas Huber *  in the file PATENTS.  All contributing project authors may
8f71323e297a928af368937089d3ed71239786f86Andreas Huber *  be found in the AUTHORS file in the root of the source tree.
990d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber */
1090d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber
1190d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber
1279f15823c34ae1e423108295e416213200bb280fAndreas Huber#include "vp8/encoder/boolhuff.h"
131b362b15af34006e6a11974088a46d42b903418eJohann#include "vpx/internal/vpx_codec_internal.h"
1490d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber
1590d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huberconst unsigned int vp8_prob_cost[256] =
1690d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber{
1790d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber    2047, 2047, 1791, 1641, 1535, 1452, 1385, 1328, 1279, 1235, 1196, 1161, 1129, 1099, 1072, 1046,
1890d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber    1023, 1000,  979,  959,  940,  922,  905,  889,  873,  858,  843,  829,  816,  803,  790,  778,
1990d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber    767,  755,  744,  733,  723,  713,  703,  693,  684,  675,  666,  657,  649,  641,  633,  625,
2090d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber    617,  609,  602,  594,  587,  580,  573,  567,  560,  553,  547,  541,  534,  528,  522,  516,
2190d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber    511,  505,  499,  494,  488,  483,  477,  472,  467,  462,  457,  452,  447,  442,  437,  433,
2290d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber    428,  424,  419,  415,  410,  406,  401,  397,  393,  389,  385,  381,  377,  373,  369,  365,
2390d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber    361,  357,  353,  349,  346,  342,  338,  335,  331,  328,  324,  321,  317,  314,  311,  307,
2490d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber    304,  301,  297,  294,  291,  288,  285,  281,  278,  275,  272,  269,  266,  263,  260,  257,
2590d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber    255,  252,  249,  246,  243,  240,  238,  235,  232,  229,  227,  224,  221,  219,  216,  214,
2690d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber    211,  208,  206,  203,  201,  198,  196,  194,  191,  189,  186,  184,  181,  179,  177,  174,
2790d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber    172,  170,  168,  165,  163,  161,  159,  156,  154,  152,  150,  148,  145,  143,  141,  139,
2890d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber    137,  135,  133,  131,  129,  127,  125,  123,  121,  119,  117,  115,  113,  111,  109,  107,
2990d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber    105,  103,  101,   99,   97,   95,   93,   92,   90,   88,   86,   84,   82,   81,   79,   77,
3090d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber    75,   73,   72,   70,   68,   66,   65,   63,   61,   60,   58,   56,   55,   53,   51,   50,
3190d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber    48,   46,   45,   43,   41,   40,   38,   37,   35,   33,   32,   30,   29,   27,   25,   24,
3290d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber    22,   21,   19,   18,   16,   15,   13,   12,   10,    9,    7,    6,    4,    3,    1,   1
3390d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber};
3490d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber
351b362b15af34006e6a11974088a46d42b903418eJohannint vp8_validate_buffer_arm(const unsigned char *start,
361b362b15af34006e6a11974088a46d42b903418eJohann                            size_t               len,
371b362b15af34006e6a11974088a46d42b903418eJohann                            const unsigned char *end,
381b362b15af34006e6a11974088a46d42b903418eJohann                            struct vpx_internal_error_info *error)
391b362b15af34006e6a11974088a46d42b903418eJohann{
401b362b15af34006e6a11974088a46d42b903418eJohann    return validate_buffer(start, len, end, error);
411b362b15af34006e6a11974088a46d42b903418eJohann}
42