[FFmpeg-cvslog] Support rgb48 and rgba64 png encoding.

Carl Eugen Hoyos git at videolan.org
Sun Jan 15 22:15:54 CET 2012


ffmpeg | branch: master | Carl Eugen Hoyos <cehoyos at ag.or.at> | Sun Jan 15 22:04:25 2012 +0100| [f94ce3bcab67369b18976f6cf8e69ae132805213] | committer: Carl Eugen Hoyos

Support rgb48 and rgba64 png encoding.

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

 libavcodec/pngenc.c |   15 ++++++++++++++-
 1 files changed, 14 insertions(+), 1 deletions(-)

diff --git a/libavcodec/pngenc.c b/libavcodec/pngenc.c
index 573e95c..5933bbb 100644
--- a/libavcodec/pngenc.c
+++ b/libavcodec/pngenc.c
@@ -234,6 +234,14 @@ static int encode_frame(AVCodecContext *avctx, unsigned char *buf, int buf_size,
 
     is_progressive = !!(avctx->flags & CODEC_FLAG_INTERLACED_DCT);
     switch(avctx->pix_fmt) {
+    case PIX_FMT_RGBA64BE:
+        bit_depth = 16;
+        color_type = PNG_COLOR_TYPE_RGB_ALPHA;
+        break;
+    case PIX_FMT_RGB48BE:
+        bit_depth = 16;
+        color_type = PNG_COLOR_TYPE_RGB;
+        break;
     case PIX_FMT_RGBA:
         bit_depth = 8;
         color_type = PNG_COLOR_TYPE_RGB_ALPHA;
@@ -418,6 +426,11 @@ 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_RGBA, PIX_FMT_PAL8, PIX_FMT_GRAY8, PIX_FMT_GRAY8A, PIX_FMT_GRAY16BE, PIX_FMT_MONOBLACK, PIX_FMT_NONE},
+    .pix_fmts= (const enum PixelFormat[]){PIX_FMT_RGB24, PIX_FMT_RGBA,
+                                          PIX_FMT_RGB48BE, PIX_FMT_RGBA64BE,
+                                          PIX_FMT_PAL8,
+                                          PIX_FMT_GRAY8, PIX_FMT_GRAY8A,
+                                          PIX_FMT_GRAY16BE,
+                                          PIX_FMT_MONOBLACK, PIX_FMT_NONE},
     .long_name= NULL_IF_CONFIG_SMALL("PNG image"),
 };



More information about the ffmpeg-cvslog mailing list