]> git.sesse.net Git - ffmpeg/blobdiff - libavcodec/j2kenc.c
vble: remove flags copy, its not used in any speed relevant code.
[ffmpeg] / libavcodec / j2kenc.c
index ba31f2b783e28b2de9ddf8d8d27d407882571533..50b2b2137aa50c4fe6aa1ce007bef459095af648 100644 (file)
@@ -285,7 +285,11 @@ static int put_cod(J2kEncoderContext *s)
     // SGcod
     bytestream_put_byte(&s->buf, 0); // progression level
     bytestream_put_be16(&s->buf, 1); // num of layers
-    bytestream_put_byte(&s->buf, 0); // multiple component transformation
+    if(s->avctx->pix_fmt == PIX_FMT_YUV444P){
+        bytestream_put_byte(&s->buf, 2); // ICT
+    }else{
+        bytestream_put_byte(&s->buf, 0); // unspecified
+    }
     // SPcod
     bytestream_put_byte(&s->buf, codsty->nreslevels - 1); // num of decomp. levels
     bytestream_put_byte(&s->buf, codsty->log2_cblk_width-2); // cblk width
@@ -326,7 +330,7 @@ static uint8_t *put_sot(J2kEncoderContext *s, int tileno)
     uint8_t *psotptr;
 
     if (s->buf_end - s->buf < 12)
-        return -1;
+        return NULL;
 
     bytestream_put_be16(&s->buf, J2K_SOT);
     bytestream_put_be16(&s->buf, 10); // Lsot
@@ -946,8 +950,8 @@ static int encode_frame(AVCodecContext *avctx,
 
     for (tileno = 0; tileno < s->numXtiles * s->numYtiles; tileno++){
         uint8_t *psotptr;
-        if ((psotptr = put_sot(s, tileno)) < 0)
-            return psotptr;
+        if (!(psotptr = put_sot(s, tileno)))
+            return -1;
         if (s->buf_end - s->buf < 2)
             return -1;
         bytestream_put_be16(&s->buf, J2K_SOD);
@@ -1039,9 +1043,11 @@ AVCodec ff_jpeg2000_encoder = {
     encode_frame,
     j2kenc_destroy,
     .capabilities= CODEC_CAP_EXPERIMENTAL,
+    .long_name = NULL_IF_CONFIG_SMALL("JPEG 2000"),
     .pix_fmts =
-        (enum PixelFormat[]) {PIX_FMT_GRAY8, PIX_FMT_RGB24,
+        (enum PixelFormat[]) {PIX_FMT_RGB24, PIX_FMT_YUV444P, PIX_FMT_GRAY8,
+/*                              PIX_FMT_YUV420P,
                               PIX_FMT_YUV422P, PIX_FMT_YUV444P,
-                              PIX_FMT_YUV410P, PIX_FMT_YUV411P,
+                              PIX_FMT_YUV410P, PIX_FMT_YUV411P,*/
                               -1}
 };