Repository: flutter
Issue: [video_player] iOS player continues playback beyond buffered fragment and ignores AVPlayer error
Labels: platform-ios,p: video_player,package,has reproducible steps,P2,found in release: 3.3,found in release: 3.6,team-ios,triaged-ios

## Steps to Reproduce

<!-- Please include full steps to reproduce so that we can reproduce the problem. -->

0. Prepare and host locally a recording that consists of individually downloadable fragments - e.g. an HLS recording - long enough so that it is not loaded right at the start of the playback (1-2minute long will do). Example for simple hosting: call `python3 -m http.server` in the folder that contains the recording.
1. Use the example app of the video player - replace the URL of the _BumbleBeeRemoteVideoState so that it points to the file you hosted and verify the playback works.
2. Switch tabs to reload the video, start the playback and while the fragments are buffered - break the connection to the server (e.g. stop the server).
3. Notice the length of the buffered fragment.

**Expected results:** <!-- what did you want to see? -->
The player stops (with an error) OR starts buffering at the end of the buffered fragment.
The player recovers when the server comes back OR throws/informs about the error.

**Actual results:** <!-- what did you see? -->
The playback stops but the progress bar continues past the bufferred fragment. Eventually the player breaks terminally - the playback cannot be restarted.
Extra:  if you seek towards the end of the buffered period during the playback (so that the end of the buffered period is reached within 5-10s after stopping the server), at the end of the buffered part, the video stops but the audio is still played for some extra seconds.

### Details

Examining requests sent by the AVPlayer it looks like it attempts to load next segments several times before declaring a failure. During that period, the video_player continues with playing back the audio even though the video is not available (usually, audio segments load faster than video ones and there's more of them buffered).
Eventually, the AV player declares a terminal failure which cannot be recovered (a new player needs to be created), sending this notification: https://developer.apple.com/documentation/avfoundation/avplayeritemfailedtoplaytoendtimenotification
Looking at the code, it doesn't seem like this notification is handled at all, unless I'm missing something:
https://github.com/flutter/plugins/blob/main/packages/video_player/video_player_avfoundation/ios/Classes/FLTVideoPlayerPlugin.m#L103

<details>
<summary>Code sample</summary>

You can use Apple's hosted files to reproduce this, by disabling connectivity whilel the file is buffered (e.g. enabling the airplane mode). Changed example file below (only URL matters - other changes are purely for cosmetic reasons):

```
diff --git a/packages/video_player/video_player/example/lib/main.dart b/packages/video_player/video_player/example/lib/main.dart
index 208cd2fc6..6bb482af6 100644
--- a/packages/video_player/video_player/example/lib/main.dart
+++ b/packages/video_player/video_player/example/lib/main.dart
@@ -218,13 +218,13 @@ class _BumbleBeeRemoteVideoState extends State<_BumbleBeeRemoteVideo> {
   void initState() {
     super.initState();
     _controller = VideoPlayerController.network(
-      'https://flutter.github.io/assets-for-api-docs/assets/videos/bee.mp4',
-      closedCaptionFile: _loadCaptions(),
+      'https://devstreaming-cdn.apple.com/videos/streaming/examples/img_bipbop_adv_example_ts/master.m3u8',
       videoPlayerOptions: VideoPlayerOptions(mixWithOthers: true),
     );
 
     _controller.addListener(() {
       setState(() {});
+      print('state updated ${_controller.value}');
     });
     _controller.setLooping(true);
     _controller.initialize();
@@ -238,6 +238,7 @@ class _BumbleBeeRemoteVideoState extends State<_BumbleBeeRemoteVideo> {
 
   @override
   Widget build(BuildContext context) {
+    final Duration position = _controller.value.position;
     return SingleChildScrollView(
       child: Column(
         children: <Widget>[
@@ -251,9 +252,21 @@ class _BumbleBeeRemoteVideoState extends State<_BumbleBeeRemoteVideo> {
                 alignment: Alignment.bottomCenter,
                 children: <Widget>[
                   VideoPlayer(_controller),
+                  Text(
+                    '${position.inMinutes.remainder(60)}:${position.inSeconds.remainder(60)}',
+                    style: Theme.of(context)
+                        .textTheme
+                        .bodySmall!
+                        .copyWith(color: Colors.amber),
+                  ),
                   ClosedCaption(text: _controller.value.caption.text),
                   _ControlsOverlay(controller: _controller),
-                  VideoProgressIndicator(_controller, allowScrubbing: true),
+                  VideoProgressIndicator(
+                    _controller,
+                    allowScrubbing: true,
+                    colors: const VideoProgressColors(
+                        bufferedColor: Colors.yellow),
+                  ),
                 ],
               ),
             ),
```


#### originally proposed approach

Use the example app of the video player - replace the URL of the _BumbleBeeRemoteVideoState so that it points to the file you hosted and verify the playback works.
```
diff --git a/packages/video_player/video_player/example/lib/main.dart b/packages/video_player/video_player/example/lib/main.dart
index 208cd2fc6..84b9e5df9 100644
--- a/packages/video_player/video_player/example/lib/main.dart
+++ b/packages/video_player/video_player/example/lib/main.dart
@@ -218,8 +218,9 @@ class _BumbleBeeRemoteVideoState extends State<_BumbleBeeRemoteVideo> {
   void initState() {
     super.initState();
     _controller = VideoPlayerController.network(
-      'https://flutter.github.io/assets-for-api-docs/assets/videos/bee.mp4',
-      closedCaptionFile: _loadCaptions(),
+      // 'https://flutter.github.io/assets-for-api-docs/assets/videos/bee.mp4',
+      'http://10.10.0.106:8000/manifest.m3u8',
+      // closedCaptionFile: _loadCaptions(),
       videoPlayerOptions: VideoPlayerOptions(mixWithOthers: true),
     );
```

Structure of the recording:
```
➜  vb cat manifest.m3u8
#EXTM3U
#EXT-X-MEDIA:TYPE=AUDIO,GROUP-ID="aac",NAME="English",AUTOSELECT=YES,DEFAULT=YES,URI="audio/manifest.m3u8"

#EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=6291456,CODECS="mp4a.40.2,avc1.4D4028",AUDIO="aac"
video/manifest.m3u8

➜  vb head -n20 audio/manifest.m3u8
#EXTM3U
#EXT-X-VERSION:7
#EXT-X-TARGETDURATION:2
#EXT-X-PLAYLIST-TYPE:VOD
#EXT-X-MEDIA-SEQUENCE:0
#EXT-X-MAP:URI="segment-0.mp4"
#EXTINF: 1.024
segment-1.m4s
#EXTINF: 0.992
segment-2.m4s
#EXTINF: 0.992
segment-3.m4s
#EXTINF: 0.992
segment-4.m4s
#EXTINF: 1.024
segment-5.m4s
#EXTINF: 0.992
segment-6.m4s
#EXTINF: 0.992
segment-7.m4s
➜  vb head -n20 video/manifest.m3u8
#EXTM3U
#EXT-X-VERSION:7
#EXT-X-TARGETDURATION:2
#EXT-X-PLAYLIST-TYPE:VOD
#EXT-X-MEDIA-SEQUENCE:0
#EXT-X-MAP:URI="segment-0.mp4"
#EXTINF:1.349
segment-1.m4s
#EXTINF:1.001
segment-2.m4s
#EXTINF:1
segment-3.m4s
#EXTINF:1.001
segment-4.m4s
#EXTINF:1.001
segment-5.m4s
#EXTINF:1.001
segment-6.m4s
#EXTINF:1.001
segment-7.m4s
```

</details>

<details>


  <summary>Logs</summary>

Apple console indicates that an error notification was sent (FailedToPlayToEnd) but there is no indication of that in the player.
```
default	20:13:09.096357+0100	mediaserverd	<<<< FigStreamPlayer >>>> fpfs_BytePumpFn: [0x121c82d80|P/HC] <0x122160000|I/NFT.01>: substream 1 has 26.016 buffered
default	20:13:09.146902+0100	mediaserverd	<<<< FigStreamPlayer >>>> fpfs_BytePumpFn: [0x121c82d80|P/HC] <0x122160000|I/NFT.01>: substream 0 has 11.3909 buffered
default	20:13:09.161704+0100	mediaserverd	<<<< FigStreamPlayer >>>> fpfs_BytePumpFn: [0x121c82d80|P/HC] <0x122160000|I/NFT.01>: substream 1 has 27.008 buffered
default	20:13:09.221064+0100	mediaserverd	<<<< FigStreamPlayer >>>> fpfs_BytePumpFn: [0x121c82d80|P/HC] <0x122160000|I/NFT.01>: substream 0 has 12.3918 buffered
default	20:13:09.241015+0100	mediaserverd	<<<< FigStreamPlayer >>>> fpfs_BytePumpFn: [0x121c82d80|P/HC] <0x122160000|I/NFT.01>: substream 1 has 28.032 buffered
default	20:13:09.297153+0100	mediaserverd	<<<< FigStreamPlayer >>>> fpfs_BytePumpFn: [0x121c82d80|P/HC] <0x122160000|I/NFT.01>: substream 0 has 13.3926 buffered
default	20:13:09.314302+0100	mediaserverd	<<<< FigStreamPlayer >>>> fpfs_BytePumpFn: [0x121c82d80|P/HC] <0x122160000|I/NFT.01>: substream 1 has 29.024 buffered
default	20:13:09.379120+0100	mediaserverd	<<<< FigStreamPlayer >>>> fpfs_BytePumpFn: [0x121c82d80|P/HC] <0x122160000|I/NFT.01>: substream 0 has 14.3934 buffered
default	20:13:09.392719+0100	mediaserverd	<<<< FigStreamPlayer >>>> fpfs_BytePumpFn: [0x121c82d80|P/HC] <0x122160000|I/NFT.01>: substream 1 has 30.016 buffered
default	20:13:09.452677+0100	mediaserverd	<<<< FigStreamPlayer >>>> fpfs_BytePumpFn: [0x121c82d80|P/HC] <0x122160000|I/NFT.01>: substream 0 has 15.3942 buffered
default	20:13:09.466540+0100	mediaserverd	<<<< FigStreamPlayer >>>> fpfs_BytePumpFn: [0x121c82d80|P/HC] <0x122160000|I/NFT.01>: substream 1 has 31.008 buffered
default	20:13:09.517339+0100	mediaserverd	<<<< FigStreamPlayer >>>> fpfs_BytePumpFn: [0x121c82d80|P/HC] <0x122160000|I/NFT.01>: substream 0 has 16.3951 buffered
default	20:13:09.530941+0100	mediaserverd	<<<< FigStreamPlayer >>>> fpfs_BytePumpFn: [0x121c82d80|P/HC] <0x122160000|I/NFT.01>: substream 1 has 32.032 buffered
default	20:13:09.592715+0100	mediaserverd	<<<< FigStreamPlayer >>>> fpfs_BytePumpFn: [0x121c82d80|P/HC] <0x122160000|I/NFT.01>: substream 0 has 17.4293 buffered
default	20:13:09.598828+0100	mediaserverd	<<<< FigStreamPlayer >>>> fpfs_BytePumpFn: [0x121c82d80|P/HC] <0x122160000|I/NFT.01>: substream 1 has 33.024 buffered
default	20:13:09.664532+0100	mediaserverd	<<<< FigStreamPlayer >>>> fpfs_SetConnectionActive: [0x121c82d80|P/HC]: activate (was Active/Prepared) ; okToChangeAudioRoute = TRUE
default	20:13:09.664757+0100	mediaserverd	<<<< FigStreamPlayer >>>> fpfs_SetConnectionActive: [0x121c82d80|P/HC]: returning err = 0
default	20:13:09.664793+0100	mediaserverd	<<<< FigStreamPlayer >>>> fpfs_SetRateWithOptionsAndAnchorTime: [0x121c82d80|P/HC] <0x122160000|I/NFT.01>: called at 1e-06, rate = 1.000, fadeDuration = nan, immediately: no, reason: ClientInitiated
default	20:13:09.664949+0100	mediaserverd	<<<< FigStreamPlayer >>>> fpfsi_ConfigureAlternateSelectionBossForPlayRate: [0x121c82d80|P/HC] <0x122160000|I/NFT.01>: Attempt to do non-iframe only mode
default	20:13:09.665112+0100	mediaserverd	<<<< FigStreamPlayer >>>> fpfsi_SetAlternateForRateChangeIfNecessary: [0x121c82d80|P/HC] <0x122160000|I/NFT.01>: oldRate 0.000000 newRate 1.000000 wasDoingIFrames 0 willDoIFrames 0
default	20:13:09.665205+0100	mediaserverd	<<<< FigStreamPlayer >>>> fpfsi_handleIFrameOnlyRateTransition: [0x121c82d80|P/HC] <0x122160000|I/NFT.01>: rate 1.000000; oldRate 0.000000; wasDoingIFrames 0; willDoIFrames 0
default	20:13:09.665298+0100	mediaserverd	<<<< FigStreamPlayer >>>> fpfs_SetRateWithFadeInternal: [0x121c82d80|P/HC]: called new rate 1.000000
default	20:13:09.665899+0100	mediaserverd	<<<< FigStreamPlayer >>>> fpfs_setRateInternal: [0x121c82d80|P/HC] <0x122160000|I/NFT.01>: applying rate 1 to tracks
default	20:13:09.665971+0100	mediaserverd	<<<< FigStreamPlayer >>>> fpfs_SetRateOnTrack: [0x121c82d80|P/HC] <0x122160000|I/NFT.01>: rate 1.000000 set on track 3 (audio)
default	20:13:09.666385+0100	mediaserverd	<<<< FigStreamPlayer >>>> fpfsi_setCMSessionPreferredAudioHardwareFormat: [0x121c82d80|P/HC] <0x122160000|I/NFT.01>: kCMSessionProperty_PreferredAudioHardwareFormat set to LPCM
default	20:13:09.667507+0100	mediaserverd	<<<< FigStreamPlayer >>>> fpfs_setPreferredNumberOfAudioOutputChannels: [0x121c82d80|P/HC] kCMSessionProperty_PreferredNumberOfOutputChannels set to 2
default	20:13:09.667552+0100	mediaserverd	<<<< FigStreamPlayer >>>> fpfs_ConfigureRatePlan: requested rate 1.000 => will use audio pipeline rate 1.000, timebase rate 1.000,
default	20:13:09.676585+0100	mediaserverd	<<<< FigStreamPlayer >>>> fpfs_setRateInternal: [0x121c82d80|P/HC] <0x122160000|I/NFT.01>: rate set to 1.000 at 1e-06 (desired rate 1.000)
default	20:13:09.746162+0100	mediaserverd	<<<< FigStreamPlayer >>>> fpfs_ReportVideoPlaybackTimeThroughFigLog: [QE Critical][0x121c82d80|P/HC]: <0x122160000|I/NFT.01>: (159): (re)started playback; desiredRate is 1 started at nan currentTime 1e-06 on track 4 with From Variant [<FigAlternate( 0):[0x11fc877a0] [Peak 6291456] [AudioGroup aac] [mp4a.40.2,avc1.4D4028]>]
default	20:13:09.746689+0100	mediaserverd	<<<< FigStreamPlayer >>>> fpfs_ReportAudioPlaybackThroughFigLog: [QE Critical][0x121c82d80|P/HC]: <0x122160000|I/NFT.01>: [AudioFormat aac ] [AudioChannels 2] [Spatialization Eligibile yes] [Client permits multi: yes, stereo: no] [Spatialization no] [StereoSpatialization no] [Rendition Stereo] [SampleRate 32000] [BitDepth 0]
default	20:13:09.746747+0100	mediaserverd	<<<< FigStreamPlayer >>>> fpfs_PostNotificationFromDispatch: posting Remote_RateWillChangeTo on 0x121c82d80 (0x121fb0fd0)
default	20:13:09.746773+0100	mediaserverd	<<<< FigStreamPlayer >>>> fpfs_PostNotificationFromDispatch: posting RateDidChange on 0x121c82d80 (0x121f53b30)
default	20:13:09.746799+0100	mediaserverd	<<<< FigStreamPlayer >>>> fpfs_PostNotificationFromDispatch: posting PlaybackStateDidChange on 0x121c82d80 (0x121f225c0)
default	20:13:09.747592+0100	mediaserverd	<<<< FigStreamPlayer >>>> fpfs_BytePumpFn: [0x121c82d80|P/HC] <0x122160000|I/NFT.01>: substream 0 has 18.4301 buffered
default	20:13:09.747920+0100	mediaserverd	<<<< FigStreamPlayer >>>> fpfs_SetRateWithOptionsAndAnchorTime: [0x121c82d80|P/HC] <0x122160000|I/NFT.01>: called at 1e-06, rate = 1.000, fadeDuration = nan, immediately: no, reason: ClientInitiated
default	20:13:09.752183+0100	mediaserverd	<<<< FigStreamPlayer >>>> fpfs_BytePumpFn: [0x121c82d80|P/HC] <0x122160000|I/NFT.01>: substream 1 has 34.016 buffered
default	20:13:09.762702+0100	mediaserverd	<<<< FigStreamPlayer >>>> fpfsi_HandleTimebaseEffectiveRateChanged: [0x121c82d80|P/HC] <0x122160000|I/NFT.01>: called
default	20:13:09.762777+0100	mediaserverd	<<<< FigStreamPlayer >>>> fpfsi_DeferredHandleTimebaseEffectiveRateChanged: [0x121c82d80|P/HC] <0x122160000|I/NFT.01>: called at -0.057350, rate 1.000000, timebase started at -0.057504. Will reach start time 0.000001 in 0.057351s
default	20:13:09.762813+0100	mediaserverd	<<<< FigStreamPlayer >>>> fpfs_PostNotificationFromDispatch: posting SynchronousFrameEnqueued on 0x121c82d80 (0x0)
default	20:13:09.812903+0100	mediaserverd	<<<< FigStreamPlayer >>>> fpfs_BytePumpFn: [0x121c82d80|P/HC] <0x122160000|I/NFT.01>: substream 0 has 19.4309 buffered
default	20:13:09.825967+0100	mediaserverd	<<<< FigStreamPlayer >>>> fpfs_BytePumpFn: [0x121c82d80|P/HC] <0x122160000|I/NFT.01>: substream 1 has 35.0022 buffered
default	20:13:09.880729+0100	mediaserverd	<<<< FigStreamPlayer >>>> fpfs_BytePumpFn: [0x121c82d80|P/HC] <0x122160000|I/NFT.01>: substream 0 has 20.3711 buffered
default	20:13:09.898200+0100	mediaserverd	<<<< FigStreamPlayer >>>> fpfs_BytePumpFn: [0x121c82d80|P/HC] <0x122160000|I/NFT.01>: substream 1 has 35.9219 buffered
default	20:13:09.961122+0100	mediaserverd	<<<< FigStreamPlayer >>>> fpfs_BytePumpFn: [0x121c82d80|P/HC] <0x122160000|I/NFT.01>: substream 0 has 21.2964 buffered
default	20:13:09.975291+0100	mediaserverd	<<<< FigStreamPlayer >>>> fpfs_BytePumpFn: [0x121c82d80|P/HC] <0x122160000|I/NFT.01>: substream 1 has 36.8706 buffered
default	20:13:10.038331+0100	mediaserverd	<<<< FigStreamPlayer >>>> fpfs_BytePumpFn: [0x121c82d80|P/HC] <0x122160000|I/NFT.01>: substream 0 has 22.2159 buffered
default	20:13:10.057929+0100	mediaserverd	<<<< FigStreamPlayer >>>> fpfs_BytePumpFn: [0x121c82d80|P/HC] <0x122160000|I/NFT.01>: substream 1 has 37.7782 buffered
default	20:13:10.107832+0100	mediaserverd	<<<< FigStreamPlayer >>>> fpfs_BytePumpFn: [0x121c82d80|P/HC] <0x122160000|I/NFT.01>: substream 0 has 23.1465 buffered
default	20:13:10.123487+0100	mediaserverd	<<<< FigStreamPlayer >>>> fpfs_BytePumpFn: [0x121c82d80|P/HC] <0x122160000|I/NFT.01>: substream 1 has 38.7047 buffered
default	20:13:10.178446+0100	mediaserverd	<<<< FigStreamPlayer >>>> fpfs_BytePumpFn: [0x121c82d80|P/HC] <0x122160000|I/NFT.01>: substream 0 has 24.0767 buffered
default	20:13:10.191983+0100	mediaserverd	<<<< FigStreamPlayer >>>> fpfs_BytePumpFn: [0x121c82d80|P/HC] <0x122160000|I/NFT.01>: substream 1 has 39.6282 buffered
default	20:13:10.246279+0100	mediaserverd	<<<< FigStreamPlayer >>>> fpfs_BytePumpFn: [0x121c82d80|P/HC] <0x122160000|I/NFT.01>: substream 0 has 25.0115 buffered
default	20:13:10.262320+0100	mediaserverd	<<<< FigStreamPlayer >>>> fpfs_BytePumpFn: [0x121c82d80|P/HC] <0x122160000|I/NFT.01>: substream 1 has 40.5817 buffered
default	20:13:10.316615+0100	mediaserverd	<<<< FigStreamPlayer >>>> fpfs_BytePumpFn: [0x121c82d80|P/HC] <0x122160000|I/NFT.01>: substream 0 has 25.974 buffered
default	20:13:10.341799+0100	mediaserverd	<<<< FigStreamPlayer >>>> fpfs_BytePumpFn: [0x121c82d80|P/HC] <0x122160000|I/NFT.01>: substream 1 has 41.496 buffered
default	20:13:10.398152+0100	mediaserverd	<<<< FigStreamPlayer >>>> fpfs_BytePumpFn: [0x121c82d80|P/HC] <0x122160000|I/NFT.01>: substream 0 has 26.8931 buffered
default	20:13:10.411039+0100	mediaserverd	<<<< FigStreamPlayer >>>> fpfs_BytePumpFn: [0x121c82d80|P/HC] <0x122160000|I/NFT.01>: substream 1 has 42.4172 buffered
default	20:13:10.460557+0100	mediaserverd	<<<< FigStreamPlayer >>>> fpfs_BytePumpFn: [0x121c82d80|P/HC] <0x122160000|I/NFT.01>: substream 0 has 27.8312 buffered
default	20:13:10.480746+0100	mediaserverd	<<<< FigStreamPlayer >>>> fpfs_BytePumpFn: [0x121c82d80|P/HC] <0x122160000|I/NFT.01>: substream 1 has 43.3394 buffered
default	20:13:10.526638+0100	mediaserverd	<<<< FigStreamPlayer >>>> fpfs_BytePumpFn: [0x121c82d80|P/HC] <0x122160000|I/NFT.01>: substream 0 has 28.7661 buffered
default	20:13:10.541881+0100	mediaserverd	<<<< FigStreamPlayer >>>> fpfs_BytePumpFn: [0x121c82d80|P/HC] <0x122160000|I/NFT.01>: substream 1 has 44.3023 buffered
default	20:13:10.603135+0100	mediaserverd	<<<< FigStreamPlayer >>>> fpfs_BytePumpFn: [0x121c82d80|P/HC] <0x122160000|I/NFT.01>: substream 0 has 29.6908 buffered
default	20:13:10.614856+0100	mediaserverd	<<<< FigStreamPlayer >>>> fpfs_BytePumpFn: [0x121c82d80|P/HC] <0x122160000|I/NFT.01>: substream 1 has 45.2222 buffered
default	20:13:10.676084+0100	mediaserverd	<<<< FigStreamPlayer >>>> fpfs_BytePumpFn: [0x121c82d80|P/HC] <0x122160000|I/NFT.01>: substream 0 has 30.6182 buffered
default	20:13:10.697406+0100	mediaserverd	<<<< FigStreamPlayer >>>> fpfs_BytePumpFn: [0x121c82d80|P/HC] <0x122160000|I/NFT.01>: substream 1 has 46.1311 buffered
default	20:13:10.746715+0100	mediaserverd	<<<< FigStreamPlayer >>>> fpfs_BytePumpFn: [0x121c82d80|P/HC] <0x122160000|I/NFT.01>: substream 0 has 31.5484 buffered
default	20:13:10.762712+0100	mediaserverd	<<<< FigStreamPlayer >>>> fpfs_BytePumpFn: [0x121c82d80|P/HC] <0x122160000|I/NFT.01>: substream 1 has 47.0574 buffered
default	20:13:10.817691+0100	mediaserverd	<<<< FigStreamPlayer >>>> fpfs_BytePumpFn: [0x121c82d80|P/HC] <0x122160000|I/NFT.01>: substream 0 has 32.4803 buffered
default	20:13:10.830029+0100	mediaserverd	<<<< FigStreamPlayer >>>> fpfs_BytePumpFn: [0x121c82d80|P/HC] <0x122160000|I/NFT.01>: substream 1 has 48.0141 buffered
default	20:13:10.887677+0100	mediaserverd	<<<< FigStreamPlayer >>>> fpfs_BytePumpFn: [0x121c82d80|P/HC] <0x122160000|I/NFT.01>: substream 0 has 33.446 buffered
default	20:13:10.905673+0100	mediaserverd	<<<< FigStreamPlayer >>>> fpfs_BytePumpFn: [0x121c82d80|P/HC] <0x122160000|I/NFT.01>: substream 1 has 48.9305 buffered
default	20:13:10.960122+0100	mediaserverd	<<<< FigStreamPlayer >>>> fpfs_BytePumpFn: [0x121c82d80|P/HC] <0x122160000|I/NFT.01>: substream 0 has 34.3726 buffered
default	20:13:10.978456+0100	mediaserverd	<<<< FigStreamPlayer >>>> fpfs_BytePumpFn: [0x121c82d80|P/HC] <0x122160000|I/NFT.01>: substream 1 has 49.8498 buffered
default	20:13:11.028456+0100	mediaserverd	<<<< FigStreamPlayer >>>> fpfs_BytePumpFn: [0x121c82d80|P/HC] <0x122160000|I/NFT.01>: substream 0 has 35.3034 buffered
default	20:13:11.047044+0100	mediaserverd	<<<< FigStreamPlayer >>>> fpfs_BytePumpFn: [0x121c82d80|P/HC] <0x122160000|I/NFT.01>: substream 1 has 50.7734 buffered
default	20:13:11.098150+0100	mediaserverd	<<<< FigStreamPlayer >>>> fpfs_BytePumpFn: [0x121c82d80|P/HC] <0x122160000|I/NFT.01>: substream 0 has 36.2347 buffered
default	20:13:11.168426+0100	mediaserverd	<<<< FigStreamPlayer >>>> fpfs_BytePumpFn: [0x121c82d80|P/HC] <0x122160000|I/NFT.01>: substream 0 has 37.1654 buffered
default	20:13:11.242938+0100	mediaserverd	<<<< FigStreamPlayer >>>> fpfs_BytePumpFn: [0x121c82d80|P/HC] <0x122160000|I/NFT.01>: substream 0 has 38.0916 buffered
default	20:13:11.316591+0100	mediaserverd	<<<< FigStreamPlayer >>>> fpfs_BytePumpFn: [0x121c82d80|P/HC] <0x122160000|I/NFT.01>: substream 0 has 39.0196 buffered
default	20:13:11.405033+0100	mediaserverd	<<<< FigStreamPlayer >>>> fpfs_BytePumpFn: [0x121c82d80|P/HC] <0x122160000|I/NFT.01>: substream 0 has 39.9328 buffered
default	20:13:11.475114+0100	mediaserverd	<<<< FigStreamPlayer >>>> fpfs_BytePumpFn: [0x121c82d80|P/HC] <0x122160000|I/NFT.01>: substream 0 has 40.8617 buffered
default	20:13:11.547488+0100	mediaserverd	<<<< FigStreamPlayer >>>> fpfs_BytePumpFn: [0x121c82d80|P/HC] <0x122160000|I/NFT.01>: substream 0 has 41.8238 buffered
default	20:13:11.571192+0100	mediaserverd	<<<< FigStreamPlayer >>>> fpfs_PostNotificationFromDispatch: posting NewErrorLogEntry on 0x122160000 (0x0)
default	20:13:11.823539+0100	mediaserverd	<<<< FigStreamPlayer >>>> fpfs_needsMoreTimerProc: [0x121c82d80|P/HC] <0x122160000|I/NFT.01>: at 2.0004
default	20:13:11.843852+0100	mediaserverd	<<<< FigStreamPlayer >>>> fpfs_PostNotificationFromDispatch: posting NewErrorLogEntry on 0x122160000 (0x0)
default	20:13:12.607060+0100	mediaserverd	<<<< FigStreamPlayer >>>> fpfs_PostNotificationFromDispatch: posting NewErrorLogEntry on 0x122160000 (0x0)
default	20:13:12.876296+0100	mediaserverd	<<<< FigStreamPlayer >>>> fpfs_PostNotificationFromDispatch: posting NewErrorLogEntry on 0x122160000 (0x0)
default	20:13:14.626552+0100	mediaserverd	<<<< FigStreamPlayer >>>> fpfs_PostNotificationFromDispatch: posting NewErrorLogEntry on 0x122160000 (0x0)
default	20:13:14.898854+0100	mediaserverd	<<<< FigStreamPlayer >>>> fpfs_PostNotificationFromDispatch: posting NewErrorLogEntry on 0x122160000 (0x0)
default	20:13:17.659852+0100	mediaserverd	<<<< FigStreamPlayer >>>> fpfs_PostNotificationFromDispatch: posting NewErrorLogEntry on 0x122160000 (0x0)
default	20:13:17.944314+0100	mediaserverd	<<<< FigStreamPlayer >>>> fpfs_PostNotificationFromDispatch: posting NewErrorLogEntry on 0x122160000 (0x0)
default	20:13:21.736259+0100	mediaserverd	<<<< FigStreamPlayer >>>> fpfs_PostNotificationFromDispatch: posting NewErrorLogEntry on 0x122160000 (0x0)
default	20:13:21.975202+0100	mediaserverd	<<<< FigStreamPlayer >>>> fpfs_PostNotificationFromDispatch: posting NewErrorLogEntry on 0x122160000 (0x0)
default	20:13:26.505263+0100	mediaserverd	<<<< FigStreamPlayer >>>> fpfsi_SetCurrentTimeWithRangeAndSeekIDGuts: [0x121c82d80|P/HC] <0x122160000|I/NFT.01>: Seeking to 35.773 from 16.685, pumpOffset is 0 - preciseSeek is  35.773, seekID 1
default	20:13:26.505408+0100	mediaserverd	<<<< FigStreamPlayer >>>> fpfs_setRateInternal: [0x121c82d80|P/HC] <0x122160000|I/NFT.01>: applying rate 0 to tracks
default	20:13:26.505574+0100	mediaserverd	<<<< FigStreamPlayer >>>> fpfs_SetRateOnTrack: [0x121c82d80|P/HC] <0x122160000|I/NFT.01>: rate 0.000000 set on track 3 (audio)
default	20:13:26.506038+0100	mediaserverd	<<<< FigStreamPlayer >>>> fpfs_ConfigureRatePlan: requested rate 0.000 => will use audio pipeline rate 1.000, timebase rate 0.000,
default	20:13:26.506366+0100	mediaserverd	<<<< FigStreamPlayer >>>> fpfsi_HandleTimebaseEffectiveRateChanged: [0x121c82d80|P/HC] <0x122160000|I/NFT.01>: called
default	20:13:26.554338+0100	mediaserverd	<<<< FigStreamPlayer >>>> fpfs_setRateInternal: [0x121c82d80|P/HC] <0x122160000|I/NFT.01>: rate set to 0.000 at 16.73 (desired rate 1.000)
default	20:13:26.554539+0100	mediaserverd	<<<< FigStreamPlayer >>>> fpfs_SetFeederTrack: [0x121c82d80|P/HC] <0x122160000|I/NFT.01>: track 3 no longer feeding renderChain 0x12290fa90
default	20:13:26.554651+0100	mediaserverd	<<<< FigStreamPlayer >>>> fpfs_ReleaseTrackRenderChain: [0x121c82d80|P/HC] <0x122160000|I/NFT.01>: track 3 release its RenderChain before playResourceReleased notification
default	20:13:26.554719+0100	mediaserverd	<<<< FigStreamPlayer >>>> fpfs_deferredAudioPlayResourceReleased: [0x121c82d80|P/HC] <0x122160000|I/NFT.01>: track 3 has finished rendering, starting to render track -1
default	20:13:26.554884+0100	mediaserverd	<<<< FigStreamPlayer >>>> fpfs_releaseRenderChain: [0x121c82d80|P/HC] <0x122160000|I/NFT.01>: (159) Renderchain 0x12290fa90 releasing render pipeline 0x122956000
default	20:13:26.575226+0100	mediaserverd	<<<< FigStreamPlayer >>>> fpfsi_MoveTrackToPlayedOut: [0x121c82d80|P/HC] <0x122160000|I/NFT.01>: track 3 has played out; lastSampleEnd 52.0001
default	20:13:26.575459+0100	mediaserverd	<<<< FigStreamPlayer >>>> fpfs_SetFeederTrack: [0x121c82d80|P/HC] <0x122160000|I/NFT.01>: track 4 no longer feeding renderChain 0x11fc8b710
default	20:13:26.576353+0100	mediaserverd	<<<< FigStreamPlayer >>>> fpfs_releaseRenderChain: [0x121c82d80|P/HC] <0x122160000|I/NFT.01>: (159) Renderchain 0x11fc8b710 releasing render pipeline 0x11fcb40d0
default	20:13:26.588165+0100	mediaserverd	<<<< FigStreamPlayer >>>> fpfsi_MoveTrackToPlayedOut: [0x121c82d80|P/HC] <0x122160000|I/NFT.01>: track 4 has played out; lastSampleEnd 43.551
default	20:13:26.588315+0100	mediaserverd	<<<< FigStreamPlayer >>>> fpfsi_TryToSeekWithinBuffer: [0x121c82d80|P/HC] <0x122160000|I/NFT.01>: will jump from 16.73s to 35.773s within buffered content
default	20:13:26.588370+0100	mediaserverd	<<<< FigStreamPlayer >>>> fpfs_ResurrectPlayedOutTrack: [0x121c82d80|P/HC] <0x122160000|I/NFT.01>: faking fpfs_DeleteTrack of 'soun' track 3 -> fpfs_AddNewTrack of track 5 - state is 6
default	20:13:26.588423+0100	mediaserverd	<<<< FigStreamPlayer >>>> fpfs_ChangeTrackState: [0x121c82d80|P/HC] <0x122160000|I/NFT.01>: track 5 state change 6 -> 3
default	20:13:26.649415+0100	mediaserverd	<<<< FigStreamPlayer >>>> fpfs_createAudioRenderChain: [0x121c82d80|P/HC] <0x122160000|I/NFT.01>: Created audio render pipeline 0x121eb9b60
default	20:13:26.650274+0100	mediaserverd	<<<< FigStreamPlayer >>>> fpfs_createAudioRenderChain: [0x121c82d80|P/HC] <0x122160000|I/NFT.01>: setting UseHardware to 0
default	20:13:26.650387+0100	mediaserverd	<<<< FigStreamPlayer >>>> fpfs_createAudioRenderChain: [0x121c82d80|P/HC] <0x122160000|I/NFT.01>: Setting TimePitchAlgorithm: TimeDomain  audioPipelineRate 1 on RenderPipeline.
default	20:13:26.654053+0100	mediaserverd	<<<< FigStreamPlayer >>>> fpfs_EnsureRenderChainForTrack: [0x121c82d80|P/HC] <0x122160000|I/NFT.01>: (159) created new renderChain 0x121e04b50 for track 5
default	20:13:26.654107+0100	mediaserverd	<<<< FigStreamPlayer >>>> fpfs_SetFeederTrack: [0x121c82d80|P/HC] <0x122160000|I/NFT.01>: track 5 is now feeding renderChain 0x121e04b50
default	20:13:26.654231+0100	mediaserverd	<<<< FigStreamPlayer >>>> fpfs_RenderBuffer: [0x121c82d80|P/HC] <0x122160000|I/NFT.01>: Signalling RenderPipeline to ResetDecoder at nan
default	20:13:26.654464+0100	mediaserverd	<<<< FigStreamPlayer >>>> fpfs_ChangeTrackState: [0x121c82d80|P/HC] <0x122160000|I/NFT.01>: track 5 state change 3 -> 6
default	20:13:26.654535+0100	mediaserverd	<<<< FigStreamPlayer >>>> fpfsi_RTCReportingReportVariantSwitchComplete: [0x121c82d80|P/HC] <0x122160000|I/NFT.01>: Switch performance: switchReason: AltChanged, switchFailed: 0, fromVideoQualityIndex: 1, toVideoQualityIndex: 1, switchingTime: 18.34691 secs, networkFetchTime: 0.03405 secs, trackSyncingTime: 1325872.78747 secs, trackScheduledStartTime: -16.72998 secs, ignoredVideoOverlap: nan secs, videoOverlap: nan secs
default	20:13:26.654575+0100	mediaserverd	<<<< FigStreamPlayer >>>> fpfs_StartTrackPlaying: <0x122160000|I/NFT.01> ordered rendering for track 5 from 35.773 to nan; first to display is 35.773 should preroll 0
default	20:13:26.654634+0100	mediaserverd	<<<< FigStreamPlayer >>>> fpfs_ResurrectPlayedOutTrack: [0x121c82d80|P/HC] <0x122160000|I/NFT.01>: faking fpfs_DeleteTrack of 'vide' track 4 -> fpfs_AddNewTrack of track 6 - state is 6
default	20:13:26.657851+0100	mediaserverd	<<<< FigStreamPlayer >>>> fpfs_ChangeTrackState: [0x121c82d80|P/HC] <0x122160000|I/NFT.01>: track 6 state change 6 -> 3
default	20:13:26.670196+0100	mediaserverd	<<<< FigStreamPlayer >>>> fpfs_EnsureRenderChainForTrack: [0x121c82d80|P/HC] <0x122160000|I/NFT.01>: (159) created new renderChain 0x121c482f0 for track 6
default	20:13:26.670279+0100	mediaserverd	<<<< FigStreamPlayer >>>> fpfs_SetFeederTrack: [0x121c82d80|P/HC] <0x122160000|I/NFT.01>: track 6 is now feeding renderChain 0x121c482f0
default	20:13:26.670341+0100	mediaserverd	<<<< FigStreamPlayer >>>> fpfs_RenderBuffer: [0x121c82d80|P/HC] <0x122160000|I/NFT.01>: Setting kFigSampleBufferAttachmentKey_ResumeOutput on 0x121e87490, pts 35.511
default	20:13:26.670377+0100	mediaserverd	<<<< FigStreamPlayer >>>> fpfs_RenderBuffer: [0x121c82d80|P/HC] <0x122160000|I/NFT.01>: Signalling RenderPipeline to ResetDecoder at 35.511
default	20:13:26.670896+0100	mediaserverd	<<<< FigStreamPlayer >>>> fpfs_ChangeTrackState: [0x121c82d80|P/HC] <0x122160000|I/NFT.01>: track 6 state change 3 -> 6
default	20:13:26.670937+0100	mediaserverd	<<<< FigStreamPlayer >>>> fpfs_StartTrackPlaying: <0x122160000|I/NFT.01> ordered rendering for track 6 from 35.5109 to nan; first to display is 35.7445 should preroll 1
default	20:13:26.671063+0100	mediaserverd	<<<< FigStreamPlayer >>>> fpfs_PostNotificationFromDispatch: posting SpatialAudioRenderingChanged on 0x122160000 (0x11fad0010)
default	20:13:26.671180+0100	mediaserverd	<<<< FigStreamPlayer >>>> fpfsi_DeferredHandleTimebaseEffectiveRateChanged: [0x121c82d80|P/HC] <0x122160000|I/NFT.01>: called at 16.729978, rate 0.000000, timebase stopped at 16.729978
default	20:13:26.671212+0100	mediaserverd	<<<< FigStreamPlayer >>>> fpfs_PostNotificationFromDispatch: posting TracksChanged on 0x122160000 (0x121db2900)
default	20:13:26.671313+0100	mediaserverd	<<<< FigStreamPlayer >>>> fpfs_PostNotificationFromDispatch: posting TracksChanged on 0x122160000 (0x11f9d2c20)
default	20:13:26.671376+0100	mediaserverd	<<<< FigStreamPlayer >>>> fpfs_PostNotificationFromDispatch: posting TracksChanged on 0x122160000 (0x121c8fbb0)
default	20:13:26.671509+0100	mediaserverd	<<<< FigStreamPlayer >>>> fpfs_PostNotificationFromDispatch: posting SpatialAudioRenderingChanged on 0x122160000 (0x121f53f60)
default	20:13:26.671710+0100	mediaserverd	<<<< FigStreamPlayer >>>> fpfs_PostNotificationFromDispatch: posting TracksChanged on 0x122160000 (0x121c47e20)
default	20:13:26.671753+0100	mediaserverd	<<<< FigStreamPlayer >>>> fpfs_PostNotificationFromDispatch: posting DimensionsChanged on 0x122160000 (0x121cf9190)
default	20:13:26.671802+0100	mediaserverd	<<<< FigStreamPlayer >>>> fpfs_PostNotificationFromDispatch: posting DidPrepareImageQueue on 0x122160000 (0x0)
default	20:13:26.671832+0100	mediaserverd	<<<< FigStreamPlayer >>>> fpfs_PostNotificationFromDispatch: posting StreamRanDry on 0x122160000 (0x0)
default	20:13:26.671871+0100	mediaserverd	<<<< FigStreamPlayer >>>> fpfs_PostNotificationFromDispatch: posting StreamUnlikelyToKeepUp on 0x122160000 (0x0)
default	20:13:26.671906+0100	mediaserverd	<<<< FigStreamPlayer >>>> fpfs_PostNotificationFromDispatch: posting PlaybackStateDidChange on 0x121c82d80 (0x1240d8920)
default	20:13:26.673451+0100	mediaserverd	<<<< FigStreamPlayer >>>> fpfs_SetRateWithOptionsAndAnchorTime: [0x121c82d80|P/HC] <0x122160000|I/NFT.01>: called at 16.73, rate = 1.000, fadeDuration = nan, immediately: no, reason: ClientInitiated
default	20:13:26.704077+0100	mediaserverd	<<<< FigStreamPlayer >>>> fpfsi_deferredCompletedDecodeForPreroll: 0x122160000: track 6 preroll (id 6) completes, isSeekPending 1, first rendering video track 6
default	20:13:26.704200+0100	mediaserverd	<<<< FigStreamPlayer >>>> fpfsi_deferredCompletedDecodeForPreroll: [0x121c82d80|P/HC] <0x122160000|I/NFT.01>: Jumping to 35.773 following video seek
default	20:13:26.704359+0100	mediaserverd	<<<< FigStreamPlayer >>>> fpfs_SeekDidComplete: <0x122160000|I/NFT.01> Posting seek completion for 1 current seek ID 1 reason ClientInitiatedSeek
default	20:13:26.705400+0100	mediaserverd	<<<< FigStreamPlayer >>>> fpfs_CheckIfLikelyToKeepUpAndNotify: [0x121c82d80|P/HC] <0x122160000|I/NFT.01>: signalling initial playback - duration is 7.777956, force is 0 isLikelyToKeepUp 1
default	20:13:26.705467+0100	mediaserverd	<<<< FigStreamPlayer >>>> fpfs_CheckIfLikelyToKeepUpAndNotify: [0x121c82d80|P/HC] <0x122160000|I/NFT.01>: (re)starting playback; desiredRate is 1
default	20:13:26.705511+0100	mediaserverd	<<<< FigStreamPlayer >>>> fpfs_SetRateWithFadeInternal: [0x121c82d80|P/HC]: called new rate 1.000000
default	20:13:26.706172+0100	mediaserverd	<<<< FigStreamPlayer >>>> fpfs_setRateInternal: [0x121c82d80|P/HC] <0x122160000|I/NFT.01>: applying rate 1 to tracks
default	20:13:26.706239+0100	mediaserverd	<<<< FigStreamPlayer >>>> fpfs_SetRateOnTrack: [0x121c82d80|P/HC] <0x122160000|I/NFT.01>: rate 1.000000 set on track 5 (audio)
default	20:13:26.706986+0100	mediaserverd	<<<< FigStreamPlayer >>>> fpfs_setPreferredNumberOfAudioOutputChannels: [0x121c82d80|P/HC] kCMSessionProperty_PreferredNumberOfOutputChannels set to 2
default	20:13:26.707113+0100	mediaserverd	<<<< FigStreamPlayer >>>> fpfs_ConfigureRatePlan: requested rate 1.000 => will use audio pipeline rate 1.000, timebase rate 1.000,
default	20:13:26.721333+0100	mediaserverd	<<<< FigStreamPlayer >>>> fpfs_setRateInternal: [0x121c82d80|P/HC] <0x122160000|I/NFT.01>: rate set to 1.000 at 35.773 (desired rate 1.000)
default	20:13:26.744417+0100	mediaserverd	<<<< FigStreamPlayer >>>> fpfs_ReportVideoPlaybackTimeThroughFigLog: [QE Critical][0x121c82d80|P/HC]: <0x122160000|I/NFT.01>: (159): (re)started playback; desiredRate is 1 started at nan currentTime 35.773 on track 6 with From Variant [<FigAlternate( 0):[0x11fc877a0] [Peak 6291456] [AudioGroup aac] [mp4a.40.2,avc1.4D4028]>]
default	20:13:26.747061+0100	mediaserverd	<<<< FigStreamPlayer >>>> fpfs_ReportAudioPlaybackThroughFigLog: [QE Critical][0x121c82d80|P/HC]: <0x122160000|I/NFT.01>: [AudioFormat aac ] [AudioChannels 2] [Spatialization Eligibile yes] [Client permits multi: yes, stereo: no] [Spatialization no] [StereoSpatialization no] [Rendition Stereo] [SampleRate 32000] [BitDepth 0]
default	20:13:26.747195+0100	mediaserverd	<<<< FigStreamPlayer >>>> fpfs_PostNotificationFromDispatch: posting SeekDidComplete on 0x122160000 (0x1229bd150)
default	20:13:26.747354+0100	mediaserverd	<<<< FigStreamPlayer >>>> fpfs_PostNotificationFromDispatch: posting ReadyForPlayback on 0x122160000 (0x1240ccc00)
default	20:13:26.747435+0100	mediaserverd	<<<< FigStreamPlayer >>>> fpfs_PostNotificationFromDispatch: posting DimensionsChanged on 0x122160000 (0x1240c32b0)
default	20:13:26.747579+0100	mediaserverd	<<<< FigStreamPlayer >>>> fpfs_PostNotificationFromDispatch: posting StreamLikelyToKeepUp on 0x122160000 (0x0)
default	20:13:26.747678+0100	mediaserverd	<<<< FigStreamPlayer >>>> fpfs_PostNotificationFromDispatch: posting PlaybackStateDidChange on 0x121c82d80 (0x1240f5040)
default	20:13:26.748223+0100	mediaserverd	<<<< FigStreamPlayer >>>> fpfsi_MakeReadyForInspection: [0x121c82d80|P/HC] <0x122160000|I/NFT.01>: pItem->pumpRequestState = 3 called - ready
default	20:13:26.748286+0100	mediaserverd	<<<< FigStreamPlayer >>>> fpfsi_MakeReadyForInspection: [0x121c82d80|P/HC] <0x122160000|I/NFT.01>: pItem->pumpRequestState = 3 called - ready
default	20:13:26.749954+0100	mediaserverd	<<<< FigStreamPlayer >>>> fpfs_SetRateWithOptionsAndAnchorTime: [0x121c82d80|P/HC] <0x122160000|I/NFT.01>: called at 35.773, rate = 1.000, fadeDuration = nan, immediately: no, reason: ClientInitiated
default	20:13:26.750427+0100	mediaserverd	<<<< FigStreamPlayer >>>> fpfs_SetRateWithOptionsAndAnchorTime: [0x121c82d80|P/HC] <0x122160000|I/NFT.01>: called at 35.773, rate = 1.000, fadeDuration = nan, immediately: no, reason: ClientInitiated
default	20:13:26.750770+0100	mediaserverd	<<<< FigStreamPlayer >>>> fpfs_SetRateWithOptionsAndAnchorTime: [0x121c82d80|P/HC] <0x122160000|I/NFT.01>: called at 35.773, rate = 1.000, fadeDuration = nan, immediately: no, reason: ClientInitiated
default	20:13:26.751061+0100	mediaserverd	<<<< FigStreamPlayer >>>> fpfs_SetRateWithOptionsAndAnchorTime: [0x121c82d80|P/HC] <0x122160000|I/NFT.01>: called at 35.773, rate = 1.000, fadeDuration = nan, immediately: no, reason: ClientInitiated
default	20:13:26.751343+0100	mediaserverd	<<<< FigStreamPlayer >>>> fpfs_PostNotificationFromDispatch: posting NewErrorLogEntry on 0x122160000 (0x0)
default	20:13:26.767268+0100	mediaserverd	<<<< FigStreamPlayer >>>> fpfsi_HandleTimebaseEffectiveRateChanged: [0x121c82d80|P/HC] <0x122160000|I/NFT.01>: called
default	20:13:26.767338+0100	mediaserverd	<<<< FigStreamPlayer >>>> fpfsi_DeferredHandleTimebaseEffectiveRateChanged: [0x121c82d80|P/HC] <0x122160000|I/NFT.01>: called at 35.717584, rate 1.000000, timebase started at 35.717101. Will reach start time 35.773000 in 0.055417s
default	20:13:26.767375+0100	mediaserverd	<<<< FigStreamPlayer >>>> fpfs_PostNotificationFromDispatch: posting SynchronousFrameEnqueued on 0x121c82d80 (0x0)
default	20:13:27.059889+0100	mediaserverd	<<<< FigStreamPlayer >>>> fpfs_PostNotificationFromDispatch: posting NewErrorLogEntry on 0x122160000 (0x0)
default	20:13:31.873744+0100	mediaserverd	<<<< FigStreamPlayer >>>> fpfs_PostNotificationFromDispatch: posting NewErrorLogEntry on 0x122160000 (0x0)
default	20:13:32.175539+0100	mediaserverd	<<<< FigStreamPlayer >>>> fpfs_PostNotificationFromDispatch: posting NewErrorLogEntry on 0x122160000 (0x0)
default	20:13:36.990135+0100	mediaserverd	<<<< FigStreamPlayer >>>> fpfs_PostNotificationFromDispatch: posting NewErrorLogEntry on 0x122160000 (0x0)
default	20:13:37.199042+0100	mediaserverd	<<<< FigStreamPlayer >>>> fpfs_PostNotificationFromDispatch: posting NewErrorLogEntry on 0x122160000 (0x0)
default	20:13:42.108544+0100	mediaserverd	<<<< FigStreamPlayer >>>> fpfs_BytePumpFn: [0x121c82d80|P/HC] <0x122160000|I/NFT.01>: end of stream 1 duration 0.940756 with error Error Domain=NSURLErrorDomain Code=-1004 "Could not connect to the server." UserInfo={_kCFStreamErrorCodeKey=61, NSUnderlyingError=0x11f9aa3f0 {Error Domain=kCFErrorDomainCFNetwork Code=-1004 UserInfo={_NSURLErrorNWPathKey=satisfied (Path is satisfied), viable, interface: en0, ipv4, dns, _kCFStreamErrorCodeKey=61, _kCFStreamErrorDomainKey=1}}, _NSURLErrorFailingURLSessionTaskErrorKey=<private>, _NSURLErrorRelatedURLSessionTaskErrorKey=<private>, NSLocalizedDescription=Could not connect to the server., NSErrorFailingURLStringKey=<private>, NSErrorFailingURLKey=<private>, _kCFStreamErrorDomainKey=1}
default	20:13:42.108799+0100	mediaserverd	<<<< FigStreamPlayer >>>> fpfs_SetFeederTrack: [0x121c82d80|P/HC] <0x122160000|I/NFT.01>: track 5 no longer feeding renderChain 0x121e04b50
default	20:13:42.108971+0100	mediaserverd	<<<< FigStreamPlayer >>>> fpfsi_MoveTrackToPlayedOut: [0x121c82d80|P/HC] <0x122160000|I/NFT.01>: track 5 has played out; lastSampleEnd 52.0001
default	20:13:42.109077+0100	mediaserverd	<<<< FigStreamPlayer >>>> fpfs_SetFeederTrack: [0x121c82d80|P/HC] <0x122160000|I/NFT.01>: track 6 no longer feeding renderChain 0x121c482f0
default	20:13:42.109453+0100	mediaserverd	<<<< FigStreamPlayer >>>> fpfsi_MoveTrackToPlayedOut: [0x121c82d80|P/HC] <0x122160000|I/NFT.01>: track 6 has played out; lastSampleEnd 43.551
default	20:13:42.109761+0100	mediaserverd	<<<< FigStreamPlayer >>>> fpfs_setRateInternal: [0x121c82d80|P/HC] <0x122160000|I/NFT.01>: applying rate 0 to tracks
default	20:13:42.110125+0100	mediaserverd	<<<< FigStreamPlayer >>>> fpfsi_HandleTimebaseEffectiveRateChanged: [0x121c82d80|P/HC] <0x122160000|I/NFT.01>: called
default	20:13:42.110820+0100	mediaserverd	<<<< FigStreamPlayer >>>> fpfs_setRateInternal: [0x121c82d80|P/HC] <0x122160000|I/NFT.01>: rate set to 0.000 at 51.061 (desired rate 1.000)
default	20:13:42.111373+0100	mediaserverd	<<<< FigStreamPlayer >>>> fpfs_StopPlayingItem: [0x121c82d80|P/HC] <0x122160000|I/NFT.01>: Pausing, err=Error Domain=NSURLErrorDomain Code=-1004 "Could not connect to the server." UserInfo={_kCFStreamErrorCodeKey=61, NSUnderlyingError=0x11f9aa3f0 {Error Domain=kCFErrorDomainCFNetwork Code=-1004 UserInfo={_NSURLErrorNWPathKey=satisfied (Path is satisfied), viable, interface: en0, ipv4, dns, _kCFStreamErrorCodeKey=61, _kCFStreamErrorDomainKey=1}}, _NSURLErrorFailingURLSessionTaskErrorKey=<private>, _NSURLErrorRelatedURLSessionTaskErrorKey=<private>, NSLocalizedDescription=Could not connect to the server., NSErrorFailingURLStringKey=<private>, NSErrorFailingURLKey=<private>, _kCFStreamErrorDomainKey=1}
default	20:13:42.111484+0100	mediaserverd	<<<< FigStreamPlayer >>>> fpfs_haltStream: [0x121c82d80|P/HC] <0x122160000|I/NFT.01>: pump 0x11f0ff000
default	20:13:42.113984+0100	mediaserverd	<<<< FigStreamPlayer >>>> fpfs_haltStream: [0x121c82d80|P/HC] <0x122160000|I/NFT.01>: #Version: 1.0
#Software: AppleCoreMedia/1.0.0.20A362 (iPhone; U; CPU OS 16_0 like Mac OS X; en_us)
#Date: 2022/11/09 20:13:42.042
#Fields: date time uri cs-guid s-ip status domain comment cs-iftype
2022/11/09 20:13:11.011 - C2A259EF-B08F-40B5-A3C6-AD292ADA2650 - -1004 "NSURLErrorDomain" "Could not connect to the server." wifi-infra
2022/11/09 20:13:11.011 - C2A259EF-B08F-40B5-A3C6-AD292ADA2650 - -1004 "NSURLErrorDomain" "Could not connect to the server." wifi-infra
2022/11/09 20:13:12.012 - C2A259EF-B08F-40B5-A3C6-AD292ADA2650 - -1004 "NSURLErrorDomain" "Could not connect to the server." wifi-infra
2022/11/09 20:13:12.012 - C2A259EF-B08F-40B5-A3C6-AD292ADA2650 - -1004 "NSURLErrorDomain" "Could not connect to the server." wifi-infra
2022/11/09 20:13:14.014 - C2A259EF-B08F-40B5-A3C6-AD292ADA2650 - -1004 "NSURLErrorDomain" "Could not connect to the server." wifi-infra
2022/11/09 20:13:14.014 - C2A259EF-B08F-40B5-A3C6-AD292ADA2650 - -100<…>
default	20:13:42.117280+0100	mediaserverd	<<<< FigStreamPlayer >>>> fpfs_haltStream: [0x121c82d80|P/HC] <0x122160000|I/NFT.01>: pump 0x0
default	20:13:42.117517+0100	mediaserverd	<<<< FigStreamPlayer >>>> fpfs_releaseRenderChain: [0x121c82d80|P/HC] <0x122160000|I/NFT.01>: (159) Renderchain 0x121c482f0 releasing render pipeline 0x121c666b0
default	20:13:42.128144+0100	mediaserverd	<<<< FigStreamPlayer >>>> fpfs_releaseRenderChain: [0x121c82d80|P/HC] <0x122160000|I/NFT.01>: (159) Renderchain 0x121e04b50 releasing render pipeline 0x121eb9b60
default	20:13:42.152250+0100	mediaserverd	<<<< FigStreamPlayer >>>> fpfs_DeleteTrack: [0x121c82d80|P/HC] <0x122160000|I/NFT.01>: (159) track 5
default	20:13:42.152523+0100	mediaserverd	<<<< FigStreamPlayer >>>> fpfs_StopFeedingTrack: [0x121c82d80|P/HC] <0x122160000|I/NFT.01>: track 5 stopped feeding without setting EndTimer
default	20:13:42.152780+0100	mediaserverd	<<<< FigStreamPlayer >>>> fpfs_ChangeTrackState: [0x121c82d80|P/HC] <0x122160000|I/NFT.01>: track 5 state change 6 -> 8
default	20:13:42.152875+0100	mediaserverd	<<<< FigStreamPlayer >>>> fpfs_DeleteTrack: [0x121c82d80|P/HC] <0x122160000|I/NFT.01>: (159) track 6
default	20:13:42.152987+0100	mediaserverd	<<<< FigStreamPlayer >>>> fpfs_StopFeedingTrack: [0x121c82d80|P/HC] <0x122160000|I/NFT.01>: track 6 stopped feeding without setting EndTimer
default	20:13:42.153111+0100	mediaserverd	<<<< FigStreamPlayer >>>> fpfs_ChangeTrackState: [0x121c82d80|P/HC] <0x122160000|I/NFT.01>: track 6 state change 6 -> 8
default	20:13:42.153470+0100	mediaserverd	<<<< FigStreamPlayer >>>> fpfs_ResetAudioHardwareFormat: [0x121c82d80|P/HC] No more audio rendering, set preferred channel count back to stereo
default	20:13:42.153675+0100	mediaserverd	<<<< FigStreamPlayer >>>> fpfs_setPreferredNumberOfAudioOutputChannels: [0x121c82d80|P/HC] kCMSessionProperty_PreferredNumberOfOutputChannels set to 2
default	20:13:42.154160+0100	mediaserverd	<<<< FigStreamPlayer >>>> fpfs_PostNotificationFromDispatch: posting FailedToPlayToEnd on 0x122160000 (0x121e205f0)
default	20:13:42.154290+0100	mediaserverd	<<<< FigStreamPlayer >>>> fpfsi_DeferredHandleTimebaseEffectiveRateChanged: [0x121c82d80|P/HC] <0x122160000|I/NFT.01>: called at 51.060869, rate 0.000000, timebase stopped at 51.060869
default	20:13:42.154371+0100	mediaserverd	<<<< FigStreamPlayer >>>> fpfs_PostNotificationFromDispatch: posting SpatialAudioRenderingChanged on 0x122160000 (0x121e80040)
default	20:13:42.154439+0100	mediaserverd	<<<< FigStreamPlayer >>>> fpfs_PostNotificationFromDispatch: posting TracksChanged on 0x122160000 (0x121ed5490)
default	20:13:42.154491+0100	mediaserverd	<<<< FigStreamPlayer >>>> fpfs_PostNotificationFromDispatch: posting TracksChanged on 0x122160000 (0x121e89250)
default	20:13:42.154580+0100	mediaserverd	<<<< FigStreamPlayer >>>> fpfs_PostNotificationFromDispatch: posting DidRemoveImageQueue on 0x122160000 (0x0)
default	20:13:42.154613+0100	mediaserverd	<<<< FigStreamPlayer >>>> fpfs_PostNotificationFromDispatch: posting SpatialAudioRenderingChanged on 0x122160000 (0x11faaadf0)
```

<!-- Finally, paste the output of running `flutter doctor -v` here. -->
video_player [(video_player-v2.4.7) ? +3 ~5 -0]flutter doctor -v
[✓] Flutter (Channel stable, 3.3.7, on macOS 13.0 22A380 darwin-x64, locale en-US)
    • Flutter version 3.3.7 on channel stable at /Users/***/fvm/versions/stable
    • Upstream repository https://github.com/flutter/flutter.git
    • Framework revision e99c9c7cd9 (8 days ago), 2022-11-01 16:59:00 -0700
    • Engine revision 857bd6b74c
    • Dart version 2.18.4
    • DevTools version 2.15.0

[✓] Android toolchain - develop for Android devices (Android SDK version 31.0.0)
    • Android SDK at /Users/****/Library/Android/sdk
    • Platform android-33, build-tools 31.0.0
    • ANDROID_HOME = /Users/*****/Library/Android/sdk
    • ANDROID_SDK_ROOT = /Users/*****/Library/Android/sdk
    • Java binary at: /Applications/Android Studio.app/Contents/jre/Contents/Home/bin/java
    • Java version OpenJDK Runtime Environment (build 11.0.13+0-b1751.21-8125866)
    • All Android licenses accepted.

[✓] Xcode - develop for iOS and macOS (Xcode 14.1)
    • Xcode at /Applications/Xcode.app/Contents/Developer
    • Build 14B47b
    • CocoaPods version 1.11.3

[✓] Chrome - develop for the web
    • Chrome at /Applications/Google Chrome.app/Contents/MacOS/Google Chrome

[✓] Android Studio (version 2021.3)
    • Android Studio at /Applications/Android Studio.app/Contents
    • Flutter plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/9212-flutter
    • Dart plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/6351-dart
    • Java version OpenJDK Runtime Environment (build 11.0.13+0-b1751.21-8125866)

[✓] VS Code (version 1.73.0)
    • VS Code at /Applications/Visual Studio Code.app/Contents
    • Flutter extension version 3.52.0

[✓] Connected device (3 available)

</details>


<!--
      Consider also attaching screenshots and/or videos to better
      illustrate the issue.

      You can upload them directly on GitHub.
      Beware that video file size is limited to 10MB.
-->