Ticket #57: invalid_mv_comparison.patch

File invalid_mv_comparison.patch, 1.2 KB (added by adamjw, 8 years ago)

bugfix for inconsistent motion vector comparison

  • source/Lib/TLibCommon/TComMotionInfo.h

     
    100100#if COM16_C806_GEN_MRG_IMPROVEMENT || COM16_C806_OBMC || VCEG_AZ07_FRUC_MERGE || JVET_C0024_QTBT
    101101  Bool operator== (const TComMvField& rcMv) const
    102102  {
    103     return (m_acMv.getHor()== rcMv.getHor() && m_acMv.getVer()== rcMv.getVer() && m_iRefIdx == rcMv.getRefIdx());
     103#if POSSIBLE_BUG_FIXES
     104    return ( m_iRefIdx == rcMv.getRefIdx() && ( m_iRefIdx == -1 || ( m_acMv.getHor() == rcMv.getHor() && m_acMv.getVer() == rcMv.getVer() ) ) );
     105#else
     106    return ( m_acMv.getHor() == rcMv.getHor() && m_acMv.getVer() == rcMv.getVer() && m_iRefIdx == rcMv.getRefIdx() );
     107#endif
    104108  }
    105109#endif
    106110};
  • source/Lib/TLibCommon/TypeDef.h

     
    4444
    4545#include <vector>
    4646
     47#define POSSIBLE_BUG_FIXES                                1
     48
    4749//! \ingroup TLibCommon
    4850//! \{
    4951///////////////////////////////////////////////////////////