diff --git a/src/gui/movieplayer.cpp b/src/gui/movieplayer.cpp index c05ef95d0..01883e8b7 100644 --- a/src/gui/movieplayer.cpp +++ b/src/gui/movieplayer.cpp @@ -1417,9 +1417,11 @@ bool CMoviePlayerGui::PlayFileStart(void) repeat_mode = REPEAT_OFF; return false; } else { - numpida = REC_MAX_APIDS; + numpida = 0; playback->FindAllPids(apids, ac3flags, &numpida, language); - if (p_movie_info) + if (p_movie_info){ + if(!numpida && !p_movie_info->audioPids.empty()) + numpida = p_movie_info->audioPids.size(); for (unsigned int i = 0; i < numpida; i++) { unsigned int j, asize = p_movie_info->audioPids.size(); for (j = 0; j < asize && p_movie_info->audioPids[j].AudioPid != apids[i]; j++); @@ -1432,12 +1434,13 @@ bool CMoviePlayerGui::PlayFileStart(void) p_movie_info->audioPids.push_back(pids); } } - else + }else{ for (unsigned int i = 0; i < numpida; i++) if (apids[i] == playback->GetAPid()) { CZapit::getInstance()->SetVolumePercent((ac3flags[i] == 1) ? g_settings.audio_volume_percent_ac3 : g_settings.audio_volume_percent_pcm); break; } + } repeat_mode = (repeat_mode_enum) g_settings.movieplayer_repeat_on; playstate = CMoviePlayerGui::PLAY; CVFD::getInstance()->ShowIcon(FP_ICON_PLAY, true); @@ -2328,7 +2331,7 @@ bool CMoviePlayerGui::getAudioName(int apid, std::string &apidtitle) { if (p_movie_info == NULL) { - numpida = REC_MAX_APIDS; + numpida = 0; playback->FindAllPids(apids, ac3flags, &numpida, language); for (unsigned int count = 0; count < numpida; count++) if(apid == apids[count]){ @@ -2340,7 +2343,7 @@ bool CMoviePlayerGui::getAudioName(int apid, std::string &apidtitle) { if (!isMovieBrowser) { - numpida = REC_MAX_APIDS; + numpida = 0; playback->FindAllPids(apids, ac3flags, &numpida, language); for (unsigned int count = 0; count < numpida; count++) if(apid == apids[count]){ @@ -2398,10 +2401,12 @@ void CMoviePlayerGui::addAudioFormat(int count, std::string &apidtitle, bool& en } } -void CMoviePlayerGui::getCurrentAudioName(bool /* file_player */, std::string &audioname) +void CMoviePlayerGui::getCurrentAudioName(bool file_player, std::string &audioname) { - numpida = REC_MAX_APIDS; - playback->FindAllPids(apids, ac3flags, &numpida, language); + if (file_player) { + numpida = 0; + playback->FindAllPids(apids, ac3flags, &numpida, language); + } if (numpida && !currentapid) currentapid = apids[0]; for (unsigned int count = 0; count < numpida; count++) @@ -3242,8 +3247,11 @@ unsigned int CMoviePlayerGui::getAPID(void) unsigned int CMoviePlayerGui::getAPIDCount(void) { + if (!is_file_player && numpida) + return numpida; + unsigned int count = 0; - numpida = REC_MAX_APIDS; + numpida = 0; playback->FindAllPids(apids, ac3flags, &numpida, language); for (unsigned int i = 0; i < numpida; i++) { if (i != count) {