diff options
author | Michael Niedermayer <michaelni@gmx.at> | 2015-06-30 13:45:03 +0200 |
---|---|---|
committer | Michael Niedermayer <michaelni@gmx.at> | 2015-06-30 13:45:03 +0200 |
commit | 5c047f3ad49c8a8a5ae126d134b1004a4dcbc39b (patch) | |
tree | a52a7c83fbfee604b72d01110b76763b11f6563c | |
parent | e91f860ea74e11e9178500fe8794c47f57dbf48c (diff) | |
download | ffmpeg-5c047f3ad49c8a8a5ae126d134b1004a4dcbc39b.tar.gz |
avcodec/j2kenc: store libavcodec ident in a comment unless bitexact mode is used
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
-rw-r--r-- | libavcodec/j2kenc.c | 22 |
1 files changed, 22 insertions, 0 deletions
diff --git a/libavcodec/j2kenc.c b/libavcodec/j2kenc.c index dcdf4112c0..acfa5a0f74 100644 --- a/libavcodec/j2kenc.c +++ b/libavcodec/j2kenc.c @@ -317,6 +317,26 @@ static int put_qcd(Jpeg2000EncoderContext *s, int compno) return 0; } +static int put_com(Jpeg2000EncoderContext *s, int compno) +{ + int i; + int size = 4 + strlen(LIBAVCODEC_IDENT); + + if (s->avctx->flags & CODEC_FLAG_BITEXACT) + return 0; + + if (s->buf_end - s->buf < size + 2) + return -1; + + bytestream_put_be16(&s->buf, JPEG2000_COM); + bytestream_put_be16(&s->buf, size); + bytestream_put_be16(&s->buf, 1); // General use (ISO/IEC 8859-15 (Latin) values) + + bytestream_put_buffer(&s->buf, LIBAVCODEC_IDENT, strlen(LIBAVCODEC_IDENT)); + + return 0; +} + static uint8_t *put_sot(Jpeg2000EncoderContext *s, int tileno) { uint8_t *psotptr; @@ -1010,6 +1030,8 @@ static int encode_frame(AVCodecContext *avctx, AVPacket *pkt, return ret; if ((ret = put_qcd(s, 0)) < 0) return ret; + if ((ret = put_com(s, 0)) < 0) + return ret; for (tileno = 0; tileno < s->numXtiles * s->numYtiles; tileno++){ uint8_t *psotptr; |