Skip to content

Commit 15fef7f

Browse files
committed
VPLAY-11969 GetTextTrackInfo returns stale information
If the text track is changed without a re-tune then priv_aamps mPreferredTextTrack, and stream abstractions mTextTrackIndex are not updated to reflect the current track The manifest url can be set to null due to an issue with passing the same string into cache handler methods as multiple params by reference. The specified language via SetTextTrack() is ignored in perference to the prefferedTextLanguage list.
1 parent 5846d04 commit 15fef7f

File tree

1 file changed

+17
-9
lines changed

1 file changed

+17
-9
lines changed

fragmentcollector_hls.cpp

Lines changed: 17 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -3450,19 +3450,26 @@ AAMPStatusType StreamAbstractionAAMP_HLS::Init(TuneType tuneType)
34503450
// Generate audio and text track structures
34513451
PopulateAudioAndTextTracks();
34523452

3453-
// Select preferred text track based on user language preferences
3454-
TextTrackInfo selectedTextTrack;
3455-
if (SelectPreferredTextTrack(selectedTextTrack))
3453+
if (aamp->GetPreferredTextTrack().index.empty())
34563454
{
3457-
AAMPLOG_INFO("Selected text track - lang:%s, name:%s, rendition:%s",
3458-
selectedTextTrack.language.c_str(),
3459-
selectedTextTrack.name.c_str(),
3460-
selectedTextTrack.rendition.c_str());
3461-
aamp->SetPreferredTextTrack(std::move(selectedTextTrack));
3455+
// Select preferred text track based on user language preferences
3456+
TextTrackInfo selectedTextTrack;
3457+
if (SelectPreferredTextTrack(selectedTextTrack))
3458+
{
3459+
AAMPLOG_INFO("Selected text track - lang:%s, name:%s, rendition:%s",
3460+
selectedTextTrack.language.c_str(),
3461+
selectedTextTrack.name.c_str(),
3462+
selectedTextTrack.rendition.c_str());
3463+
aamp->SetPreferredTextTrack(std::move(selectedTextTrack));
3464+
}
3465+
else
3466+
{
3467+
AAMPLOG_WARN("No text track matched user preferences, will use default selection");
3468+
}
34623469
}
34633470
else
34643471
{
3465-
AAMPLOG_WARN("No text track matched user preferences, will use default selection");
3472+
AAMPLOG_INFO("Preferred text track set, so not looking at the list of preferred languages");
34663473
}
34673474

34683475
// Configure Subtitle track for the playback
@@ -7593,6 +7600,7 @@ void StreamAbstractionAAMP_HLS::SelectSubtitleTrack()
75937600
bool StreamAbstractionAAMP_HLS::SelectPreferredTextTrack(TextTrackInfo &selectedTextTrack)
75947601
{
75957602
std::vector<TextTrackInfo> availableTracks = GetAvailableTextTracks();
7603+
75967604
if (availableTracks.empty())
75977605
{
75987606
AAMPLOG_WARN("No text tracks available");

0 commit comments

Comments
 (0)