summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--libavcodec/dv.h2
-rw-r--r--libavcodec/dvdec.c13
2 files changed, 8 insertions, 7 deletions
diff --git a/libavcodec/dv.h b/libavcodec/dv.h
index b458aeab29..d032405a26 100644
--- a/libavcodec/dv.h
+++ b/libavcodec/dv.h
@@ -39,7 +39,7 @@ typedef struct DVwork_chunk {
typedef struct DVVideoContext {
const AVDVProfile *sys;
- AVFrame *frame;
+ const AVFrame *frame;
AVCodecContext *avctx;
uint8_t *buf;
diff --git a/libavcodec/dvdec.c b/libavcodec/dvdec.c
index 9ee9933cdc..463d108b28 100644
--- a/libavcodec/dvdec.c
+++ b/libavcodec/dvdec.c
@@ -350,6 +350,7 @@ static int dvvideo_decode_frame(AVCodecContext *avctx, void *data,
uint8_t *buf = avpkt->data;
int buf_size = avpkt->size;
DVVideoContext *s = avctx->priv_data;
+ AVFrame *frame = data;
const uint8_t *vsc_pack;
int apt, is16_9, ret;
const AVDVProfile *sys;
@@ -369,9 +370,9 @@ static int dvvideo_decode_frame(AVCodecContext *avctx, void *data,
s->sys = sys;
}
- s->frame = data;
- s->frame->key_frame = 1;
- s->frame->pict_type = AV_PICTURE_TYPE_I;
+ s->frame = frame;
+ frame->key_frame = 1;
+ frame->pict_type = AV_PICTURE_TYPE_I;
avctx->pix_fmt = s->sys->pix_fmt;
avctx->framerate = av_inv_q(s->sys->time_base);
@@ -388,12 +389,12 @@ static int dvvideo_decode_frame(AVCodecContext *avctx, void *data,
ff_set_sar(avctx, s->sys->sar[is16_9]);
}
- if (ff_get_buffer(avctx, s->frame, 0) < 0) {
+ if (ff_get_buffer(avctx, frame, 0) < 0) {
av_log(avctx, AV_LOG_ERROR, "get_buffer() failed\n");
return -1;
}
- s->frame->interlaced_frame = 1;
- s->frame->top_field_first = 0;
+ frame->interlaced_frame = 1;
+ frame->top_field_first = 0;
s->buf = buf;
avctx->execute(avctx, dv_decode_video_segment, s->work_chunks, NULL,