10/09/23 17:34:58 yt6z2/Nu
>>733-735
>>733-734の提案を少しアレンジして、
if ((!m_bOpened) || (dwChannel >= m_dwNumChannel) || (dwSpace != 0)) return FALSE;
と
PurgeTsStream();
の間を以下のように変更しました。
const int byMaxRetry = 10;
int i = 0;
BOOL bRet = FALSE;
for (i = 0; i < byMaxRetry && !bRet; i++) {
bRet = LockChannel(m_aCh[dwChannel].bySatellite, m_aCh[dwChannel].bHorizontal, m_aCh[dwChannel].dwFrequency, m_aCh[dwChannel].bDvbS2);
::Sleep(100);
}
if (!bRet) OutputDebugStringA("LockChannel in CBonTuner::SetChannel returned FALSE.\n");
OutputDebug("LockChannel in CBonTuner::SetChannel called %d times.\n", i);
正常時も >>725 の現象が起きるときもOutputDebugのiの値は1でした。
別のところで失敗しているのかもしれません。