STL maximum values are now editable

This commit is contained in:
Quentin Renard
2019-11-08 17:15:03 +01:00
parent 2a29469c64
commit 4e1375fdaa
3 changed files with 38 additions and 27 deletions
+15 -7
View File
@@ -10,9 +10,9 @@ import (
"strings"
"time"
"github.com/asticode/go-astitools/byte"
"github.com/asticode/go-astitools/map"
"github.com/asticode/go-astitools/ptr"
astibyte "github.com/asticode/go-astitools/byte"
astimap "github.com/asticode/go-astitools/map"
astiptr "github.com/asticode/go-astitools/ptr"
"github.com/pkg/errors"
"golang.org/x/text/unicode/norm"
)
@@ -188,10 +188,12 @@ func ReadFromSTL(i io.Reader) (o *Subtitles, err error) {
// Update metadata
// TODO Add more STL fields to metadata
o.Metadata = &Metadata{
Framerate: g.framerate,
Language: stlLanguageMapping.B(g.languageCode).(string),
STLPublisher: g.publisher,
Title: g.originalProgramTitle,
Framerate: g.framerate,
Language: stlLanguageMapping.B(g.languageCode).(string),
STLMaximumNumberOfDisplayableCharactersInAnyTextRow: astiptr.Int(g.maximumNumberOfDisplayableCharactersInAnyTextRow),
STLMaximumNumberOfDisplayableRows: astiptr.Int(g.maximumNumberOfDisplayableRows),
STLPublisher: g.publisher,
Title: g.originalProgramTitle,
}
// Parse Text and Timing Information (TTI) blocks.
@@ -308,6 +310,12 @@ func newGSIBlock(s Subtitles) (g *gsiBlock) {
g.framerate = s.Metadata.Framerate
g.languageCode = stlLanguageMapping.A(s.Metadata.Language).(string)
g.originalProgramTitle = s.Metadata.Title
if s.Metadata.STLMaximumNumberOfDisplayableCharactersInAnyTextRow != nil {
g.maximumNumberOfDisplayableCharactersInAnyTextRow = *s.Metadata.STLMaximumNumberOfDisplayableCharactersInAnyTextRow
}
if s.Metadata.STLMaximumNumberOfDisplayableRows != nil {
g.maximumNumberOfDisplayableRows = *s.Metadata.STLMaximumNumberOfDisplayableRows
}
g.publisher = s.Metadata.STLPublisher
}
+2 -1
View File
@@ -8,6 +8,7 @@ import (
"time"
"github.com/asticode/go-astisub"
astiptr "github.com/asticode/go-astitools/ptr"
"github.com/stretchr/testify/assert"
)
@@ -23,7 +24,7 @@ func TestSTL(t *testing.T) {
assert.NoError(t, err)
assertSubtitleItems(t, s)
// Metadata
assert.Equal(t, &astisub.Metadata{Framerate: 25, Language: astisub.LanguageFrench, STLPublisher: "Copyright test", Title: "Title test"}, s.Metadata)
assert.Equal(t, &astisub.Metadata{Framerate: 25, Language: astisub.LanguageFrench, STLMaximumNumberOfDisplayableCharactersInAnyTextRow: astiptr.Int(40), STLMaximumNumberOfDisplayableRows: astiptr.Int(23), STLPublisher: "Copyright test", Title: "Title test"}, s.Metadata)
// No subtitles to write
w := &bytes.Buffer{}
+21 -19
View File
@@ -249,25 +249,27 @@ func (sa *StyleAttributes) propagateWebVTTAttributes() {}
// Metadata represents metadata
// TODO Merge attributes
type Metadata struct {
Comments []string
Framerate int
Language string
SSACollisions string
SSAOriginalEditing string
SSAOriginalScript string
SSAOriginalTiming string
SSAOriginalTranslation string
SSAPlayDepth *int
SSAPlayResX, SSAPlayResY *int
SSAScriptType string
SSAScriptUpdatedBy string
SSASynchPoint string
SSATimer *float64
SSAUpdateDetails string
SSAWrapStyle string
STLPublisher string
Title string
TTMLCopyright string
Comments []string
Framerate int
Language string
SSACollisions string
SSAOriginalEditing string
SSAOriginalScript string
SSAOriginalTiming string
SSAOriginalTranslation string
SSAPlayDepth *int
SSAPlayResX, SSAPlayResY *int
SSAScriptType string
SSAScriptUpdatedBy string
SSASynchPoint string
SSATimer *float64
SSAUpdateDetails string
SSAWrapStyle string
STLMaximumNumberOfDisplayableCharactersInAnyTextRow *int
STLMaximumNumberOfDisplayableRows *int
STLPublisher string
Title string
TTMLCopyright string
}
// Region represents a subtitle's region