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:
Родитель
36a0c7ffe3
Коммит
918a2fd726
|
@ -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 */
|
||||
};
|
||||
|
||||
|
|
Загрузка…
Ссылка в новой задаче