Changeset 518 in 3DVCSoftware
- Timestamp:
- 3 Jul 2013, 21:39:14 (11 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/HTM-DEV-0.3-dev2/source/Lib/TLibCommon/TComDataCU.cpp
r515 r518 2686 2686 Int iRefListIdX = 0; 2687 2687 Int iRefListIdY = 0; 2688 Int i; 2688 2689 2689 2690 for( iRefListIdX = 0; iRefListIdX < 2 && !refViewAvailFlag; iRefListIdX++ ) 2690 2691 { 2691 2692 RefPicList eRefPicList = RefPicList( iRefListIdX ); 2692 for ( Int i = 0; i < m_pcSlice->getNumRefIdx(eRefPicList) && !refViewAvailFlag; i++)2693 for ( i = 0; i < m_pcSlice->getNumRefIdx(eRefPicList) && !refViewAvailFlag; i++ ) 2693 2694 { 2694 2695 Int viewIdxRefInList = m_pcSlice->getRefPic(eRefPicList, i)->getViewIndex(); 2695 2696 if (refViewIdx == viewIdxRefInList) 2696 2697 { 2697 Int iRefIdxList0 = getSlice()->getRefPic(REF_PIC_LIST_0, 0)->getPOC() == getSlice()->getPOC() ?2698 0 : getSlice()->getAlterRefIdx(REF_PIC_LIST_0);2699 2700 2698 refViewAvailFlag = true; 2701 predFlag[ 0] = 1; // iRefListIdX2699 predFlag[iRefListIdX] = 1; 2702 2700 iRefListIdY = 1 - iRefListIdX; 2703 pcMvFieldNeighbours[iCount<<1].setMvField( pDInfo->m_acDoNBDV, iRefIdxList0 ); 2704 // pcMvFieldNeighbours[(iCount<<1)+iRefListIdX].setMvField( pDInfo->m_acDoNBDV, i ); // Buggy code 2701 pcMvFieldNeighbours[(iCount<<1)+iRefListIdX].setMvField( pDInfo->m_acDoNBDV, i ); 2705 2702 } 2706 2703 } … … 2711 2708 RefPicList eRefPicList = RefPicList( iRefListIdY ); 2712 2709 refViewAvailFlag = false; 2713 for ( Int i = 0; i < m_pcSlice->getNumRefIdx(eRefPicList) && !refViewAvailFlag; i++)2714 { 2715 Int viewIdxRefInList = m_pcSlice->getRefPic(eRefPicList, i)->getViewIndex();2716 if ( refViewIdx != viewIdxRefInList)2717 { 2718 Int iRefIdxList1 = getSlice()->getRefPic(REF_PIC_LIST_1, 0)->getPOC() == getSlice()->getPOC() ?2719 0 : getSlice()->getAlterRefIdx(REF_PIC_LIST_1);2720 2721 refViewAvailFlag = true;2722 predFlag[1] = 1; // iRefListIdY2723 pcMvFieldNeighbours[(iCount<<1)+1].setMvField( pDInfo->m_acDoNBDV, iRefIdxList1);2724 //pcMvFieldNeighbours[(iCount<<1)+iRefListIdY].setMvField( pDInfo->m_acDoNBDV, i ); // Buggy code2710 for ( i = 0; i < m_pcSlice->getNumRefIdx(eRefPicList) && !refViewAvailFlag; i++ ) 2711 { 2712 TComPic* refPic = m_pcSlice->getRefPic(eRefPicList, i); 2713 if ( refPic->getPOC() == m_pcSlice->getPOC() ) // is inter-view reference 2714 { 2715 Int viewIdxRefInList = refPic->getViewIndex(); 2716 if (refViewIdx != viewIdxRefInList) 2717 { 2718 refViewAvailFlag = true; 2719 predFlag[iRefListIdY] = 1; 2720 pcMvFieldNeighbours[(iCount<<1)+iRefListIdY].setMvField( pDInfo->m_acDoNBDV, i ); 2721 } 2725 2722 } 2726 2723 }
Note: See TracChangeset for help on using the changeset viewer.