Blame gst/rtp/dboolhuff.c

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