summaryrefslogtreecommitdiff
path: root/libavcodec/j2kenc.c
diff options
context:
space:
mode:
authorMichael Niedermayer <michaelni@gmx.at>2013-12-17 16:27:36 +0100
committerMichael Niedermayer <michaelni@gmx.at>2013-12-17 16:57:58 +0100
commit8443b27072a076abb28d7f2f60bc90e1d5c285df (patch)
tree694315b228104b7d9bb4b13f2819ef51652cb937 /libavcodec/j2kenc.c
parent1458f0647ca0c882cc1c29892ac130a1056a1f47 (diff)
downloadffmpeg-8443b27072a076abb28d7f2f60bc90e1d5c285df.tar.gz
avcodec/j2kenc: drop dependancy on sizeof(AVFrame)
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
Diffstat (limited to 'libavcodec/j2kenc.c')
-rw-r--r--libavcodec/j2kenc.c17
1 files changed, 8 insertions, 9 deletions
diff --git a/libavcodec/j2kenc.c b/libavcodec/j2kenc.c
index d9f5eaf5f4..498c7c022c 100644
--- a/libavcodec/j2kenc.c
+++ b/libavcodec/j2kenc.c
@@ -60,7 +60,7 @@ typedef struct {
typedef struct {
AVCodecContext *avctx;
- AVFrame picture;
+ const AVFrame *picture;
int width, height; ///< image width and height
uint8_t cbps[4]; ///< bits per sample in particular components
@@ -390,18 +390,18 @@ static void copy_frame(Jpeg2000EncoderContext *s)
for (compno = 0; compno < s->ncomponents; compno++){
Jpeg2000Component *comp = tile->comp + compno;
int *dst = comp->i_data;
- line = s->picture.data[compno]
- + comp->coord[1][0] * s->picture.linesize[compno]
+ line = s->picture->data[compno]
+ + comp->coord[1][0] * s->picture->linesize[compno]
+ comp->coord[0][0];
for (y = comp->coord[1][0]; y < comp->coord[1][1]; y++){
uint8_t *ptr = line;
for (x = comp->coord[0][0]; x < comp->coord[0][1]; x++)
*dst++ = *ptr++ - (1 << 7);
- line += s->picture.linesize[compno];
+ line += s->picture->linesize[compno];
}
}
} else{
- line = s->picture.data[0] + tile->comp[0].coord[1][0] * s->picture.linesize[0]
+ line = s->picture->data[0] + tile->comp[0].coord[1][0] * s->picture->linesize[0]
+ tile->comp[0].coord[0][0] * s->ncomponents;
i = 0;
@@ -412,7 +412,7 @@ static void copy_frame(Jpeg2000EncoderContext *s)
tile->comp[compno].i_data[i] = *ptr++ - (1 << 7);
}
}
- line += s->picture.linesize[0];
+ line += s->picture->linesize[0];
}
}
}
@@ -927,10 +927,9 @@ static int encode_frame(AVCodecContext *avctx, AVPacket *pkt,
s->buf = s->buf_start = pkt->data;
s->buf_end = pkt->data + pkt->size;
- s->picture = *pict;
- avctx->coded_frame= &s->picture;
+ s->picture = pict;
- s->lambda = s->picture.quality * LAMBDA_SCALE;
+ s->lambda = s->picture->quality * LAMBDA_SCALE;
copy_frame(s);
reinit(s);