[FFmpeg-cvslog] libopenjpegenc: use pix_fmt descriptor to get numcomps

Paul B Mahol git at videolan.org
Mon Mar 26 05:45:01 CEST 2012


ffmpeg | branch: master | Paul B Mahol <onemda at gmail.com> | Sun Mar 25 23:33:50 2012 +0000| [06b0c6a6559e8f179faaba9641bcb2d68edc7160] | committer: Michael Niedermayer

libopenjpegenc: use pix_fmt descriptor to get numcomps

Signed-off-by: Paul B Mahol <onemda at gmail.com>
Reviewed-by: Michael Bradshaw <mbradshaw at sorensonmedia.com>
Signed-off-by: Michael Niedermayer <michaelni at gmx.at>

> http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=06b0c6a6559e8f179faaba9641bcb2d68edc7160
---

 libavcodec/libopenjpegenc.c |   19 +++----------------
 1 files changed, 3 insertions(+), 16 deletions(-)

diff --git a/libavcodec/libopenjpegenc.c b/libavcodec/libopenjpegenc.c
index 2a60e79..40b89db 100644
--- a/libavcodec/libopenjpegenc.c
+++ b/libavcodec/libopenjpegenc.c
@@ -57,7 +57,7 @@ static opj_image_t *mj2_create_image(AVCodecContext *avctx, opj_cparameters_t *p
     int bpp = 8;
     int sub_dx[4];
     int sub_dy[4];
-    int numcomps = 0;
+    int numcomps;
     OPJ_COLOR_SPACE color_space = CLRSPC_UNKNOWN;
 
     sub_dx[0] = sub_dx[3] = 1;
@@ -65,77 +65,64 @@ static opj_image_t *mj2_create_image(AVCodecContext *avctx, opj_cparameters_t *p
     sub_dx[1] = sub_dx[2] = 1<<av_pix_fmt_descriptors[avctx->pix_fmt].log2_chroma_w;
     sub_dy[1] = sub_dy[2] = 1<<av_pix_fmt_descriptors[avctx->pix_fmt].log2_chroma_h;
 
+    numcomps = av_pix_fmt_descriptors[avctx->pix_fmt].nb_components;
+
     switch (avctx->pix_fmt) {
     case PIX_FMT_GRAY8:
         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;
         bpp = 16;
         break;
     case PIX_FMT_RGB24:
         color_space = CLRSPC_SRGB;
-        numcomps = 3;
         break;
     case PIX_FMT_RGBA:
         color_space = CLRSPC_SRGB;
-        numcomps = 4;
         break;
     case PIX_FMT_RGB48:
         color_space = CLRSPC_SRGB;
-        numcomps = 3;
         bpp = 16;
         break;
     case PIX_FMT_RGBA64:
         color_space = CLRSPC_SRGB;
-        numcomps = 4;
         bpp = 16;
         break;
     case PIX_FMT_YUV420P:
         color_space = CLRSPC_SYCC;
-        numcomps = 3;
         break;
     case PIX_FMT_YUV422P:
         color_space = CLRSPC_SYCC;
-        numcomps = 3;
         break;
     case PIX_FMT_YUV440P:
         color_space = CLRSPC_SYCC;
-        numcomps = 3;
         break;
     case PIX_FMT_YUV444P:
         color_space = CLRSPC_SYCC;
-        numcomps = 3;
         break;
     case PIX_FMT_YUVA420P:
         color_space = CLRSPC_SYCC;
-        numcomps = 4;
         break;
     case PIX_FMT_YUV420P9:
     case PIX_FMT_YUV422P9:
     case PIX_FMT_YUV444P9:
         color_space = CLRSPC_SYCC;
-        numcomps = 3;
         bpp = 9;
         break;
     case PIX_FMT_YUV420P10:
     case PIX_FMT_YUV422P10:
     case PIX_FMT_YUV444P10:
         color_space = CLRSPC_SYCC;
-        numcomps = 3;
         bpp = 10;
         break;
     case PIX_FMT_YUV420P16:
     case PIX_FMT_YUV422P16:
     case PIX_FMT_YUV444P16:
         color_space = CLRSPC_SYCC;
-        numcomps = 3;
         bpp = 16;
         break;
     default:



More information about the ffmpeg-cvslog mailing list