Fix track transversal when listing Cues on sample

It could skip tracks or crash if track numbers were non-sequential or tracks were missing.

Change-Id: I485bd4c14c73500775f2944b4486f9a5e154a5e8
This commit is contained in:
Leonel Togniolli
2015-04-09 03:48:38 +01:00
parent c6255af02a
commit d3a44cd549

View File

@@ -313,9 +313,9 @@ int main(int argc, char* argv[]) {
printf("\t\tCues\n"); printf("\t\tCues\n");
do { do {
for (track_num = 1; track_num != num_tracks; ++track_num) { for (track_num = 0; track_num < num_tracks; ++track_num) {
const mkvparser::Track* const track = const mkvparser::Track* const track =
pTracks->GetTrackByNumber(track_num); pTracks->GetTrackByIndex(track_num);
const mkvparser::CuePoint::TrackPosition* const track_pos = const mkvparser::CuePoint::TrackPosition* const track_pos =
cue->Find(track); cue->Find(track);
@@ -325,7 +325,7 @@ int main(int argc, char* argv[]) {
printf( printf(
"\t\t\tCue Point %4d Track %3lu(%c) Time %14lld " "\t\t\tCue Point %4d Track %3lu(%c) Time %14lld "
"Block %4lld Pos %8llx\n", "Block %4lld Pos %8llx\n",
cue_point_num, track_num, track_type, cue_point_num, track->GetNumber(), track_type,
cue->GetTime(pSegment.get()), track_pos->m_block, cue->GetTime(pSegment.get()), track_pos->m_block,
track_pos->m_pos); track_pos->m_pos);
} }