dboolhuff.c 1.31 KB
Newer Older
John Koleszar's avatar
John Koleszar committed
1
/*
2
 *  Copyright (c) 2010 The WebM project authors. All Rights Reserved.
John Koleszar's avatar
John Koleszar committed
3
 *
4
 *  Use of this source code is governed by a BSD-style license
5
6
 *  that can be found in the LICENSE file in the root of the source
 *  tree. An additional intellectual property rights grant can be found
7
 *  in the file PATENTS.  All contributing project authors may
8
 *  be found in the AUTHORS file in the root of the source tree.
John Koleszar's avatar
John Koleszar committed
9
10
11
12
13
14
15
 */


#include "dboolhuff.h"
#include "vpx_ports/mem.h"
#include "vpx_mem/vpx_mem.h"

Johann's avatar
Johann committed
16
17
18
int vp8dx_start_decode(BOOL_DECODER *br,
                       const unsigned char *source,
                       unsigned int source_sz)
John Koleszar's avatar
John Koleszar committed
19
{
20
21
22
23
    br->user_buffer_end = source+source_sz;
    br->user_buffer     = source;
    br->value    = 0;
    br->count    = -8;
John Koleszar's avatar
John Koleszar committed
24
25
26
27
28
29
    br->range    = 255;

    if (source_sz && !source)
        return 1;

    /* Populate the buffer */
Johann's avatar
Johann committed
30
    vp8dx_bool_decoder_fill(br);
John Koleszar's avatar
John Koleszar committed
31
32
33
34
35

    return 0;
}


Johann's avatar
Johann committed
36
void vp8dx_bool_decoder_fill(BOOL_DECODER *br)
John Koleszar's avatar
John Koleszar committed
37
{
38
39
40
41
42
43
44
45
46
47
48
49
50
51
    const unsigned char *bufptr;
    const unsigned char *bufend;
    VP8_BD_VALUE         value;
    int                  count;
    bufend = br->user_buffer_end;
    bufptr = br->user_buffer;
    value = br->value;
    count = br->count;

    VP8DX_BOOL_DECODER_FILL(count, value, bufptr, bufend);

    br->user_buffer = bufptr;
    br->value = value;
    br->count = count;
John Koleszar's avatar
John Koleszar committed
52
}