Aleksoid1978
Gold Member | Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору judelaw Хочеш разобраться с косяками на Hi10, смотри в этом месте : MPCVideoDecFilter.cpp - CMPCVideoDecFilter::SoftwareDecode() Код: // TODO : quick and dirty patch to fix convertion to YUY2 with swscale if (m_nOutCsp == FF_CSP_YUY2) { CopyBuffer(pDataOut, m_pFrame->data, m_pAVCtx->width, m_pAVCtx->height, m_pFrame->linesize[0], MEDIASUBTYPE_I420, false); } else if (m_pSwsContext != NULL) { uint8_t* dst[4]; int srcStride[4]; int dstStride[4]; const TcspInfo *outcspInfo=csp_getInfo(m_nOutCsp); for (int i=0; i<4; i++) { srcStride[i]=(stride_t)m_pFrame->linesize[i]; dstStride[i]=m_pOutSize.cx>>outcspInfo->shiftX[i]; if (i==0) { dst[i]=pDataOut; } else { dst[i]=dst[i-1]+dstStride[i-1]*(m_pOutSize.cy>>outcspInfo->shiftY[i-1]); } } int nTempCsp = m_nOutCsp; if(outcspInfo->id==FF_CSP_420P) { csp_yuv_adj_to_plane(nTempCsp,outcspInfo,odd2even(m_pOutSize.cy),(unsigned char**)dst,(stride_t*)dstStride); } else { csp_yuv_adj_to_plane(nTempCsp,outcspInfo,m_pAVCtx->height,(unsigned char**)dst,(stride_t*)dstStride); } // We crash inside this function // In swscale.c: Function 'simpleCopy' // Line: 1961 - Buffer Overrun // This might be ffmpeg fault or more likely mpchc is not reinitializing ffmpeg correctly during display change (moving mpchc window from display A to display B) sws_scale (m_pSwsContext, m_pFrame->data, srcStride, 0, m_pAVCtx->height, dst, dstStride); } |
---------- AMD Ryzen 7 7700 /ASRock B650M Pro RS /G.Skill RIPJAWS 32 ГБ /Kingston 500Gb M.2 /RTX 4060 /Samsung U28R550UQI /OLED Philips 55OLED707 /Yamaha RX-V471 + NS-555 + NS-C444 + NS-333 + YST-SW215 |
| Всего записей: 9413 | Зарегистр. 11-05-2006 | Отправлено: 14:25 21-10-2011 | Исправлено: Aleksoid1978, 14:36 21-10-2011 |
|