Skip to content

Infinite seeking for duration in MPEG-TS with fixed Content-Length #8090

@stari4ek

Description

@stari4ek

[REQUIRED] Issue description

MPEG-TS stream (as http progressive) served with fixed Content-Length (ignoring Range) (imitating live streaming?) never finishes preparing stage keeping seeking in TsDurationReader.readLastPcrValue():

input.getPosition()=14186      searchStartPosition=899887200  | timestampSearchBytes=112800 inputLength=900000000   bytesToSearch=112800
input.getPosition()=899887200  searchStartPosition=1799774400 | timestampSearchBytes=112800 inputLength=1799887200  bytesToSearch=112800
input.getPosition()=1799774400 searchStartPosition=2699661600 | timestampSearchBytes=112800 inputLength=2699774400  bytesToSearch=112800
input.getPosition()=2699661600 searchStartPosition=3599548800 | timestampSearchBytes=112800 inputLength=3599661600  bytesToSearch=112800
input.getPosition()=3599548800 searchStartPosition=4499436000 | timestampSearchBytes=112800 inputLength=4499548800  bytesToSearch=112800
input.getPosition()=4499436000 searchStartPosition=5399323200 | timestampSearchBytes=112800 inputLength=5399436000  bytesToSearch=112800
input.getPosition()=5399323200 searchStartPosition=6299210400 | timestampSearchBytes=112800 inputLength=6299323200  bytesToSearch=112800
input.getPosition()=6299210400 searchStartPosition=7199097600 | timestampSearchBytes=112800 inputLength=7199210400  bytesToSearch=112800
input.getPosition()=7199097600 searchStartPosition=8098984800 | timestampSearchBytes=112800 inputLength=8099097600  bytesToSearch=112800
input.getPosition()=8098984800 searchStartPosition=8998872000 | timestampSearchBytes=112800 inputLength=8998984800  bytesToSearch=112800
input.getPosition()=8998872000 searchStartPosition=9898759200 | timestampSearchBytes=112800 inputLength=9898872000  bytesToSearch=112800
input.getPosition()=9898759200 searchStartPosition=10798646400| timestampSearchBytes=112800 inputLength=10798759200 bytesToSearch=112800

This is clearly an issue on IPTV server side, but it would be nice if ExoPlayer stand firm against flawed media.

[REQUIRED] Reproduction steps

  • demo player
  • play MPEG-TS stream which is served with constant Content-Length: 900000000

[REQUIRED] Link to test content

sent to email

[REQUIRED] A full bug report captured from the device

not applicable

[REQUIRED] Version of ExoPlayer being used

[REQUIRED] Device(s) and version(s) of Android being used

not applicable

Metadata

Metadata

Assignees

Labels

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions