[video_player_videohole] Fix crash/seek on progressive HTTP MPEG-TS live - #1087
[video_player_videohole] Fix crash/seek on progressive HTTP MPEG-TS live#1087CodeToolPerson wants to merge 3 commits into
Conversation
Avoid calling adaptive GetLiveDuration on non-adaptive URIs, and skip seek/pause paths that fail when duration is zero.
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: a6189c0bae
ℹ️ About Codex in GitHub
Codex has been enabled to automatically review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
When you sign up for Codex through ChatGPT, Codex can also answer questions or update the PR, like "@codex address that feedback".
|
Hello @CodeToolPerson , Thank you very much for submitting this PR! This fix is very valuable for handling progressive HTTP MPEG-TS live streams. |
Hi @gin7773, |
Hello @CodeToolPerson , Could you please share more details about the crash scenario you encountered?
This information will help us better understand the issue and verify whether the current fix addresses it properly. |
|
+) The error currently occurring in CI (Analyze) is unrelated to this PR. Please ignore it. |
Hi @gin7773, Thanks for testing the demo URLs — they may not hit the same path. I re-tested on a real TV just now:
Stock 0.5.9 logs: With this PR applied on the same device/URL: So the failure is specifically when duration reports 0 on progressive live TS (Dart then hits pause/seek during init/play). The public demo I can email a temporary private |
Temporary reproduction URLs emailed. |
Avoid calling adaptive GetLiveDuration on non-adaptive URIs, and skip seek/pause paths that fail when duration is zero.
Summary
Progressive HTTP MPEG-TS live URLs (e.g. plain
.ts//live/) can fail to start or crash withvideo_player_videohole:GetLiveDurationmay SIGSEGV on non-adaptive streamsduration == 0triggers DartseekTo(0)/ pause paths that fail on live TSChanges
Test plan
.tslive starts and plays.m3u8still works