]> granicus.if.org Git - libvpx/commitdiff
Add frame_rate param to vp9_get_encoder_config
authorangiebird <angiebird@google.com>
Sun, 3 Nov 2019 16:45:39 +0000 (08:45 -0800)
committerangiebird <angiebird@google.com>
Wed, 13 Nov 2019 21:47:52 +0000 (13:47 -0800)
Change-Id: I14a3d076d71240b4ed2436947418aa3177911fc1

vp9/vp9_cx_iface.c
vp9/vp9_cx_iface.h

index e452be96d336ad07a5793e4915d2c73d69c5afe1..46bc739daf6a5479a20cea85e0932e9744f9cba5 100644 (file)
@@ -1831,6 +1831,7 @@ CODEC_INTERFACE(vpx_codec_vp9_cx) = {
 };
 
 static vpx_codec_enc_cfg_t get_enc_cfg(int frame_width, int frame_height,
+                                       vpx_rational_t frame_rate,
                                        int target_bitrate,
                                        vpx_enc_pass enc_pass) {
   vpx_codec_enc_cfg_t enc_cfg = encoder_usage_cfg_map[0].cfg;
@@ -1838,10 +1839,9 @@ static vpx_codec_enc_cfg_t get_enc_cfg(int frame_width, int frame_height,
   enc_cfg.g_h = frame_height;
   enc_cfg.rc_target_bitrate = target_bitrate;
   enc_cfg.g_pass = enc_pass;
-  // Use the same default setting as the one used in vpxenc.c
-  // The default unit time for the encoder is 1/1000 s.
-  enc_cfg.g_timebase.num = 1;
-  enc_cfg.g_timebase.den = 1000;
+  // g_timebase is the inverse of frame_rate
+  enc_cfg.g_timebase.num = frame_rate.den;
+  enc_cfg.g_timebase.den = frame_rate.num;
   return enc_cfg;
 }
 
@@ -1855,12 +1855,13 @@ static vp9_extracfg get_extra_cfg() {
 }
 
 VP9EncoderConfig vp9_get_encoder_config(int frame_width, int frame_height,
+                                        vpx_rational_t frame_rate,
                                         int target_bitrate,
                                         vpx_enc_pass enc_pass) {
   VP9EncoderConfig oxcf;
   vp9_extracfg extra_cfg = get_extra_cfg();
-  vpx_codec_enc_cfg_t enc_cfg =
-      get_enc_cfg(frame_width, frame_height, target_bitrate, enc_pass);
+  vpx_codec_enc_cfg_t enc_cfg = get_enc_cfg(
+      frame_width, frame_height, frame_rate, target_bitrate, enc_pass);
   set_encoder_config(&oxcf, &enc_cfg, &extra_cfg);
   return oxcf;
 }
index 74c6ff331fbbcc05f7c4bb8acab3a37591f9f910..53215d1c44214c5814a27f965274bf4a7e97602b 100644 (file)
@@ -18,6 +18,7 @@ extern "C" {
 #endif
 
 VP9EncoderConfig vp9_get_encoder_config(int frame_width, int frame_height,
+                                        vpx_rational_t frame_rate,
                                         int target_bitrate,
                                         vpx_enc_pass enc_pass);
 FRAME_INFO vp9_get_frame_info(const VP9EncoderConfig *oxcf);