fix mismatch between debug and release version
Fix different coding results in debug and release version
Merge request reports
Activity
- Resolved by Frank Bossen
I would like to understand a bit more here. The bug report 76 says something about uninitialized variables. Which variable is uninitialized? Generally the fix for such issues is to initialize the variables. Why is it not the case here? Does this change modify the behaviour in both debug and release builds? Is there a particular test case that can be used to reproduce the issue?
2840 2840 2841 2841 if ( m_pcEncCfg->getFastMEForGenBLowDelayEnabled() && iRefList == 1 ) // list 1 The mismatch was caused here. For the ME of 6-parameter affine mode, the best refidx of 4-parameter affine mode is reused, and other refidx is skipped. But if
slice.getList1IdxToList0Idx( refIdx4Para[1]) != refIdx4Para[0]
, the ME for refIdx4Para[0] is skipped, which leads to the uninitialized variables uiCostTempL0[iList1ToList0Idx] and uiBitsTempL0[iList1ToList0Idx].Results are changed after this patch. Another solution without changes under gcc 6.3 release build is attached. (Modify the type of variable **uiBitsTempL0 **from "uint32_t" to "static uint32_t", to align debug results to release results.)
mentioned in commit c55f6f0d