@@ -167,6 +167,10 @@ bool LLHlsStream::Start()
167167 auto data_track = GetFirstTrackByType (cmn::MediaType::Data);
168168
169169 std::shared_ptr<MediaTrack> first_video_track = nullptr , first_audio_track = nullptr ;
170+ first_video_track = GetFirstTrackByType (cmn::MediaType::Video);
171+ first_audio_track = GetFirstTrackByType (cmn::MediaType::Audio);
172+
173+ _vtt_reference_track_id = first_video_track ? first_video_track->GetId () : first_audio_track ? first_audio_track->GetId () : -1 ;
170174 for (const auto &[id, track] : _tracks)
171175 {
172176 if (IsSupportedMediaCodec (track->GetCodecId ()) == true )
@@ -176,16 +180,6 @@ bool LLHlsStream::Start()
176180 logte (" LLHlsStream(%s/%s) - Failed to add packager for track(%u)" , GetApplication ()->GetVHostAppName ().CStr (), GetName ().CStr (), track->GetId ());
177181 return false ;
178182 }
179-
180- // For default llhls.m3u8
181- if (first_video_track == nullptr && track->GetMediaType () == cmn::MediaType::Video)
182- {
183- first_video_track = track;
184- }
185- else if (first_audio_track == nullptr && track->GetMediaType () == cmn::MediaType::Audio)
186- {
187- first_audio_track = track;
188- }
189183 }
190184 else
191185 {
@@ -199,8 +193,6 @@ bool LLHlsStream::Start()
199193 }
200194 }
201195
202- _vtt_reference_track_id = first_video_track ? first_video_track->GetId () : first_audio_track ? first_audio_track->GetId () : -1 ;
203-
204196 // Set renditions to each chunklist writer
205197 {
206198 std::lock_guard<std::shared_mutex> lock (_chunklist_map_lock);
@@ -1524,6 +1516,11 @@ bool LLHlsStream::AddVttPackager(const std::shared_ptr<const MediaTrack> &track)
15241516 // Chunklist
15251517 auto segment_duration = std::round (static_cast <double >(_storage_config.segment_duration_ms ) / 1000.0 );
15261518 auto chunk_duration = static_cast <double >(_packager_config.chunk_duration_ms ) / 1000.0 ;
1519+ auto refer_track = GetTrack (_vtt_reference_track_id);
1520+ if (refer_track != nullptr )
1521+ {
1522+ chunk_duration = std::round (ComputeOptimalPartDuration (refer_track)) / 1000.0 ;
1523+ }
15271524
15281525 auto chunklist = std::make_shared<LLHlsChunklist>(GetChunklistName (track->GetId ()),
15291526 track,
0 commit comments