0
0
mirror of https://github.com/mpv-player/mpv.git synced 2024-09-20 03:52:22 +02:00

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.
This commit is contained in:
wm4 2011-10-06 20:46:02 +02:00
parent 09cdd1406d
commit 316658ad48
4 changed files with 4 additions and 1 deletions

View File

@ -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),

View File

@ -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.,

View File

@ -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;

View File

@ -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);