Opened 6 years ago
#207 new defect
VTM + 360Lib tries to read input/reference file even is E2E quality metrics are not enabled
Reported by: | jfmcarreira | Owned by: | |
---|---|---|---|
Priority: | major | Milestone: | |
Component: | 360Lib | Version: | |
Keywords: | Cc: | vzakharc, yuwenhe, jvet@… |
Description
In the VTM codec initialization the method TExt360EncGop::initE2EMetricsCalc is not executed if SphereVideo is equal to 0. Therefore, the reference YUV file is not initialized.
However, in the method below it is still access in the method TExt360EncGop::readOrigPicYuv as shown below.
Void TExt360EncGop::calculatePSNRs(TComPic *pcPic)
{
#if SVIDEO_E2E_METRICS
readOrigPicYuv(pcPic->getPOC());
reconstructPicYuv(pcPic->getPicYuvRec());
#endif
[...]
}
Void TExt360EncGop::readOrigPicYuv(Int iPOC)
{
Int iDeltaFrames = iPOC*m_temporalSubsampleRatio - m_iLastFrmPOC;
Int aiPad[2]={0,0};
m_pcTVideoIOYuvInputFile->skipFrames(iDeltaFrames, m_iInputWidth, m_iInputHeight, m_inputChromaFomat);
PelUnitBuf tmpBuf;
m_pcTVideoIOYuvInputFile->read(tmpBuf, *m_pcOrgPicYuv, IPCOLOURSPACE_UNCHANGED, aiPad, m_inputChromaFomat, false );
m_iLastFrmPOC = iPOC*m_temporalSubsampleRatio+1;
}
This leads to a segmentation fault, since we are trying to access initialized classes.
This was detected using VTM3.0 + 360Lib8.0 but it is still in the trunk branch of 360Lib.