summaryrefslogtreecommitdiff
path: root/contrib/ffmpeg/libavcodec/error_resilience.c
diff options
context:
space:
mode:
authorDiego 'Flameeyes' Pettenò <flameeyes@gmail.com>2007-04-03 01:18:24 +0200
committerDiego 'Flameeyes' Pettenò <flameeyes@gmail.com>2007-04-03 01:18:24 +0200
commitfb09531720a4aa2dfa97e5a9a246a453b6278fd2 (patch)
tree61525c3a8ddb419d3838a26e488fc3659079bbcd /contrib/ffmpeg/libavcodec/error_resilience.c
parent294d01046724e28b7193bcb65bf2a0391b0135b6 (diff)
downloadxine-lib-fb09531720a4aa2dfa97e5a9a246a453b6278fd2.tar.gz
xine-lib-fb09531720a4aa2dfa97e5a9a246a453b6278fd2.tar.bz2
Sync with a more recent version of FFmpeg.
Diffstat (limited to 'contrib/ffmpeg/libavcodec/error_resilience.c')
-rw-r--r--contrib/ffmpeg/libavcodec/error_resilience.c9
1 files changed, 7 insertions, 2 deletions
diff --git a/contrib/ffmpeg/libavcodec/error_resilience.c b/contrib/ffmpeg/libavcodec/error_resilience.c
index 0923721ee..175ccf73a 100644
--- a/contrib/ffmpeg/libavcodec/error_resilience.c
+++ b/contrib/ffmpeg/libavcodec/error_resilience.c
@@ -612,12 +612,17 @@ void ff_er_frame_start(MpegEncContext *s){
* error of the same type occured
*/
void ff_er_add_slice(MpegEncContext *s, int startx, int starty, int endx, int endy, int status){
- const int start_i= clip(startx + starty * s->mb_width , 0, s->mb_num-1);
- const int end_i = clip(endx + endy * s->mb_width , 0, s->mb_num);
+ const int start_i= av_clip(startx + starty * s->mb_width , 0, s->mb_num-1);
+ const int end_i = av_clip(endx + endy * s->mb_width , 0, s->mb_num);
const int start_xy= s->mb_index2xy[start_i];
const int end_xy = s->mb_index2xy[end_i];
int mask= -1;
+ if(start_i > end_i || start_xy > end_xy){
+ av_log(s->avctx, AV_LOG_ERROR, "internal error, slice end before start\n");
+ return;
+ }
+
if(!s->error_resilience) return;
mask &= ~VP_START;