[Bf-blender-cvs] [65eac851810] temp-vse-h264-proxy: Implement quality setting based on UI slider
Richard Antalik
noreply at git.blender.org
Tue Mar 16 15:02:30 CET 2021
Commit: 65eac851810a48860586bdc867e926bb018685aa
Author: Richard Antalik
Date: Tue Mar 16 15:01:56 2021 +0100
Branches: temp-vse-h264-proxy
https://developer.blender.org/rB65eac851810a48860586bdc867e926bb018685aa
Implement quality setting based on UI slider
===================================================================
M source/blender/imbuf/intern/indexer.c
===================================================================
diff --git a/source/blender/imbuf/intern/indexer.c b/source/blender/imbuf/intern/indexer.c
index 7de82555711..edaa1b973d0 100644
--- a/source/blender/imbuf/intern/indexer.c
+++ b/source/blender/imbuf/intern/indexer.c
@@ -27,6 +27,7 @@
#include "BLI_endian_switch.h"
#include "BLI_fileops.h"
#include "BLI_ghash.h"
+#include "BLI_math.h"
#include "BLI_path_util.h"
#include "BLI_string.h"
#include "BLI_threads.h"
@@ -529,9 +530,15 @@ static struct proxy_output_ctx *alloc_proxy_output_ffmpeg(
rv->c->time_base.num = 1;
rv->st->time_base = rv->c->time_base;
+ /* This range matches eFFMpegCrf. Crf_range_min corresponds to lowest quality, crf_range_max to
+ * highest quality. */
+ const int crf_range_min = 32;
+ const int crf_range_max = 17;
+ int crf = round_fl_to_int((quality / 100.0f) * (crf_range_max - crf_range_min) + crf_range_min);
+
AVDictionary *codec_opts = NULL;
/* High quality preset value. */
- av_dict_set_int(&codec_opts, "crf", 20, 0);
+ av_dict_set_int(&codec_opts, "crf", crf, 0);
/* Prefer smaller filesize. */
av_dict_set(&codec_opts, "preset", "slow", 0);
/* Thread count. */
More information about the Bf-blender-cvs
mailing list