[FFmpeg-devel] [PATCH] mpegvideo: Fix several warnings about incompatible pointer type
jamal
jamrial at gmail.com
Fri Jul 27 22:54:48 CEST 2012
---
libavcodec/mpegvideo.h | 2 +-
libavcodec/mpegvideo_enc.c | 21 +++++++++++----------
2 files changed, 12 insertions(+), 11 deletions(-)
diff --git a/libavcodec/mpegvideo.h b/libavcodec/mpegvideo.h
index 89160d2..4445a29 100644
--- a/libavcodec/mpegvideo.h
+++ b/libavcodec/mpegvideo.h
@@ -757,7 +757,7 @@ void ff_MPV_frame_end(MpegEncContext *s);
int ff_MPV_encode_init(AVCodecContext *avctx);
int ff_MPV_encode_end(AVCodecContext *avctx);
int ff_MPV_encode_picture(AVCodecContext *avctx, AVPacket *pkt,
- AVFrame *frame, int *got_packet);
+ const AVFrame *frame, int *got_packet);
void ff_MPV_common_init_mmx(MpegEncContext *s);
void ff_MPV_common_init_axp(MpegEncContext *s);
void ff_MPV_common_init_mmi(MpegEncContext *s);
diff --git a/libavcodec/mpegvideo_enc.c b/libavcodec/mpegvideo_enc.c
index f3f7162..0fd7dfd 100644
--- a/libavcodec/mpegvideo_enc.c
+++ b/libavcodec/mpegvideo_enc.c
@@ -187,14 +187,15 @@ void ff_init_qscale_tab(MpegEncContext *s)
static void copy_picture_attributes(MpegEncContext *s,
AVFrame *dst,
- AVFrame *src)
+ const AVFrame *src,
+ int *dpn)
{
int i;
dst->pict_type = src->pict_type;
dst->quality = src->quality;
dst->coded_picture_number = src->coded_picture_number;
- dst->display_picture_number = src->display_picture_number;
+ dst->display_picture_number = *dpn ? *dpn : src->display_picture_number;
//dst->reference = src->reference;
dst->pts = src->pts;
dst->interlaced_frame = src->interlaced_frame;
@@ -948,18 +949,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;
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) {
@@ -973,7 +974,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;
@@ -985,7 +986,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;
}
}
}
@@ -1068,7 +1069,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, &display_picture_number);
pic->pts = pts; // we set this here to avoid modifiying pic_arg
}
@@ -1418,7 +1419,7 @@ no_output_pic:
s->reordered_input_picture[0]->f.type = 0;
copy_picture_attributes(s, &pic->f,
- &s->reordered_input_picture[0]->f);
+ &s->reordered_input_picture[0]->f, NULL);
s->current_picture_ptr = pic;
} else {
@@ -1445,7 +1446,7 @@ no_output_pic:
}
int ff_MPV_encode_picture(AVCodecContext *avctx, AVPacket *pkt,
- AVFrame *pic_arg, int *got_packet)
+ const AVFrame *pic_arg, int *got_packet)
{
MpegEncContext *s = avctx->priv_data;
int i, stuffing_count, ret;
--
1.7.8.6
More information about the ffmpeg-devel
mailing list