mirror of
https://git.ffmpeg.org/ffmpeg.git
synced 2024-12-22 15:23:11 +00:00
Merge commit 'c918e08b9cc9ce8d06159c51da55ec5ab018039a'
* commit 'c918e08b9cc9ce8d06159c51da55ec5ab018039a':
truemotion1: make sure index does not go out of bounds
See: fd4c1c0b70
Merged-by: Michael Niedermayer <michaelni@gmx.at>
This commit is contained in:
commit
bdf831859f
@ -519,11 +519,16 @@ hres,vres,i,i%vres (0 < i < 4)
|
||||
index = s->index_stream[index_stream_index++] * 4; \
|
||||
}
|
||||
|
||||
#define INC_INDEX \
|
||||
do { \
|
||||
if (index >= 1023) { \
|
||||
av_log(s->avctx, AV_LOG_ERROR, "Invalid index value.\n"); \
|
||||
return; \
|
||||
} \
|
||||
index++; \
|
||||
} while (0)
|
||||
|
||||
#define APPLY_C_PREDICTOR() \
|
||||
if(index > 1023){\
|
||||
av_log(s->avctx, AV_LOG_ERROR, " index %d went out of bounds\n", index); \
|
||||
return; \
|
||||
}\
|
||||
predictor_pair = s->c_predictor_table[index]; \
|
||||
horiz_pred += (predictor_pair >> 1); \
|
||||
if (predictor_pair & 1) { \
|
||||
@ -535,16 +540,12 @@ hres,vres,i,i%vres (0 < i < 4)
|
||||
if (predictor_pair & 1) \
|
||||
GET_NEXT_INDEX() \
|
||||
else \
|
||||
index++; \
|
||||
INC_INDEX; \
|
||||
} \
|
||||
} else \
|
||||
index++;
|
||||
INC_INDEX;
|
||||
|
||||
#define APPLY_C_PREDICTOR_24() \
|
||||
if(index > 1023){\
|
||||
av_log(s->avctx, AV_LOG_ERROR, " index %d went out of bounds\n", index); \
|
||||
return; \
|
||||
}\
|
||||
predictor_pair = s->c_predictor_table[index]; \
|
||||
horiz_pred += (predictor_pair >> 1); \
|
||||
if (predictor_pair & 1) { \
|
||||
@ -556,17 +557,13 @@ hres,vres,i,i%vres (0 < i < 4)
|
||||
if (predictor_pair & 1) \
|
||||
GET_NEXT_INDEX() \
|
||||
else \
|
||||
index++; \
|
||||
INC_INDEX; \
|
||||
} \
|
||||
} else \
|
||||
index++;
|
||||
INC_INDEX;
|
||||
|
||||
|
||||
#define APPLY_Y_PREDICTOR() \
|
||||
if(index > 1023){\
|
||||
av_log(s->avctx, AV_LOG_ERROR, " index %d went out of bounds\n", index); \
|
||||
return; \
|
||||
}\
|
||||
predictor_pair = s->y_predictor_table[index]; \
|
||||
horiz_pred += (predictor_pair >> 1); \
|
||||
if (predictor_pair & 1) { \
|
||||
@ -578,16 +575,12 @@ hres,vres,i,i%vres (0 < i < 4)
|
||||
if (predictor_pair & 1) \
|
||||
GET_NEXT_INDEX() \
|
||||
else \
|
||||
index++; \
|
||||
INC_INDEX; \
|
||||
} \
|
||||
} else \
|
||||
index++;
|
||||
INC_INDEX;
|
||||
|
||||
#define APPLY_Y_PREDICTOR_24() \
|
||||
if(index > 1023){\
|
||||
av_log(s->avctx, AV_LOG_ERROR, " index %d went out of bounds\n", index); \
|
||||
return; \
|
||||
}\
|
||||
predictor_pair = s->y_predictor_table[index]; \
|
||||
horiz_pred += (predictor_pair >> 1); \
|
||||
if (predictor_pair & 1) { \
|
||||
@ -599,10 +592,10 @@ hres,vres,i,i%vres (0 < i < 4)
|
||||
if (predictor_pair & 1) \
|
||||
GET_NEXT_INDEX() \
|
||||
else \
|
||||
index++; \
|
||||
INC_INDEX; \
|
||||
} \
|
||||
} else \
|
||||
index++;
|
||||
INC_INDEX;
|
||||
|
||||
#define OUTPUT_PIXEL_PAIR() \
|
||||
*current_pixel_pair = *vert_pred + horiz_pred; \
|
||||
|
Loading…
Reference in New Issue
Block a user