vlc/vlc-3.0 | branch: master | Thomas Guillem <tho...@gllm.fr> | Tue Mar 27 11:25:21 2018 +0200| [81a309e574e2e41fe6f08d84ebea6ed923da699a] | committer: Thomas Guillem
vpx: fetch quality-mode only one time (cherry picked from commit 6f76042990ceaca0c754d830a21cb0580d862517) Signed-off-by: Thomas Guillem <tho...@gllm.fr> > http://git.videolan.org/gitweb.cgi/vlc/vlc-3.0.git/?a=commit;h=81a309e574e2e41fe6f08d84ebea6ed923da699a --- modules/codec/vpx.c | 28 +++++++++++++++------------- 1 file changed, 15 insertions(+), 13 deletions(-) diff --git a/modules/codec/vpx.c b/modules/codec/vpx.c index 76331a714b..2b1e37818d 100644 --- a/modules/codec/vpx.c +++ b/modules/codec/vpx.c @@ -365,6 +365,7 @@ static void CloseDecoder(vlc_object_t *p_this) struct encoder_sys_t { struct vpx_codec_ctx ctx; + unsigned long quality; }; /***************************************************************************** @@ -423,6 +424,19 @@ static int OpenEncoder(vlc_object_t *p_this) p_enc->fmt_in.i_codec = VLC_CODEC_I420; config_ChainParse(p_enc, ENC_CFG_PREFIX, ppsz_sout_options, p_enc->p_cfg); + /* Deadline (in ms) to spend in encoder */ + switch (var_GetInteger(p_enc, ENC_CFG_PREFIX "quality-mode")) { + case 1: + p_sys->quality = VPX_DL_REALTIME; + break; + case 2: + p_sys->quality = VPX_DL_BEST_QUALITY; + break; + default: + p_sys->quality = VPX_DL_GOOD_QUALITY; + break; + } + return VLC_SUCCESS; } @@ -461,21 +475,9 @@ static block_t *Encode(encoder_t *p_enc, picture_t *p_pict) } int flags = 0; - /* Deadline (in ms) to spend in encoder */ - int quality = VPX_DL_GOOD_QUALITY; - switch (var_GetInteger(p_enc, ENC_CFG_PREFIX "quality-mode")) { - case 1: - quality = VPX_DL_REALTIME; - break; - case 2: - quality = VPX_DL_BEST_QUALITY; - break; - default: - break; - } vpx_codec_err_t res = vpx_codec_encode(ctx, &img, p_pict->date, 1, - flags, quality); + flags, p_sys->quality); if (res != VPX_CODEC_OK) { VPX_ERR(p_enc, ctx, "Failed to encode frame"); vpx_img_free(&img); _______________________________________________ vlc-commits mailing list vlc-commits@videolan.org https://mailman.videolan.org/listinfo/vlc-commits