j2kdec: profile code from jpeg2000
authorMichael Niedermayer <michaelni@gmx.at>
Sun, 26 May 2013 16:47:53 +0000 (18:47 +0200)
committerMichael Niedermayer <michaelni@gmx.at>
Sun, 26 May 2013 18:15:50 +0000 (20:15 +0200)
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
libavcodec/j2kdec.c

index 6ada643..d387a6a 100644 (file)
@@ -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)
 };