Changeset 537 in 3DVCSoftware for branches/HTM-DEV-0.3-dev2/source/Lib/TLibEncoder/TEncGOP.cpp
- Timestamp:
- 13 Jul 2013, 15:51:26 (11 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/HTM-DEV-0.3-dev2/source/Lib/TLibEncoder/TEncGOP.cpp
r534 r537 94 94 m_cpbRemovalDelay = 0; 95 95 m_lastBPSEI = 0; 96 #if L0045_NON_NESTED_SEI_RESTRICTIONS97 96 xResetNonNestedSEIPresentFlags(); 98 #if K0180_SCALABLE_NESTING_SEI99 97 xResetNestedSEIPresentFlags(); 100 #endif101 #endif102 98 #if H_MV 103 99 m_layerId = 0; … … 163 159 SEIActiveParameterSets *seiActiveParameterSets = new SEIActiveParameterSets(); 164 160 seiActiveParameterSets->activeVPSId = m_pcCfg->getVPS()->getVPSId(); 165 #if L0047_APS_FLAGS166 161 seiActiveParameterSets->m_fullRandomAccessFlag = false; 167 162 seiActiveParameterSets->m_noParamSetUpdateFlag = false; 168 #endif169 163 seiActiveParameterSets->numSpsIdsMinus1 = 0; 170 164 seiActiveParameterSets->activeSeqParamSetId.resize(seiActiveParameterSets->numSpsIdsMinus1 + 1); … … 179 173 seiFramePacking->m_arrangementCancelFlag = 0; 180 174 seiFramePacking->m_arrangementType = m_pcCfg->getFramePackingArrangementSEIType(); 181 #if L0444_FPA_TYPE182 175 assert((seiFramePacking->m_arrangementType > 2) && (seiFramePacking->m_arrangementType < 6) ); 183 #endif184 176 seiFramePacking->m_quincunxSamplingFlag = m_pcCfg->getFramePackingArrangementSEIQuincunx(); 185 177 seiFramePacking->m_contentInterpretationType = m_pcCfg->getFramePackingArrangementSEIInterpretation(); … … 195 187 seiFramePacking->m_frame1GridPositionY = 0; 196 188 seiFramePacking->m_arrangementReservedByte = 0; 197 #if L0045_PERSISTENCE_FLAGS198 189 seiFramePacking->m_arrangementPersistenceFlag = true; 199 #else200 seiFramePacking->m_arrangementRepetetionPeriod = 1;201 #endif202 190 seiFramePacking->m_upsampledAspectRatio = 0; 203 191 return seiFramePacking; … … 214 202 } 215 203 216 #if J0149_TONE_MAPPING_SEI217 204 SEIToneMappingInfo* TEncGOP::xCreateSEIToneMappingInfo() 218 205 { … … 225 212 assert(seiToneMappingInfo->m_codedDataBitDepth >= 8 && seiToneMappingInfo->m_codedDataBitDepth <= 14); 226 213 seiToneMappingInfo->m_targetBitDepth = m_pcCfg->getTMISEITargetBitDepth(); 227 assert( (seiToneMappingInfo->m_targetBitDepth >= 1 && seiToneMappingInfo->m_targetBitDepth <= 17) || (seiToneMappingInfo->m_targetBitDepth == 255));214 assert( seiToneMappingInfo->m_targetBitDepth >= 1 && seiToneMappingInfo->m_targetBitDepth <= 17 ); 228 215 seiToneMappingInfo->m_modelId = m_pcCfg->getTMISEIModelID(); 229 216 assert(seiToneMappingInfo->m_modelId >=0 &&seiToneMappingInfo->m_modelId<=4); … … 300 287 return seiToneMappingInfo; 301 288 } 302 #endif 289 303 290 Void TEncGOP::xCreateLeadingSEIMessages (/*SEIMessages seiMessages,*/ AccessUnit &accessUnit, TComSPS *sps) 304 291 { … … 315 302 accessUnit.push_back(new NALUnitEBSP(nalu)); 316 303 delete sei; 317 #if L0045_NON_NESTED_SEI_RESTRICTIONS318 304 m_activeParameterSetSEIPresentInAU = true; 319 #endif320 305 } 321 306 … … 342 327 delete sei; 343 328 } 344 #if J0149_TONE_MAPPING_SEI345 329 if(m_pcCfg->getToneMappingInfoSEIEnabled()) 346 330 { … … 354 338 delete sei; 355 339 } 356 #endif357 340 } 358 341 … … 389 372 #endif 390 373 SEIPictureTiming pictureTimingSEI; 391 #if L0208_SOP_DESCRIPTION_SEI392 374 Bool writeSOP = m_pcCfg->getSOPDescriptionSEIEnabled(); 393 #endif394 #if K0180_SCALABLE_NESTING_SEI395 375 // Initialize Scalable Nesting SEI with single layer values 396 376 SEIScalableNesting scalableNestingSEI; … … 403 383 scalableNestingSEI.m_nestingLayerId[0] = 0; 404 384 scalableNestingSEI.m_callerOwnsSEIs = true; 405 #endif406 #if L0044_DU_DPB_OUTPUT_DELAY_HRD407 385 Int picSptDpbOutputDuDelay = 0; 408 #endif409 386 UInt *accumBitsDU = NULL; 410 387 UInt *accumNalsDU = NULL; … … 596 573 pcSlice->getRPS()->setNumberOfLongtermPictures(0); 597 574 598 #if FIX1071 && H_MV_FIX1071575 #if FIX1071 599 576 if ((pcSlice->checkThatAllRefPicsAreAvailable(rcListPic, pcSlice->getRPS(), false) != 0) || (pcSlice->isIRAP())) 600 577 { … … 772 749 } 773 750 #endif 774 #if !L0034_COMBINED_LIST_CLEANUP775 if (pcSlice->getSliceType() != B_SLICE || !pcSlice->getSPS()->getUseLComb())776 {777 pcSlice->setNumRefIdx(REF_PIC_LIST_C, 0);778 pcSlice->setRefPicListCombinationFlag(false);779 pcSlice->setRefPicListModificationFlagLC(false);780 }781 else782 {783 pcSlice->setRefPicListCombinationFlag(pcSlice->getSPS()->getUseLComb());784 pcSlice->setNumRefIdx(REF_PIC_LIST_C, pcSlice->getNumRefIdx(REF_PIC_LIST_0));785 }786 #endif787 788 751 if (pcSlice->getSliceType() == B_SLICE) 789 752 { … … 820 783 pcSlice->setRefPOCList(); 821 784 822 #if L0034_COMBINED_LIST_CLEANUP823 785 pcSlice->setList1IdxToList0Idx(); 824 #else825 pcSlice->setNoBackPredFlag( false );826 if ( pcSlice->getSliceType() == B_SLICE && !pcSlice->getRefPicListCombinationFlag())827 {828 if ( pcSlice->getNumRefIdx(RefPicList( 0 ) ) == pcSlice->getNumRefIdx(RefPicList( 1 ) ) )829 {830 pcSlice->setNoBackPredFlag( true );831 Int i;832 for ( i=0; i < pcSlice->getNumRefIdx(RefPicList( 1 ) ); i++ )833 {834 if ( pcSlice->getRefPOC(RefPicList(1), i) != pcSlice->getRefPOC(RefPicList(0), i) )835 {836 pcSlice->setNoBackPredFlag( false );837 break;838 }839 }840 }841 }842 843 if(pcSlice->getNoBackPredFlag())844 {845 pcSlice->setNumRefIdx(REF_PIC_LIST_C, 0);846 }847 pcSlice->generateCombinedList();848 #endif849 786 #if H_3D_TMVP 850 787 if(pcSlice->getLayerId()) … … 943 880 944 881 #if RATE_CONTROL_LAMBDA_DOMAIN 945 Int sliceQP = pcSlice->getSliceQp();946 882 Double lambda = 0.0; 947 883 Int actualHeadBits = 0; … … 959 895 estimatedBits = m_pcRateCtrl->getRCPic()->getTargetBits(); 960 896 897 Int sliceQP = m_pcCfg->getInitialQP(); 961 898 if ( ( pcSlice->getPOC() == 0 && m_pcCfg->getInitialQP() > 0 ) || ( frameLevel == 0 && m_pcCfg->getForceIntraQP() ) ) // QP is specified 962 899 { 963 sliceQP = m_pcCfg->getInitialQP();964 900 Int NumberBFrames = ( m_pcCfg->getGOPSize() - 1 ); 965 901 Double dLambda_scale = 1.0 - Clip3( 0.0, 0.5, 0.05*(Double)NumberBFrames ); … … 972 908 else if ( frameLevel == 0 ) // intra case, but use the model 973 909 { 910 #if RATE_CONTROL_INTRA 911 m_pcSliceEncoder->calCostSliceI(pcPic); 912 #endif 974 913 if ( m_pcCfg->getIntraPeriod() != 1 ) // do not refine allocated bits for all intra case 975 914 { 976 915 Int bits = m_pcRateCtrl->getRCSeq()->getLeftAverageBits(); 916 #if RATE_CONTROL_INTRA 917 bits = m_pcRateCtrl->getRCPic()->getRefineBitsForIntra( bits ); 918 #else 977 919 bits = m_pcRateCtrl->getRCSeq()->getRefineBitsForIntra( bits ); 920 #endif 978 921 if ( bits < 200 ) 979 922 { … … 984 927 985 928 list<TEncRCPic*> listPreviousPicture = m_pcRateCtrl->getPicList(); 929 #if RATE_CONTROL_INTRA 930 m_pcRateCtrl->getRCPic()->getLCUInitTargetBits(); 931 lambda = m_pcRateCtrl->getRCPic()->estimatePicLambda( listPreviousPicture, pcSlice->getSliceType()); 932 #else 986 933 lambda = m_pcRateCtrl->getRCPic()->estimatePicLambda( listPreviousPicture ); 934 #endif 987 935 sliceQP = m_pcRateCtrl->getRCPic()->estimatePicQP( lambda, listPreviousPicture ); 988 936 } … … 990 938 { 991 939 list<TEncRCPic*> listPreviousPicture = m_pcRateCtrl->getPicList(); 940 #if RATE_CONTROL_INTRA 941 lambda = m_pcRateCtrl->getRCPic()->estimatePicLambda( listPreviousPicture, pcSlice->getSliceType()); 942 #else 992 943 lambda = m_pcRateCtrl->getRCPic()->estimatePicLambda( listPreviousPicture ); 944 #endif 993 945 sliceQP = m_pcRateCtrl->getRCPic()->estimatePicQP( lambda, listPreviousPicture ); 994 946 } … … 1199 1151 Bool bLFCrossTileBoundary = pcSlice->getPPS()->getLoopFilterAcrossTilesEnabledFlag(); 1200 1152 m_pcLoopFilter->setCfg(bLFCrossTileBoundary); 1201 #if L0386_DB_METRIC1202 1153 if ( m_pcCfg->getDeblockingFilterMetric() ) 1203 1154 { 1204 1155 dblMetric(pcPic, uiNumSlices); 1205 1156 } 1206 #endif1207 1157 m_pcLoopFilter->loopFilterPic( pcPic ); 1208 1158 … … 1267 1217 UInt maxCU = m_pcCfg->getSliceArgument() >> ( pcSlice->getSPS()->getMaxCUDepth() << 1); 1268 1218 UInt numDU = ( m_pcCfg->getSliceMode() == 1 ) ? ( pcPic->getNumCUsInFrame() / maxCU ) : ( 0 ); 1269 if( pcPic->getNumCUsInFrame() % maxCU != 0 )1219 if( pcPic->getNumCUsInFrame() % maxCU != 0 || numDU == 0 ) 1270 1220 { 1271 1221 numDU ++; … … 1307 1257 } 1308 1258 1309 #if L0208_SOP_DESCRIPTION_SEI1310 1259 if (writeSOP) // write SOP description SEI (if enabled) at the beginning of GOP 1311 1260 { … … 1345 1294 writeSOP = false; 1346 1295 } 1347 #endif1348 1296 1349 1297 if( ( m_pcCfg->getPictureTimingSEIEnabled() || m_pcCfg->getDecodingUnitInfoSEIEnabled() ) && … … 1377 1325 pictureTimingSEI.m_auCpbRemovalDelay = std::max<Int>(1, m_totalCoded - m_lastBPSEI); // Syntax element signalled as minus, hence the . 1378 1326 pictureTimingSEI.m_picDpbOutputDelay = pcSlice->getSPS()->getNumReorderPics(0) + pcSlice->getPOC() - m_totalCoded; 1379 #if L0044_DU_DPB_OUTPUT_DELAY_HRD1380 1327 Int factor = pcSlice->getSPS()->getVuiParameters()->getHrdParameters()->getTickDivisorMinus2() + 2; 1381 1328 pictureTimingSEI.m_picDpbOutputDuDelay = factor * pictureTimingSEI.m_picDpbOutputDelay; … … 1384 1331 picSptDpbOutputDuDelay = factor * pictureTimingSEI.m_picDpbOutputDelay; 1385 1332 } 1386 #endif1387 1333 } 1388 1334 … … 1404 1350 sei_buffering_period.m_initialCpbRemovalDelayOffset[0][1] = uiInitialCpbRemovalDelay; 1405 1351 1406 #if L0043_TIMING_INFO1407 1352 Double dTmp = (Double)pcSlice->getSPS()->getVuiParameters()->getTimingInfo()->getNumUnitsInTick() / (Double)pcSlice->getSPS()->getVuiParameters()->getTimingInfo()->getTimeScale(); 1408 #else1409 Double dTmp = (Double)pcSlice->getSPS()->getVuiParameters()->getHrdParameters()->getNumUnitsInTick() / (Double)pcSlice->getSPS()->getVuiParameters()->getHrdParameters()->getTimeScale();1410 #endif1411 1353 1412 1354 UInt uiTmp = (UInt)( dTmp * 90000.0 ); … … 1419 1361 1420 1362 sei_buffering_period.m_rapCpbParamsPresentFlag = 0; 1421 #if L0328_SPLICING1422 1363 //for the concatenation, it can be set to one during splicing. 1423 1364 sei_buffering_period.m_concatenationFlag = 0; 1424 1365 //since the temporal layer HRD is not ready, we assumed it is fixed 1425 1366 sei_buffering_period.m_auCpbRemovalDelayDelta = 1; 1426 #endif1427 #if L0044_CPB_DPB_DELAY_OFFSET1428 1367 sei_buffering_period.m_cpbDelayOffset = 0; 1429 1368 sei_buffering_period.m_dpbDelayOffset = 0; 1430 #endif1431 1369 1432 1370 m_seiWriter.writeSEImessage( nalu.m_Bitstream, sei_buffering_period, pcSlice->getSPS()); 1433 1371 writeRBSPTrailingBits(nalu.m_Bitstream); 1434 #if L0045_NON_NESTED_SEI_RESTRICTIONS1435 1372 { 1436 1373 UInt seiPositionInAu = xGetFirstSeiLocation(accessUnit); … … 1444 1381 m_bufferingPeriodSEIPresentInAU = true; 1445 1382 } 1446 #else 1447 accessUnit.push_back(new NALUnitEBSP(nalu)); 1448 #endif 1449 1450 #if K0180_SCALABLE_NESTING_SEI 1383 1451 1384 if (m_pcCfg->getScalableNestingSEIEnabled()) 1452 1385 { … … 1458 1391 m_seiWriter.writeSEImessage( naluTmp.m_Bitstream, scalableNestingSEI, pcSlice->getSPS()); 1459 1392 writeRBSPTrailingBits(naluTmp.m_Bitstream); 1460 #if L0045_NON_NESTED_SEI_RESTRICTIONS1461 1393 UInt seiPositionInAu = xGetFirstSeiLocation(accessUnit); 1462 1394 UInt offsetPosition = m_activeParameterSetSEIPresentInAU + m_bufferingPeriodSEIPresentInAU + m_pictureTimingSEIPresentInAU; // Insert BP SEI after non-nested APS, BP and PT SEIs … … 1468 1400 accessUnit.insert(it, new NALUnitEBSP(naluTmp)); 1469 1401 m_nestedBufferingPeriodSEIPresentInAU = true; 1470 #else 1471 accessUnit.push_back(new NALUnitEBSP(naluTmp)); 1472 #endif 1473 } 1474 #endif 1402 } 1475 1403 1476 1404 m_lastBPSEI = m_totalCoded; … … 1935 1863 if ( m_pcCfg->getUseRateCtrl() ) 1936 1864 { 1865 #if !M0036_RC_IMPROVEMENT 1937 1866 Double effectivePercentage = m_pcRateCtrl->getRCPic()->getEffectivePercentage(); 1867 #endif 1938 1868 Double avgQP = m_pcRateCtrl->getRCPic()->calAverageQP(); 1939 1869 Double avgLambda = m_pcRateCtrl->getRCPic()->calAverageLambda(); … … 1942 1872 avgLambda = lambda; 1943 1873 } 1874 #if M0036_RC_IMPROVEMENT 1875 #if RATE_CONTROL_INTRA 1876 m_pcRateCtrl->getRCPic()->updateAfterPicture( actualHeadBits, actualTotalBits, avgQP, avgLambda, pcSlice->getSliceType()); 1877 #else 1878 m_pcRateCtrl->getRCPic()->updateAfterPicture( actualHeadBits, actualTotalBits, avgQP, avgLambda ); 1879 #endif 1880 #else 1944 1881 m_pcRateCtrl->getRCPic()->updateAfterPicture( actualHeadBits, actualTotalBits, avgQP, avgLambda, effectivePercentage ); 1882 #endif 1945 1883 m_pcRateCtrl->getRCPic()->addToPictureLsit( m_pcRateCtrl->getPicList() ); 1946 1884 … … 1962 1900 } 1963 1901 #endif 1902 1964 1903 if( ( m_pcCfg->getPictureTimingSEIEnabled() || m_pcCfg->getDecodingUnitInfoSEIEnabled() ) && 1965 1904 ( pcSlice->getSPS()->getVuiParametersPresentFlag() ) && … … 1996 1935 for( i = ( numDU - 2 ); i >= 0; i -- ) 1997 1936 { 1998 #if L0043_TIMING_INFO1999 1937 ui64Tmp = ( ( ( accumBitsDU[ numDU - 1 ] - accumBitsDU[ i ] ) * ( vui->getTimingInfo()->getTimeScale() / vui->getTimingInfo()->getNumUnitsInTick() ) * ( hrd->getTickDivisorMinus2() + 2 ) ) / ( m_pcCfg->getTargetBitrate() ) ); 2000 #else2001 ui64Tmp = ( ( ( accumBitsDU[ numDU - 1 ] - accumBitsDU[ i ] ) * ( hrd->getTimeScale() / hrd->getNumUnitsInTick() ) * ( hrd->getTickDivisorMinus2() + 2 ) ) / ( m_pcCfg->getTargetBitrate() ) );2002 #endif2003 1938 if( (UInt)ui64Tmp > maxDiff ) 2004 1939 { … … 2012 1947 { 2013 1948 flag = 0; 2014 #if L0043_TIMING_INFO2015 1949 ui64Tmp = ( ( ( accumBitsDU[ numDU - 1 ] - accumBitsDU[ i ] ) * ( vui->getTimingInfo()->getTimeScale() / vui->getTimingInfo()->getNumUnitsInTick() ) * ( hrd->getTickDivisorMinus2() + 2 ) ) / ( m_pcCfg->getTargetBitrate() ) ); 2016 #else2017 ui64Tmp = ( ( ( accumBitsDU[ numDU - 1 ] - accumBitsDU[ i ] ) * ( hrd->getTimeScale() / hrd->getNumUnitsInTick() ) * ( hrd->getTickDivisorMinus2() + 2 ) ) / ( m_pcCfg->getTargetBitrate() ) );2018 #endif2019 1950 2020 1951 if( (UInt)ui64Tmp > maxDiff ) … … 2048 1979 m_seiWriter.writeSEImessage(nalu.m_Bitstream, pictureTimingSEI, pcSlice->getSPS()); 2049 1980 writeRBSPTrailingBits(nalu.m_Bitstream); 2050 #if L0045_NON_NESTED_SEI_RESTRICTIONS2051 1981 UInt seiPositionInAu = xGetFirstSeiLocation(accessUnit); 2052 1982 UInt offsetPosition = m_activeParameterSetSEIPresentInAU … … 2059 1989 accessUnit.insert(it, new NALUnitEBSP(nalu)); 2060 1990 m_pictureTimingSEIPresentInAU = true; 2061 #else 2062 AccessUnit::iterator it = find_if(accessUnit.begin(), accessUnit.end(), mem_fun(&NALUnit::isSlice)); 2063 accessUnit.insert(it, new NALUnitEBSP(nalu)); 2064 #endif 2065 } 2066 #if K0180_SCALABLE_NESTING_SEI 1991 } 2067 1992 if ( m_pcCfg->getScalableNestingSEIEnabled() ) // put picture timing SEI into scalable nesting SEI 2068 1993 { … … 2073 1998 m_seiWriter.writeSEImessage(nalu.m_Bitstream, scalableNestingSEI, pcSlice->getSPS()); 2074 1999 writeRBSPTrailingBits(nalu.m_Bitstream); 2075 #if L0045_NON_NESTED_SEI_RESTRICTIONS2076 2000 UInt seiPositionInAu = xGetFirstSeiLocation(accessUnit); 2077 2001 UInt offsetPosition = m_activeParameterSetSEIPresentInAU … … 2084 2008 accessUnit.insert(it, new NALUnitEBSP(nalu)); 2085 2009 m_nestedPictureTimingSEIPresentInAU = true; 2086 #else2087 AccessUnit::iterator it = find_if(accessUnit.begin(), accessUnit.end(), mem_fun(&NALUnit::isSlice));2088 accessUnit.insert(it, new NALUnitEBSP(nalu));2089 #endif2090 2010 } 2091 #endif2092 2093 2011 } 2094 2012 if( m_pcCfg->getDecodingUnitInfoSEIEnabled() && hrd->getSubPicCpbParamsPresentFlag() ) … … 2102 2020 tempSEI.m_decodingUnitIdx = i; 2103 2021 tempSEI.m_duSptCpbRemovalDelay = pictureTimingSEI.m_duCpbRemovalDelayMinus1[i] + 1; 2104 #if L0044_DU_DPB_OUTPUT_DELAY_HRD2105 2022 tempSEI.m_dpbOutputDuDelayPresentFlag = false; 2106 2023 tempSEI.m_picSptDpbOutputDuDelay = picSptDpbOutputDuDelay; 2107 #endif2108 2024 2109 2025 AccessUnit::iterator it; … … 2115 2031 writeRBSPTrailingBits(nalu.m_Bitstream); 2116 2032 2117 #if L0045_NON_NESTED_SEI_RESTRICTIONS2118 2033 UInt seiPositionInAu = xGetFirstSeiLocation(accessUnit); 2119 2034 UInt offsetPosition = m_activeParameterSetSEIPresentInAU … … 2125 2040 } 2126 2041 accessUnit.insert(it, new NALUnitEBSP(nalu)); 2127 #else2128 it = find_if(accessUnit.begin(), accessUnit.end(), mem_fun(&NALUnit::isSlice));2129 accessUnit.insert(it, new NALUnitEBSP(nalu));2130 #endif2131 2042 } 2132 2043 else … … 2154 2065 } 2155 2066 } 2156 #if L0045_NON_NESTED_SEI_RESTRICTIONS2157 2067 xResetNonNestedSEIPresentFlags(); 2158 #if K0180_SCALABLE_NESTING_SEI2159 2068 xResetNestedSEIPresentFlags(); 2160 #endif2161 #endif2162 2069 pcPic->getPicYuvRec()->copyToPic(pcPicYuvRecOut); 2163 2070 … … 2851 2758 } 2852 2759 2853 #if L0045_NON_NESTED_SEI_RESTRICTIONS2854 2760 /** Function for finding the position to insert the first of APS and non-nested BP, PT, DU info SEI messages. 2855 2761 * \param accessUnit Access Unit of the current picture … … 2871 2777 return seiStartPos; 2872 2778 } 2873 #endif 2874 2875 #if L0386_DB_METRIC 2779 2876 2780 Void TEncGOP::dblMetric( TComPic* pcPic, UInt uiNumSlices ) 2877 2781 { … … 2887 2791 const UInt noCol = (picWidth>>log2maxTB); 2888 2792 const UInt noRows = (picHeight>>log2maxTB); 2793 assert(noCol > 1); 2794 assert(noRows > 1); 2889 2795 UInt64 *colSAD = (UInt64*)malloc(noCol*sizeof(UInt64)); 2890 2796 UInt64 *rowSAD = (UInt64*)malloc(noRows*sizeof(UInt64)); … … 2995 2901 free(rowSAD); 2996 2902 } 2997 #endif 2903 2998 2904 #if H_MV 2999 2905 Void TEncGOP::xSetRefPicListModificationsMv( TComSlice* pcSlice, UInt iGOPid )
Note: See TracChangeset for help on using the changeset viewer.