From: Rodeo Date: Mon, 1 Jul 2013 00:32:45 +0000 (+0000) Subject: QSV: use B-frame workaround (DTS generation) for VFR/PFR too. X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=aec667481e245327c2935455f7c617f65b18da74;p=handbrake QSV: use B-frame workaround (DTS generation) for VFR/PFR too. QSV's DTS generation fails on some VFR samples here. git-svn-id: svn://svn.handbrake.fr/HandBrake/branches/qsv@5626 b64f7644-9d1e-0410-96f1-a4d463321fa5 --- diff --git a/libhb/enc_qsv.c b/libhb/enc_qsv.c index 5d04e039f..431b3969b 100644 --- a/libhb/enc_qsv.c +++ b/libhb/enc_qsv.c @@ -635,8 +635,10 @@ int qsv_enc_init( av_qsv_context* qsv, hb_work_private_t * pv ){ // sanitize pv->bfrm_delay = FFMAX(pv->bfrm_delay, 0); pv->bfrm_delay = FFMIN(pv->bfrm_delay, BFRM_DELAY_MAX); - // check whether we need to generate DTS ourselves (MSDK < 1.6) - if (pv->bfrm_delay && !(hb_qsv_info->capabilities & HB_QSV_CAP_MSDK_1_6)) + // check whether we need to generate DTS ourselves (MSDK < 1.6 or VFR/PFR) + pv->bfrm_workaround = job->cfr != 1 || !(hb_qsv_info->capabilities & + HB_QSV_CAP_MSDK_1_6); + if (pv->bfrm_delay && pv->bfrm_workaround) { pv->bfrm_workaround = 1; pv->list_dts = hb_list_init();