[FFmpeg-devel] [PATCH]Support j2k gray8a encoding

Carl Eugen Hoyos cehoyos at ag.or.at
Tue Jan 17 12:13:27 CET 2012


Hi!

Attached patch adds gray8a encoding support to libopenjpeg, difficult to test, 
but both jasper and OSX preview (the program) show visually correct gray 
images.

Please comment, Carl Eugen
-------------- next part --------------
diff --git a/libavcodec/libopenjpegenc.c b/libavcodec/libopenjpegenc.c
index 188dbb9..ad47611 100644
--- a/libavcodec/libopenjpegenc.c
+++ b/libavcodec/libopenjpegenc.c
@@ -69,6 +69,10 @@ static opj_image_t *mj2_create_image(AVCodecContext *avctx, opj_cparameters_t *p
         color_space = CLRSPC_GRAY;
         numcomps = 1;
         break;
+    case PIX_FMT_GRAY8A:
+        color_space = CLRSPC_GRAY;
+        numcomps = 2;
+        break;
     case PIX_FMT_GRAY16:
         color_space = CLRSPC_GRAY;
         numcomps = 1;
@@ -328,6 +332,7 @@ static int libopenjpeg_encode_frame(AVCodecContext *avctx, uint8_t *buf, int buf
     switch (avctx->pix_fmt) {
     case PIX_FMT_RGB24:
     case PIX_FMT_RGBA:
+    case PIX_FMT_GRAY8A:
         cpyresult = libopenjpeg_copy_packed8(avctx, frame, image);
         break;
     case PIX_FMT_RGB48:
@@ -411,7 +416,7 @@ AVCodec ff_libopenjpeg_encoder = {
     .close          = libopenjpeg_encode_close,
     .capabilities   = 0,
     .pix_fmts = (const enum PixelFormat[]){PIX_FMT_RGB24,PIX_FMT_RGBA,PIX_FMT_RGB48,PIX_FMT_RGBA64,
-                                           PIX_FMT_GRAY8,PIX_FMT_GRAY16,
+                                           PIX_FMT_GRAY8,PIX_FMT_GRAY8A,PIX_FMT_GRAY16,
                                            PIX_FMT_YUV420P,PIX_FMT_YUV422P,PIX_FMT_YUVA420P,
                                            PIX_FMT_YUV440P,PIX_FMT_YUV444P,
                                            PIX_FMT_YUV420P9,PIX_FMT_YUV422P9,PIX_FMT_YUV444P9,


More information about the ffmpeg-devel mailing list