[FFmpeg-devel] [PATCH]Support gray16 and rgb48 pam encoding
Carl Eugen Hoyos
cehoyos at ag.or.at
Sat Jan 7 01:41:25 CET 2012
Hi!
Attached patches implement gray16be and rgb48be pam encoding.
Please comment, Carl Eugen
-------------- next part --------------
diff --git a/libavcodec/pamenc.c b/libavcodec/pamenc.c
index e69c53f..d6f945e 100644
--- a/libavcodec/pamenc.c
+++ b/libavcodec/pamenc.c
@@ -62,6 +62,12 @@ static int pam_encode_frame(AVCodecContext *avctx, unsigned char *outbuf,
maxval = 255;
tuple_type = "GRAYSCALE";
break;
+ case PIX_FMT_GRAY16BE:
+ n = w * 2;
+ depth = 1;
+ maxval = 0xFFFF;
+ tuple_type = "GRAYSCALE";
+ break;
case PIX_FMT_GRAY8A:
n = w * 2;
depth = 2;
@@ -128,6 +134,6 @@ AVCodec ff_pam_encoder = {
.priv_data_size = sizeof(PNMContext),
.init = ff_pnm_init,
.encode = pam_encode_frame,
- .pix_fmts = (const enum PixelFormat[]){PIX_FMT_RGB24, PIX_FMT_RGB32, PIX_FMT_GRAY8, PIX_FMT_GRAY8A, PIX_FMT_MONOBLACK, PIX_FMT_NONE},
+ .pix_fmts = (const enum PixelFormat[]){PIX_FMT_RGB24, PIX_FMT_RGB32, PIX_FMT_GRAY8, PIX_FMT_GRAY8A, PIX_FMT_GRAY16BE, PIX_FMT_MONOBLACK, PIX_FMT_NONE},
.long_name = NULL_IF_CONFIG_SMALL("PAM (Portable AnyMap) image"),
};
-------------- next part --------------
diff --git a/libavcodec/pamenc.c b/libavcodec/pamenc.c
index e69c53f..eb844bc 100644
--- a/libavcodec/pamenc.c
+++ b/libavcodec/pamenc.c
@@ -80,6 +80,12 @@ static int pam_encode_frame(AVCodecContext *avctx, unsigned char *outbuf,
maxval = 255;
tuple_type = "RGB_ALPHA";
break;
+ case PIX_FMT_RGB48BE:
+ n = w * 6;
+ depth = 3;
+ maxval = 0xFFFF;
+ tuple_type = "RGB";
+ break;
default:
return -1;
}
@@ -128,6 +134,6 @@ AVCodec ff_pam_encoder = {
.priv_data_size = sizeof(PNMContext),
.init = ff_pnm_init,
.encode = pam_encode_frame,
- .pix_fmts = (const enum PixelFormat[]){PIX_FMT_RGB24, PIX_FMT_RGB32, PIX_FMT_GRAY8, PIX_FMT_GRAY8A, PIX_FMT_MONOBLACK, PIX_FMT_NONE},
+ .pix_fmts = (const enum PixelFormat[]){PIX_FMT_RGB24, PIX_FMT_RGB32, PIX_FMT_RGB48BE, PIX_FMT_GRAY8, PIX_FMT_GRAY8A, PIX_FMT_MONOBLACK, PIX_FMT_NONE},
.long_name = NULL_IF_CONFIG_SMALL("PAM (Portable AnyMap) image"),
};
More information about the ffmpeg-devel
mailing list