sh4 eplayer prevent segfaults caused audio rework

This commit is contained in:
DboxOldie
2020-02-16 19:52:10 +01:00
committed by Thilo Graf
parent 480d23dc30
commit 67110fb054
2 changed files with 10 additions and 8 deletions

View File

@@ -349,7 +349,7 @@ bool Player::SwitchVideo(int pid)
bool Player::SwitchAudio(int pid)
{
Track *track = manager.getAudioTrack(pid);
return input.SwitchAudio(track);
return track ? input.SwitchAudio(track) : false;
}
bool Player::SwitchSubtitle(int pid)

View File

@@ -141,7 +141,7 @@ bool cPlayback::Stop(void)
bool cPlayback::SetAPid(int pid, bool /* ac3 */)
{
hal_info("%s\n", __func__);
hal_info("%s:(%d)\n", __func__, pid);
return player->SwitchAudio(pid);
}
@@ -308,13 +308,15 @@ void cPlayback::FindAllPids(int *pids, unsigned int *ac3flags, unsigned int *num
hal_info("%s\n", __func__);
unsigned int i = 0;
if (IsPlaying()) {
std::vector<Track> tracks = player->manager.getAudioTracks();
for (std::vector<Track>::iterator it = tracks.begin(); it != tracks.end() && i < *numpids; ++it) {
pids[i] = it->pid;
ac3flags[i] = (it->ac3flags > 2) ? 1 : 0;
ac3flags[i] = it->ac3flags;
language[i] = it->title;
i++;
}
}
*numpids = i;
}