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 29, 2024
1 parent 54f5288 commit ffebdd8
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 @@ -447,7 +447,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 ffebdd8

Please sign in to comment.