problem med condition statement i loop
hejsa jeg har et problem som jeg godt nok studser noget overførst en væg af kode:
for (uint StreamsRead = 0; StreamsRead < StreamCount; )
{
INSSBuffer Sample = null;
ulong SampleTime;
ulong SampleDuration;
uint Flags;
uint OutputNumber;
ushort StreamNumber;
bool beginWrite = false;
try
{
StreamNumber = 0;
//Read samples in chronological order.
Reader.GetNextSample(0, out Sample, out SampleTime, out SampleDuration, out Flags,
out OutputNumber, out StreamNumber);
read++;
if (Flags == 1 || beginWrite == true)
{
WriterAdvanced.WriteStreamSample(StreamNumber, SampleTime, 0, SampleDuration, Flags, Sample);
if (!beginWrite)
{
beginWrite = true;
}
write++;
}
}
catch (COMException e)
{
if (e.ErrorCode == WM.NS_E_NO_MORE_SAMPLES)
{ //No more samples for this stream
StreamsRead++;
}
else throw;
}
ovenstående kode skulle gerne søge efter første keyframe i en ASF fil (GetNextSample output Flags parameter bliver 1) og herfeter begynde at skrive til en ny ASF fil. problemet er at så snart jeg indsætter den conditional if sætning så får jeg LANGT færere writes end forventet, et test run giver omkring 5500 læsninger og 580 skrivning hvor tallene burde ligge inden for en afstand af max 50, fjerner jeg if sætningen er der ingen problemer, ud over at jeg så ikke kan være sikker på der startes på en keyframe, men nogen er har et bud på hvorfor jeg ikke umiddelbart kan lave den konstelation og få det forventede resultat, resultat er en ASF fil som kun har en 10. del af de samples den burde ha og dermed hakker helt ondsvagt