diff options
author | Martin Herkt <lachs0r@srsfckn.biz> | 2013-06-15 15:14:06 +0200 |
---|---|---|
committer | Martin Herkt <lachs0r@srsfckn.biz> | 2013-06-15 15:48:52 +0200 |
commit | 9b5a98676d18156d56fabae52dbc1d918e4401d4 (patch) | |
tree | 20ae40f29e87dd2238b9757b22c0d543fada22e1 /video/image_writer.c | |
parent | 3c12148668ac70366ec48af2c61777db744eba66 (diff) | |
download | mpv-9b5a98676d18156d56fabae52dbc1d918e4401d4.tar.bz2 mpv-9b5a98676d18156d56fabae52dbc1d918e4401d4.tar.xz |
image_writer: Add PNG filter option (default "mixed")
The use of filters prior to PNG compression can greatly improve
compression ratio, with "mixed" (ImageMagick calls it "adaptive")
typically achieving the best results.
Diffstat (limited to 'video/image_writer.c')
-rw-r--r-- | video/image_writer.c | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/video/image_writer.c b/video/image_writer.c index a65024124e..1791c01a38 100644 --- a/video/image_writer.c +++ b/video/image_writer.c @@ -46,6 +46,7 @@ const struct image_writer_opts image_writer_opts_defaults = { .format = "jpg", .png_compression = 7, + .png_filter = 5, .jpeg_quality = 90, .jpeg_optimize = 100, .jpeg_smooth = 0, @@ -65,6 +66,7 @@ const struct m_sub_options image_writer_conf = { OPT_FLAG("jpeg-progressive", jpeg_progressive, 0), OPT_FLAG("jpeg-baseline", jpeg_baseline, 0), OPT_INTRANGE("png-compression", png_compression, 0, 0, 9), + OPT_INTRANGE("png-filter", png_filter, 0, 0, 5), OPT_STRING("format", format, 0), {0}, }, @@ -105,8 +107,10 @@ static int write_lavc(struct image_writer_ctx *ctx, mp_image_t *image, FILE *fp) avctx->width = image->w; avctx->height = image->h; avctx->pix_fmt = imgfmt2pixfmt(image->imgfmt); - if (ctx->writer->lavc_codec == AV_CODEC_ID_PNG) + if (ctx->writer->lavc_codec == AV_CODEC_ID_PNG) { avctx->compression_level = ctx->opts->png_compression; + avctx->prediction_method = ctx->opts->png_filter; + } if (avcodec_open2(avctx, codec, NULL) < 0) { print_open_fail: |