mirror of
https://github.com/signalwire/freeswitch.git
synced 2026-11-11 20:17:05 +00:00
update to libvpx b46243d from repo https://chromium.googlesource.com/webm/libvpx
This commit is contained in:
1 parent
2b1f0da5c4
commit
8c5f0301f3
1008 files changed
+110139
-201288
No files matched your search
@@ -8,70 +8,61 @@
|
||||
* be found in the AUTHORS file in the root of the source tree.
|
||||
*/
|
||||
|
||||
|
||||
#include "dboolhuff.h"
|
||||
#include "vp8/common/common.h"
|
||||
#include "vpx_dsp/vpx_dsp_common.h"
|
||||
|
||||
int vp8dx_start_decode(BOOL_DECODER *br,
|
||||
const unsigned char *source,
|
||||
unsigned int source_sz,
|
||||
vpx_decrypt_cb decrypt_cb,
|
||||
void *decrypt_state)
|
||||
{
|
||||
br->user_buffer_end = source+source_sz;
|
||||
br->user_buffer = source;
|
||||
br->value = 0;
|
||||
br->count = -8;
|
||||
br->range = 255;
|
||||
br->decrypt_cb = decrypt_cb;
|
||||
br->decrypt_state = decrypt_state;
|
||||
int vp8dx_start_decode(BOOL_DECODER *br, const unsigned char *source,
|
||||
unsigned int source_sz, vpx_decrypt_cb decrypt_cb,
|
||||
void *decrypt_state) {
|
||||
br->user_buffer_end = source + source_sz;
|
||||
br->user_buffer = source;
|
||||
br->value = 0;
|
||||
br->count = -8;
|
||||
br->range = 255;
|
||||
br->decrypt_cb = decrypt_cb;
|
||||
br->decrypt_state = decrypt_state;
|
||||
|
||||
if (source_sz && !source)
|
||||
return 1;
|
||||
if (source_sz && !source) return 1;
|
||||
|
||||
/* Populate the buffer */
|
||||
vp8dx_bool_decoder_fill(br);
|
||||
/* Populate the buffer */
|
||||
vp8dx_bool_decoder_fill(br);
|
||||
|
||||
return 0;
|
||||
return 0;
|
||||
}
|
||||
|
||||
void vp8dx_bool_decoder_fill(BOOL_DECODER *br)
|
||||
{
|
||||
const unsigned char *bufptr = br->user_buffer;
|
||||
VP8_BD_VALUE value = br->value;
|
||||
int count = br->count;
|
||||
int shift = VP8_BD_VALUE_SIZE - CHAR_BIT - (count + CHAR_BIT);
|
||||
size_t bytes_left = br->user_buffer_end - bufptr;
|
||||
size_t bits_left = bytes_left * CHAR_BIT;
|
||||
int x = (int)(shift + CHAR_BIT - bits_left);
|
||||
int loop_end = 0;
|
||||
unsigned char decrypted[sizeof(VP8_BD_VALUE) + 1];
|
||||
void vp8dx_bool_decoder_fill(BOOL_DECODER *br) {
|
||||
const unsigned char *bufptr = br->user_buffer;
|
||||
VP8_BD_VALUE value = br->value;
|
||||
int count = br->count;
|
||||
int shift = VP8_BD_VALUE_SIZE - CHAR_BIT - (count + CHAR_BIT);
|
||||
size_t bytes_left = br->user_buffer_end - bufptr;
|
||||
size_t bits_left = bytes_left * CHAR_BIT;
|
||||
int x = shift + CHAR_BIT - (int)bits_left;
|
||||
int loop_end = 0;
|
||||
unsigned char decrypted[sizeof(VP8_BD_VALUE) + 1];
|
||||
|
||||
if (br->decrypt_cb) {
|
||||
size_t n = VPXMIN(sizeof(decrypted), bytes_left);
|
||||
br->decrypt_cb(br->decrypt_state, bufptr, decrypted, (int)n);
|
||||
bufptr = decrypted;
|
||||
if (br->decrypt_cb) {
|
||||
size_t n = VPXMIN(sizeof(decrypted), bytes_left);
|
||||
br->decrypt_cb(br->decrypt_state, bufptr, decrypted, (int)n);
|
||||
bufptr = decrypted;
|
||||
}
|
||||
|
||||
if (x >= 0) {
|
||||
count += VP8_LOTS_OF_BITS;
|
||||
loop_end = x;
|
||||
}
|
||||
|
||||
if (x < 0 || bits_left) {
|
||||
while (shift >= loop_end) {
|
||||
count += CHAR_BIT;
|
||||
value |= (VP8_BD_VALUE)*bufptr << shift;
|
||||
++bufptr;
|
||||
++br->user_buffer;
|
||||
shift -= CHAR_BIT;
|
||||
}
|
||||
}
|
||||
|
||||
if(x >= 0)
|
||||
{
|
||||
count += VP8_LOTS_OF_BITS;
|
||||
loop_end = x;
|
||||
}
|
||||
|
||||
if (x < 0 || bits_left)
|
||||
{
|
||||
while(shift >= loop_end)
|
||||
{
|
||||
count += CHAR_BIT;
|
||||
value |= (VP8_BD_VALUE)*bufptr << shift;
|
||||
++bufptr;
|
||||
++br->user_buffer;
|
||||
shift -= CHAR_BIT;
|
||||
}
|
||||
}
|
||||
|
||||
br->value = value;
|
||||
br->count = count;
|
||||
br->value = value;
|
||||
br->count = count;
|
||||
}
|
||||
Reference in new issue
Block a user