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

Carl Eugen Hoyos cehoyos at ag.or.at
Sun Jan 15 01:58:51 CET 2012


Hi!

Successfully tested with reencoding gray8a png samples, I will not apply as 
long as avcodec_find_best_pix_fmt2() thinks that gray8a is particularly 
useful.

Carl Eugen
-------------- next part --------------
diff --git a/libavcodec/pngenc.c b/libavcodec/pngenc.c
index b35402e..27f1a58 100644
--- a/libavcodec/pngenc.c
+++ b/libavcodec/pngenc.c
@@ -264,6 +264,10 @@ static int encode_frame(AVCodecContext *avctx, unsigned char *buf, int buf_size,
         bit_depth = 8;
         color_type = PNG_COLOR_TYPE_GRAY;
         break;
+    case PIX_FMT_GRAY8A:
+        bit_depth = 8;
+        color_type = PNG_COLOR_TYPE_GRAY_ALPHA;
+        break;
     case PIX_FMT_MONOBLACK:
         bit_depth = 1;
         color_type = PNG_COLOR_TYPE_GRAY;
@@ -443,6 +447,6 @@ AVCodec ff_png_encoder = {
     .priv_data_size = sizeof(PNGEncContext),
     .init           = png_enc_init,
     .encode         = encode_frame,
-    .pix_fmts= (const enum PixelFormat[]){PIX_FMT_RGB24, PIX_FMT_RGB32, PIX_FMT_PAL8, PIX_FMT_GRAY8, PIX_FMT_MONOBLACK, PIX_FMT_NONE},
+    .pix_fmts= (const enum PixelFormat[]){PIX_FMT_GRAY8A, PIX_FMT_RGB24, PIX_FMT_RGB32, PIX_FMT_PAL8, PIX_FMT_GRAY8, PIX_FMT_MONOBLACK, PIX_FMT_NONE},
     .long_name= NULL_IF_CONFIG_SMALL("PNG image"),
 };


More information about the ffmpeg-devel mailing list