sccparse: Fix leading spaces between the tab and caption data

CCExtractor is creating files like this.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1387>
This commit is contained in:
Sebastian Dröge 2023-11-02 21:03:52 +02:00
parent eff3618ebd
commit 4e05fc5999

View file

@ -111,6 +111,7 @@ fn scc_payload(s: &[u8]) -> IResult<&[u8], Vec<u8>> {
/// Parser for a SCC caption line in the form `timecode\tpayload`.
fn caption(s: &[u8]) -> IResult<&[u8], SccLine> {
use nom::bytes::complete::tag;
use nom::character::complete::multispace0;
use nom::combinator::map;
use nom::error::context;
use nom::sequence::tuple;
@ -118,8 +119,8 @@ fn caption(s: &[u8]) -> IResult<&[u8], SccLine> {
context(
"invalid SCC caption line",
map(
tuple((timecode, tag("\t"), scc_payload, end_of_line)),
|(tc, _, value, _)| SccLine::Caption(tc, value),
tuple((timecode, tag("\t"), multispace0, scc_payload, end_of_line)),
|(tc, _, _, value, _)| SccLine::Caption(tc, value),
),
)(s)
}