@@ -2413,7 +2413,7 @@ async fn api_fast_embed_inner(
24132413 . map ( |value| query_flag ( Some ( value) , true ) )
24142414 . unwrap_or ( auto_play) ;
24152415 let inline_startup = if startup == "mse" {
2416- fast_embed_inline_startup ( state. as_ref ( ) , & response, & selection)
2416+ fast_embed_inline_startup ( state. as_ref ( ) , & response, & selection, & playback_base_url )
24172417 . await
24182418 . unwrap_or ( None )
24192419 } else {
@@ -2434,7 +2434,7 @@ async fn api_fast_embed_inner(
24342434 if let Ok ( cookie) = playback_cookie_header (
24352435 & response. playback_token ,
24362436 response. ttl_seconds ,
2437- & state . config . playback_base_url ,
2437+ & playback_base_url,
24382438 state. config . playback_cookie_domain . as_deref ( ) ,
24392439 )
24402440 . parse ( )
@@ -3832,6 +3832,7 @@ async fn fast_embed_inline_startup(
38323832 state : & AppState ,
38333833 response : & PlaybackBootstrapResponse ,
38343834 selection : & FastEmbedPlaybackSelection ,
3835+ playback_base_url : & str ,
38353836) -> Result < Option < FastEmbedInlineStartup > , AppError > {
38363837 let Some ( rendition) = hls_progressive_rendition ( & selection. artifact_path ) else {
38373838 return Ok ( None ) ;
@@ -3880,14 +3881,14 @@ async fn fast_embed_inline_startup(
38803881 let segment_urls = segment_names
38813882 . iter ( )
38823883 . skip ( 1 )
3883- . map ( |segment| {
3884- artifact_url (
3885- & state. config . playback_base_url ,
3886- & response. asset_id ,
3887- & format ! ( "hls/{rendition}/{segment}" ) ,
3888- )
3889- } )
3884+ . map ( String :: as_str)
38903885 . collect :: < Vec < _ > > ( ) ;
3886+ let segment_urls = fast_embed_inline_segment_urls (
3887+ playback_base_url,
3888+ & response. asset_id ,
3889+ rendition,
3890+ & segment_urls,
3891+ ) ;
38913892
38923893 Ok ( Some ( FastEmbedInlineStartup {
38933894 artifact_path : format ! (
@@ -3899,6 +3900,24 @@ async fn fast_embed_inline_startup(
38993900 } ) )
39003901}
39013902
3903+ fn fast_embed_inline_segment_urls (
3904+ playback_base_url : & str ,
3905+ asset_id : & str ,
3906+ rendition : & str ,
3907+ segment_names : & [ & str ] ,
3908+ ) -> Vec < String > {
3909+ segment_names
3910+ . iter ( )
3911+ . map ( |segment| {
3912+ artifact_url (
3913+ playback_base_url,
3914+ asset_id,
3915+ & format ! ( "hls/{rendition}/{segment}" ) ,
3916+ )
3917+ } )
3918+ . collect ( )
3919+ }
3920+
39023921fn hls_master_codecs_for_rendition ( master : & str , rendition : & str ) -> Option < String > {
39033922 let rendition_path = format ! ( "{rendition}/index.m3u8" ) ;
39043923 let mut pending_codecs = None ;
0 commit comments