Use signed variables in the lookahead.

Wrap around behavior is enforced manually and we use the values in
arithmetic involving negative integers.

Change-Id: I199706b6f3af91f4fb6fe2ef302fbbc6d0cf5785
This commit is contained in:
Alex Converse 2016-04-27 15:59:18 -07:00
Родитель 36a0c7ffe3
Коммит 918a2fd726
4 изменённых файлов: 18 добавлений и 18 удалений

Просмотреть файл

@ -20,8 +20,8 @@
/* Return the buffer at the given absolute index and increment the index */
static struct lookahead_entry *pop(struct lookahead_ctx *ctx,
unsigned int *idx) {
unsigned int index = *idx;
int *idx) {
int index = *idx;
struct lookahead_entry *buf = ctx->buf + index;
assert(index < ctx->max_sz);
@ -35,7 +35,7 @@ static struct lookahead_entry *pop(struct lookahead_ctx *ctx,
void vp10_lookahead_destroy(struct lookahead_ctx *ctx) {
if (ctx) {
if (ctx->buf) {
unsigned int i;
int i;
for (i = 0; i < ctx->max_sz; i++)
vpx_free_frame_buffer(&ctx->buf[i].img);
@ -221,9 +221,9 @@ struct lookahead_entry *vp10_lookahead_peek(struct lookahead_ctx *ctx,
if (index >= 0) {
// Forward peek
if (index < (int)ctx->sz) {
if (index < ctx->sz) {
index += ctx->read_idx;
if (index >= (int)ctx->max_sz)
if (index >= ctx->max_sz)
index -= ctx->max_sz;
buf = ctx->buf + index;
}

Просмотреть файл

@ -31,10 +31,10 @@ struct lookahead_entry {
#define MAX_PRE_FRAMES 1
struct lookahead_ctx {
unsigned int max_sz; /* Absolute size of the queue */
unsigned int sz; /* Number of buffers currently in the queue */
unsigned int read_idx; /* Read index */
unsigned int write_idx; /* Write index */
int max_sz; /* Absolute size of the queue */
int sz; /* Number of buffers currently in the queue */
int read_idx; /* Read index */
int write_idx; /* Write index */
struct lookahead_entry *buf; /* Buffer list */
};

Просмотреть файл

@ -20,8 +20,8 @@
/* Return the buffer at the given absolute index and increment the index */
static struct lookahead_entry *pop(struct lookahead_ctx *ctx,
unsigned int *idx) {
unsigned int index = *idx;
int *idx) {
int index = *idx;
struct lookahead_entry *buf = ctx->buf + index;
assert(index < ctx->max_sz);
@ -35,7 +35,7 @@ static struct lookahead_entry *pop(struct lookahead_ctx *ctx,
void vp9_lookahead_destroy(struct lookahead_ctx *ctx) {
if (ctx) {
if (ctx->buf) {
unsigned int i;
int i;
for (i = 0; i < ctx->max_sz; i++)
vpx_free_frame_buffer(&ctx->buf[i].img);
@ -221,9 +221,9 @@ struct lookahead_entry *vp9_lookahead_peek(struct lookahead_ctx *ctx,
if (index >= 0) {
// Forward peek
if (index < (int)ctx->sz) {
if (index < ctx->sz) {
index += ctx->read_idx;
if (index >= (int)ctx->max_sz)
if (index >= ctx->max_sz)
index -= ctx->max_sz;
buf = ctx->buf + index;
}

Просмотреть файл

@ -36,10 +36,10 @@ struct lookahead_entry {
#define MAX_PRE_FRAMES 1
struct lookahead_ctx {
unsigned int max_sz; /* Absolute size of the queue */
unsigned int sz; /* Number of buffers currently in the queue */
unsigned int read_idx; /* Read index */
unsigned int write_idx; /* Write index */
int max_sz; /* Absolute size of the queue */
int sz; /* Number of buffers currently in the queue */
int read_idx; /* Read index */
int write_idx; /* Write index */
struct lookahead_entry *buf; /* Buffer list */
};