/*---------------------------------------------------------------------- | TrackCursor::SetSampleIndex +---------------------------------------------------------------------*/ AP4_Result TrackCursor::SetSampleIndex(AP4_Ordinal sample_index) { m_SampleIndex = sample_index; // check if we're at the end if (sample_index >= m_Samples->GetSampleCount()) { AP4_UI64 end_dts = m_Sample.GetDts()+m_Sample.GetDuration(); m_Sample.Reset(); m_Sample.SetDts(end_dts); m_Eos = true; } else { return m_Samples->GetSample(m_SampleIndex, m_Sample); } return AP4_SUCCESS; }
/*---------------------------------------------------------------------- | TrackCursor::Init +---------------------------------------------------------------------*/ AP4_Result TrackCursor::Init() { return m_Samples->GetSample(0, m_Sample); }