summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMichael Niedermayer <michaelni@gmx.at>2013-05-30 16:45:30 +0200
committerMichael Niedermayer <michaelni@gmx.at>2013-05-30 16:45:30 +0200
commit310f9dd6988c286ab98b44796105440892f329de (patch)
tree70abecfcfaf7aa11a77f347a598b3d6a3be2a368
parent6f7de3d5c8a5bafb3bb8a311c1251ac7cc43de67 (diff)
j2k/jpeg2000: merge pix_fmt setting code
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
-rw-r--r--libavcodec/j2kdec.c25
-rw-r--r--libavcodec/jpeg2000dec.c42
2 files changed, 38 insertions, 29 deletions
diff --git a/libavcodec/j2kdec.c b/libavcodec/j2kdec.c
index f2635730fe..1ade0c7fc9 100644
--- a/libavcodec/j2kdec.c
+++ b/libavcodec/j2kdec.c
@@ -215,22 +215,33 @@ static int get_siz(Jpeg2000DecoderContext *s)
s->reduction_factor);
switch(s->ncomponents) {
case 1:
- if (s->precision > 8) {
+ if (s->precision > 8)
s->avctx->pix_fmt = AV_PIX_FMT_GRAY16;
- } else {
+ else
s->avctx->pix_fmt = AV_PIX_FMT_GRAY8;
- }
break;
case 3:
- if (s->precision > 8) {
- s->avctx->pix_fmt = AV_PIX_FMT_RGB48;
- } else {
- s->avctx->pix_fmt = AV_PIX_FMT_RGB24;
+ switch (s->avctx->profile) {
+ case FF_PROFILE_JPEG2000_DCINEMA_2K:
+ case FF_PROFILE_JPEG2000_DCINEMA_4K:
+ /* XYZ color-space for digital cinema profiles */
+ s->avctx->pix_fmt = AV_PIX_FMT_XYZ12;
+ break;
+ default:
+ if (s->precision > 8)
+ s->avctx->pix_fmt = AV_PIX_FMT_RGB48;
+ else
+ s->avctx->pix_fmt = AV_PIX_FMT_RGB24;
+ break;
}
break;
case 4:
s->avctx->pix_fmt = AV_PIX_FMT_RGBA;
break;
+ default:
+ /* pixel format can not be identified */
+ s->avctx->pix_fmt = AV_PIX_FMT_NONE;
+ break;
}
diff --git a/libavcodec/jpeg2000dec.c b/libavcodec/jpeg2000dec.c
index 4e8104c0c3..08ac3dcdd4 100644
--- a/libavcodec/jpeg2000dec.c
+++ b/libavcodec/jpeg2000dec.c
@@ -213,37 +213,35 @@ static int get_siz(Jpeg2000DecoderContext *s)
s->avctx->height = ff_jpeg2000_ceildivpow2(s->height - s->image_offset_y,
s->reduction_factor);
- switch (s->avctx->profile) {
- case FF_PROFILE_JPEG2000_DCINEMA_2K:
- case FF_PROFILE_JPEG2000_DCINEMA_4K:
- /* XYZ color-space for digital cinema profiles */
- s->avctx->pix_fmt = AV_PIX_FMT_XYZ12;
+ switch(s->ncomponents) {
+ case 1:
+ if (s->precision > 8)
+ s->avctx->pix_fmt = AV_PIX_FMT_GRAY16;
+ else
+ s->avctx->pix_fmt = AV_PIX_FMT_GRAY8;
break;
- default:
- /* For other profiles selects color-space according number of
- * components and bit depth precision. */
- switch (s->ncomponents) {
- case 1:
- if (s->precision > 8)
- s->avctx->pix_fmt = AV_PIX_FMT_GRAY16;
- else
- s->avctx->pix_fmt = AV_PIX_FMT_GRAY8;
+ case 3:
+ switch (s->avctx->profile) {
+ case FF_PROFILE_JPEG2000_DCINEMA_2K:
+ case FF_PROFILE_JPEG2000_DCINEMA_4K:
+ /* XYZ color-space for digital cinema profiles */
+ s->avctx->pix_fmt = AV_PIX_FMT_XYZ12;
break;
- case 3:
+ default:
if (s->precision > 8)
s->avctx->pix_fmt = AV_PIX_FMT_RGB48;
else
s->avctx->pix_fmt = AV_PIX_FMT_RGB24;
break;
- case 4:
- s->avctx->pix_fmt = AV_PIX_FMT_BGRA;
- break;
- default:
- /* pixel format can not be identified */
- s->avctx->pix_fmt = AV_PIX_FMT_NONE;
- break;
}
break;
+ case 4:
+ s->avctx->pix_fmt = AV_PIX_FMT_RGBA;
+ break;
+ default:
+ /* pixel format can not be identified */
+ s->avctx->pix_fmt = AV_PIX_FMT_NONE;
+ break;
}
return 0;
}