diff --git a/libavcodec/j2kdec.c b/libavcodec/j2kdec.c index 6ada6433c9..d387a6acfb 100644 --- a/libavcodec/j2kdec.c +++ b/libavcodec/j2kdec.c @@ -146,7 +146,7 @@ static int get_siz(Jpeg2000DecoderContext *s) if (bytestream2_get_bytes_left(&s->g) < 36) return AVERROR(EINVAL); - bytestream2_get_be16u(&s->g); // Rsiz + s->avctx->profile = bytestream2_get_be16u(&s->g); // Rsiz s->width = bytestream2_get_be32u(&s->g); // Width s->height = bytestream2_get_be32u(&s->g); // Height s->image_offset_x = bytestream2_get_be32u(&s->g); // X0Siz @@ -1022,6 +1022,15 @@ static void jpeg2000_init_static_data(AVCodec *codec) ff_jpeg2000_init_tier1_luts(); } +static const AVProfile profiles[] = { + { FF_PROFILE_JPEG2000_CSTREAM_RESTRICTION_0, "JPEG 2000 codestream restriction 0" }, + { FF_PROFILE_JPEG2000_CSTREAM_RESTRICTION_1, "JPEG 2000 codestream restriction 1" }, + { FF_PROFILE_JPEG2000_CSTREAM_NO_RESTRICTION, "JPEG 2000 no codestream restrictions" }, + { FF_PROFILE_JPEG2000_DCINEMA_2K, "JPEG 2000 digital cinema 2K" }, + { FF_PROFILE_JPEG2000_DCINEMA_4K, "JPEG 2000 digital cinema 4K" }, + { FF_PROFILE_UNKNOWN }, +}; + AVCodec ff_j2k_decoder = { .name = "j2k", .long_name = NULL_IF_CONFIG_SMALL("JPEG 2000"), @@ -1031,4 +1040,5 @@ AVCodec ff_j2k_decoder = { .priv_data_size = sizeof(Jpeg2000DecoderContext), .init_static_data = jpeg2000_init_static_data, .decode = decode_frame, + .profiles = NULL_IF_CONFIG_SMALL(profiles) };