75 lines
		
	
	
		
			2.0 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			75 lines
		
	
	
		
			2.0 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
| /*
 | |
|  *  Copyright (c) 2010 The WebM project authors. All Rights Reserved.
 | |
|  *
 | |
|  *  Use of this source code is governed by a BSD-style license
 | |
|  *  that can be found in the dboolhuff.LICENSE file in this directory.
 | |
|  *  See the libvpx original distribution for more information,
 | |
|  *  including patent information, and author information.
 | |
|  */
 | |
| 
 | |
| 
 | |
| #include "dboolhuff.h"
 | |
| 
 | |
| #ifdef _MSC_VER
 | |
| __declspec (align (16))
 | |
|      const unsigned char vp8_norm[256] = {
 | |
| #else
 | |
| const unsigned char vp8_norm[256] __attribute__((aligned (16))) = {
 | |
| #endif
 | |
|   0, 7, 6, 6, 5, 5, 5, 5, 4, 4, 4, 4, 4, 4, 4, 4,
 | |
|   3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
 | |
|   2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
 | |
|   2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
 | |
|   1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
 | |
|   1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
 | |
|   1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
 | |
|   1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
 | |
|   0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 | |
|   0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 | |
|   0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 | |
|   0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 | |
|   0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 | |
|   0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 | |
|   0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 | |
|   0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
 | |
| };
 | |
| 
 | |
| int
 | |
| vp8dx_start_decode (BOOL_DECODER * br,
 | |
|     const unsigned char *source, unsigned int source_sz)
 | |
| {
 | |
|   br->user_buffer_end = source + source_sz;
 | |
|   br->user_buffer = source;
 | |
|   br->value = 0;
 | |
|   br->count = -8;
 | |
|   br->range = 255;
 | |
| 
 | |
|   if (source_sz && !source)
 | |
|     return 1;
 | |
| 
 | |
|   /* Populate the buffer */
 | |
|   vp8dx_bool_decoder_fill (br);
 | |
| 
 | |
|   return 0;
 | |
| }
 | |
| 
 | |
| 
 | |
| void
 | |
| vp8dx_bool_decoder_fill (BOOL_DECODER * br)
 | |
| {
 | |
|   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;
 | |
| }
 |