mirror of
https://github.com/mpv-player/mpv
synced 2025-01-09 01:36:25 +01: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:
parent
09cdd1406d
commit
316658ad48
@ -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),
|
||||
|
@ -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.,
|
||||
|
@ -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;
|
||||
|
@ -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);
|
||||
|
Loading…
Reference in New Issue
Block a user