summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorwm4 <wm4@mplayer2.org>2011-10-06 20:46:02 +0200
committerwm4 <wm4@mplayer2.org>2012-01-18 04:45:27 +0100
commit316658ad4883230b4fe362f9edaa1e3b3ad80197 (patch)
tree0bcb0429d0cd2e5191ed1c6e010036e487619c70
parent09cdd1406d5abe60bce57c7c2c3e71abe4330053 (diff)
downloadmpv-316658ad4883230b4fe362f9edaa1e3b3ad80197.tar.bz2
mpv-316658ad4883230b4fe362f9edaa1e3b3ad80197.tar.xz
screenshot: add png compression setting
The default compression setting is 7, which is hopefully a good balance between speed of compression, and resulting file sizes. The maximum png compression will be very slow even on fast computers. On the other hand, the lowest compression setting produces files of several MB size with normal video resolutions, which should be avoided as well.
-rw-r--r--cfg-mplayer.h1
-rw-r--r--defaultopts.c1
-rw-r--r--options.h1
-rw-r--r--screenshot.c2
4 files changed, 4 insertions, 1 deletions
diff --git a/cfg-mplayer.h b/cfg-mplayer.h
index 93ffe727c5..d5d711f6bb 100644
--- a/cfg-mplayer.h
+++ b/cfg-mplayer.h
@@ -933,6 +933,7 @@ const m_option_t mplayer_opts[]={
#endif /* CONFIG_TV */
OPT_INTRANGE("screenshot-jpeg-quality", screenshot_jpeg_quality, 0, 0, 100),
+ OPT_INTRANGE("screenshot-png-compression", screenshot_png_compression, 0, 0, 9),
OPT_STRING("screenshot-filetype", screenshot_filetype, 0),
OPT_FLAG_ON("list-properties", list_properties, CONF_GLOBAL),
diff --git a/defaultopts.c b/defaultopts.c
index 5a2df5734f..86e3908614 100644
--- a/defaultopts.c
+++ b/defaultopts.c
@@ -39,6 +39,7 @@ void set_default_mplayer_options(struct MPOpts *opts)
.sub_id = -1,
.extension_parsing = 1,
.screenshot_jpeg_quality = 85,
+ .screenshot_png_compression = 7,
.audio_output_channels = 2,
.audio_output_format = -1, // AF_FORMAT_UNKNOWN
.playback_speed = 1.,
diff --git a/options.h b/options.h
index e327005ef9..5d44ce5084 100644
--- a/options.h
+++ b/options.h
@@ -83,6 +83,7 @@ typedef struct MPOpts {
int extension_parsing;
int screenshot_jpeg_quality;
+ int screenshot_png_compression;
char *screenshot_filetype;
int audio_output_channels;
diff --git a/screenshot.c b/screenshot.c
index 3fe2bf4866..5844f00ab6 100644
--- a/screenshot.c
+++ b/screenshot.c
@@ -106,7 +106,7 @@ static int write_png(screenshot_ctx *ctx, struct mp_image *image)
avctx->width = image->width;
avctx->height = image->height;
avctx->pix_fmt = PIX_FMT_RGB24;
- avctx->compression_level = 0;
+ avctx->compression_level = ctx->mpctx->opts.screenshot_png_compression;
size_t outbuffer_size = image->width * image->height * 3 * 2;
outbuffer = malloc(outbuffer_size);