[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