From ae31a2741f0a28c3c091bde3de52baa62b8e53ed Mon Sep 17 00:00:00 2001 From: clitic Date: Wed, 12 Apr 2023 08:53:35 +0530 Subject: [PATCH] Parse #EXT-X-MAP BYTERANGE attr from quoted string --- src/parser.rs | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) diff --git a/src/parser.rs b/src/parser.rs index 75448e6..eef540a 100644 --- a/src/parser.rs +++ b/src/parser.rs @@ -555,13 +555,16 @@ fn extmap(i: &[u8]) -> IResult<&[u8], Map> { } None => Err("URI is empty"), }?; - let byte_range = attrs - .remove("BYTERANGE") - .map(|range| match byte_range_val(range.to_string().as_bytes()) { - IResult::Ok((_, range)) => Ok(range), + let byte_range = match attrs.remove("BYTERANGE") { + Some(QuotedOrUnquoted::Quoted(s)) => match byte_range_val(s.as_bytes()) { + IResult::Ok((_, range)) => Ok(Some(range)), IResult::Err(_) => Err("Invalid byte range"), - }) - .transpose()?; + }, + Some(QuotedOrUnquoted::Unquoted(_)) => { + Err("Can't create BYTERANGE attribute from unquoted string") + } + None => Ok(None), + }?; Ok(Map { uri,