| @@ -186,9 +186,8 @@ void ff_init_qscale_tab(MpegEncContext *s) | |||||
| } | } | ||||
| } | } | ||||
| static void copy_picture_attributes(MpegEncContext *s, | |||||
| AVFrame *dst, | |||||
| AVFrame *src) | |||||
| static void copy_picture_attributes(MpegEncContext *s, AVFrame *dst, | |||||
| const AVFrame *src) | |||||
| { | { | ||||
| int i; | int i; | ||||
| @@ -907,18 +906,18 @@ static int get_intra_count(MpegEncContext *s, uint8_t *src, | |||||
| } | } | ||||
| static int load_input_picture(MpegEncContext *s, AVFrame *pic_arg) | |||||
| static int load_input_picture(MpegEncContext *s, const AVFrame *pic_arg) | |||||
| { | { | ||||
| AVFrame *pic = NULL; | AVFrame *pic = NULL; | ||||
| int64_t pts; | int64_t pts; | ||||
| int i; | |||||
| int i, display_picture_number = 0; | |||||
| const int encoding_delay = s->max_b_frames ? s->max_b_frames : | const int encoding_delay = s->max_b_frames ? s->max_b_frames : | ||||
| (s->low_delay ? 0 : 1); | (s->low_delay ? 0 : 1); | ||||
| int direct = 1; | int direct = 1; | ||||
| if (pic_arg) { | if (pic_arg) { | ||||
| pts = pic_arg->pts; | pts = pic_arg->pts; | ||||
| pic_arg->display_picture_number = s->input_picture_number++; | |||||
| display_picture_number = s->input_picture_number++; | |||||
| if (pts != AV_NOPTS_VALUE) { | if (pts != AV_NOPTS_VALUE) { | ||||
| if (s->user_specified_pts != AV_NOPTS_VALUE) { | if (s->user_specified_pts != AV_NOPTS_VALUE) { | ||||
| @@ -932,7 +931,7 @@ static int load_input_picture(MpegEncContext *s, AVFrame *pic_arg) | |||||
| return -1; | return -1; | ||||
| } | } | ||||
| if (!s->low_delay && pic_arg->display_picture_number == 1) | |||||
| if (!s->low_delay && display_picture_number == 1) | |||||
| s->dts_delta = time - last; | s->dts_delta = time - last; | ||||
| } | } | ||||
| s->user_specified_pts = pts; | s->user_specified_pts = pts; | ||||
| @@ -944,7 +943,7 @@ static int load_input_picture(MpegEncContext *s, AVFrame *pic_arg) | |||||
| "Warning: AVFrame.pts=? trying to guess (%"PRId64")\n", | "Warning: AVFrame.pts=? trying to guess (%"PRId64")\n", | ||||
| pts); | pts); | ||||
| } else { | } else { | ||||
| pts = pic_arg->display_picture_number; | |||||
| pts = display_picture_number; | |||||
| } | } | ||||
| } | } | ||||
| } | } | ||||
| @@ -1025,6 +1024,7 @@ static int load_input_picture(MpegEncContext *s, AVFrame *pic_arg) | |||||
| } | } | ||||
| } | } | ||||
| copy_picture_attributes(s, pic, pic_arg); | copy_picture_attributes(s, pic, pic_arg); | ||||
| pic->display_picture_number = display_picture_number; | |||||
| pic->pts = pts; // we set this here to avoid modifiying pic_arg | pic->pts = pts; // we set this here to avoid modifiying pic_arg | ||||
| } | } | ||||