Skip to content
Snippets Groups Projects
EncGOP.cpp 229 KiB
Newer Older
  • Learn to ignore specific revisions
  •           canIncludeThis = false;
            }
    
            bool sameSign = ( pLocalRPL0->getRefPicIdentifier( ii ) > 0 ) == ( pLocalRPL1->getRefPicIdentifier( 0 ) > 0 );
    
            if( isDisallowMixedRefPic && canIncludeThis && !pLocalRPL0->isRefPicLongterm( ii ) && !sameSign )
            {
              canIncludeThis = false;
            }
          }
          if( canIncludeThis )
          {
            pLocalRPL1->setRefPicIdentifier( refPicIdxL1, pLocalRPL0->getRefPicIdentifier( ii ), pLocalRPL0->isRefPicLongterm( ii ), pLocalRPL0->isInterLayerRefPic( ii ), pLocalRPL0->getInterLayerRefPicIdx( ii ) );
            refPicIdxL1++;
            numOfSTRPL1 = numOfSTRPL1 + ( ( pLocalRPL0->isRefPicLongterm( ii ) ) ? 0 : 1 );
            numOfLTRPL1 += ( pLocalRPL0->isRefPicLongterm( ii ) && !pLocalRPL0->isInterLayerRefPic( ii ) ) ? 1 : 0;
            numOfLTRPL1 += pLocalRPL0->isInterLayerRefPic( ii ) ? 1 : 0;
            numOfNeedToFill--;
          }
        }
      }
      pLocalRPL1->setNumberOfLongtermPictures( numOfLTRPL1 );
      pLocalRPL1->setNumberOfShorttermPictures( numOfSTRPL1 );
      pLocalRPL1->setNumberOfInterLayerPictures( numOfILRPL1 );
      numPics = numOfLTRPL1 + numOfSTRPL1;
    
      pLocalRPL1->setNumberOfActivePictures( ( isDisallowMixedRefPic ? numPics : ( numPics < rpl1->getNumberOfActivePictures() ? numPics : rpl1->getNumberOfActivePictures() ) ) + numOfILRPL1 );
    
      pLocalRPL1->setLtrpInSliceHeaderFlag( 1 );
    
      slice->setRPL1idx( -1 );
      slice->setRPL1( pLocalRPL1 );
    }