Skip to content

Commit

Permalink
Always parse target duration as integer
Browse files Browse the repository at this point in the history
Following the HLS spec, target duration is an integer
value.
  • Loading branch information
mauricioabreu committed Jul 30, 2024
1 parent 1f62ed2 commit 1b4000d
Show file tree
Hide file tree
Showing 3 changed files with 3 additions and 3 deletions.
2 changes: 1 addition & 1 deletion m3u8/parser.py
Original file line number Diff line number Diff line change
Expand Up @@ -452,7 +452,7 @@ def _parse_byterange(line, state, **kwargs):


def _parse_targetduration(**parse_kwargs):
return _parse_simple_parameter(cast_to=float, **parse_kwargs)
return _parse_simple_parameter(cast_to=int, **parse_kwargs)


def _parse_media_sequence(**parse_kwargs):
Expand Down
2 changes: 1 addition & 1 deletion tests/playlists.py
Original file line number Diff line number Diff line change
Expand Up @@ -65,7 +65,7 @@

PLAYLIST_WITH_NON_INTEGER_DURATION = """
#EXTM3U
#EXT-X-TARGETDURATION:5220.5
#EXT-X-TARGETDURATION:5221
#EXTINF:5220.5,
http://media.example.com/entire.ts
"""
Expand Down
2 changes: 1 addition & 1 deletion tests/test_parser.py
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,7 @@ def test_should_parse_simple_playlist_from_string():

def test_should_parse_non_integer_duration_from_playlist_string():
data = m3u8.parse(playlists.PLAYLIST_WITH_NON_INTEGER_DURATION)
assert 5220.5 == data["targetduration"]
assert 5221 == data["targetduration"]
assert [5220.5] == [c["duration"] for c in data["segments"]]


Expand Down

0 comments on commit 1b4000d

Please sign in to comment.