diff --git a/ssa.go b/ssa.go index a3a00b0..67e1733 100644 --- a/ssa.go +++ b/ssa.go @@ -1056,10 +1056,12 @@ func (e *ssaEvent) item(styles map[string]*Style) (i *Item, err error) { // Set style if len(e.style) > 0 { - var ok bool - if i.Style, ok = styles[e.style]; !ok { - err = fmt.Errorf("astisub: style %s not found", e.style) - return + // Sometimes there's an "*" before the style name (e.g. with ffmpeg) + for _, name := range []string{e.style, strings.TrimPrefix(e.style, "*")} { + if s, ok := styles[name]; ok { + i.Style = s + break + } } } diff --git a/testdata/example-in.ssa b/testdata/example-in.ssa index 9718afa..195b0e6 100644 --- a/testdata/example-in.ssa +++ b/testdata/example-in.ssa @@ -25,7 +25,7 @@ Style: 3,f3,6,&H00B4FCFC,&H00B4FCFC,&H00000008,&H00000008,0,0,9,3,6,9,3,6,9,0.3, Format: Marked, Start, End, Style, Name, MarginL, MarginR, MarginV, Effect, Text Dialogue: Marked=0,0:01:39.00,0:01:41.04,1,Cher,1234,2345,3456,test,{\pos(400,570)}(deep rumbling) Dialogue: Marked=1,0:02:04.08,0:02:07.12,2,autre,0000,0000,0000,,MAN:\nHow did we end up here? -Dialogue: Marked=1,0:02:12.16,0:02:15.20,3,autre,0000,0000,0000,,This place is horrible. +Dialogue: Marked=1,0:02:12.16,0:02:15.20,*3,autre,0000,0000,0000,,This place is horrible. Not understood line Dialogue: Marked=1,0:02:20.24,0:02:22.28,1,autre,0000,0000,0000,,Smells like balls. Dialogue: Marked=1,0:02:28.32,0:02:31.36,2,autre,0000,0000,0000,,We don't belong\nin this shithole.