aboutsummaryrefslogtreecommitdiffstats
path: root/libavcodec/mpegvideo_enc.c
diff options
context:
space:
mode:
authorMichael Niedermayer <michaelni@gmx.at>2013-01-26 15:46:35 +0100
committerMichael Niedermayer <michaelni@gmx.at>2013-01-26 15:46:39 +0100
commitc46943ec19df5077610518e3dae6184414ef435d (patch)
tree53474ea742f65ca83f1c66302c4ff9de86985dbd /libavcodec/mpegvideo_enc.c
parent8380fc88845ef92e16d54df582519284062b199d (diff)
parent3f47d316cda9037024ffbc76f789332e62b729bc (diff)
downloadandroid_external_ffmpeg-c46943ec19df5077610518e3dae6184414ef435d.tar.gz
android_external_ffmpeg-c46943ec19df5077610518e3dae6184414ef435d.tar.bz2
android_external_ffmpeg-c46943ec19df5077610518e3dae6184414ef435d.zip
Merge commit '3f47d316cda9037024ffbc76f789332e62b729bc'
* commit '3f47d316cda9037024ffbc76f789332e62b729bc': mpegvideo_enc: do not modify the input frame. Merged-by: Michael Niedermayer <michaelni@gmx.at>
Diffstat (limited to 'libavcodec/mpegvideo_enc.c')
-rw-r--r--libavcodec/mpegvideo_enc.c16
1 files changed, 8 insertions, 8 deletions
diff --git a/libavcodec/mpegvideo_enc.c b/libavcodec/mpegvideo_enc.c
index ef9e0f398d..e461c71131 100644
--- a/libavcodec/mpegvideo_enc.c
+++ b/libavcodec/mpegvideo_enc.c
@@ -183,9 +183,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;
@@ -1006,18 +1005,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;
int64_t pts;
- int i;
+ int i, display_picture_number = 0;
const int encoding_delay = s->max_b_frames ? s->max_b_frames :
(s->low_delay ? 0 : 1);
int direct = 1;
if (pic_arg) {
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 (s->user_specified_pts != AV_NOPTS_VALUE) {
@@ -1031,7 +1030,7 @@ static int load_input_picture(MpegEncContext *s, AVFrame *pic_arg)
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->user_specified_pts = pts;
@@ -1043,7 +1042,7 @@ static int load_input_picture(MpegEncContext *s, AVFrame *pic_arg)
"Warning: AVFrame.pts=? trying to guess (%"PRId64")\n",
pts);
} else {
- pts = pic_arg->display_picture_number;
+ pts = display_picture_number;
}
}
}
@@ -1126,6 +1125,7 @@ static int load_input_picture(MpegEncContext *s, AVFrame *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
}