mirror of
https://github.com/FFmpeg/FFmpeg.git
synced 2024-12-23 12:43:46 +02:00
j2kenc: switch to encode2
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
This commit is contained in:
parent
131698af55
commit
8060403011
@ -920,18 +920,23 @@ static void reinit(J2kEncoderContext *s)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
static int encode_frame(AVCodecContext *avctx,
|
static int encode_frame(AVCodecContext *avctx, AVPacket *pkt,
|
||||||
uint8_t *buf, int buf_size,
|
const AVFrame *pict, int *got_packet)
|
||||||
void *data)
|
|
||||||
{
|
{
|
||||||
int tileno, ret;
|
int tileno, ret;
|
||||||
J2kEncoderContext *s = avctx->priv_data;
|
J2kEncoderContext *s = avctx->priv_data;
|
||||||
|
|
||||||
// init:
|
if (!pkt->data &&
|
||||||
s->buf = s->buf_start = buf;
|
(ret = av_new_packet(pkt, avctx->width*avctx->height*9 + FF_MIN_BUFFER_SIZE)) < 0) {
|
||||||
s->buf_end = buf + buf_size;
|
av_log(avctx, AV_LOG_ERROR, "Error getting output packet.\n");
|
||||||
|
return ret;
|
||||||
|
}
|
||||||
|
|
||||||
s->picture = *(AVFrame*)data;
|
// init:
|
||||||
|
s->buf = s->buf_start = pkt->data;
|
||||||
|
s->buf_end = pkt->data + pkt->size;
|
||||||
|
|
||||||
|
s->picture = *pict;
|
||||||
avctx->coded_frame= &s->picture;
|
avctx->coded_frame= &s->picture;
|
||||||
|
|
||||||
s->lambda = s->picture.quality * LAMBDA_SCALE;
|
s->lambda = s->picture.quality * LAMBDA_SCALE;
|
||||||
@ -965,7 +970,11 @@ static int encode_frame(AVCodecContext *avctx,
|
|||||||
bytestream_put_be16(&s->buf, J2K_EOC);
|
bytestream_put_be16(&s->buf, J2K_EOC);
|
||||||
|
|
||||||
av_log(s->avctx, AV_LOG_DEBUG, "end\n");
|
av_log(s->avctx, AV_LOG_DEBUG, "end\n");
|
||||||
return s->buf - s->buf_start;
|
pkt->size = s->buf - s->buf_start;
|
||||||
|
pkt->flags |= AV_PKT_FLAG_KEY;
|
||||||
|
*got_packet = 1;
|
||||||
|
|
||||||
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
static av_cold int j2kenc_init(AVCodecContext *avctx)
|
static av_cold int j2kenc_init(AVCodecContext *avctx)
|
||||||
@ -1041,7 +1050,7 @@ AVCodec ff_jpeg2000_encoder = {
|
|||||||
.id = CODEC_ID_JPEG2000,
|
.id = CODEC_ID_JPEG2000,
|
||||||
.priv_data_size = sizeof(J2kEncoderContext),
|
.priv_data_size = sizeof(J2kEncoderContext),
|
||||||
.init = j2kenc_init,
|
.init = j2kenc_init,
|
||||||
.encode = encode_frame,
|
.encode2 = encode_frame,
|
||||||
.close = j2kenc_destroy,
|
.close = j2kenc_destroy,
|
||||||
.capabilities= CODEC_CAP_EXPERIMENTAL,
|
.capabilities= CODEC_CAP_EXPERIMENTAL,
|
||||||
.long_name = NULL_IF_CONFIG_SMALL("JPEG 2000"),
|
.long_name = NULL_IF_CONFIG_SMALL("JPEG 2000"),
|
||||||
|
Loading…
Reference in New Issue
Block a user