allow re-entering sections in 2pass, set ass title, use layoutres x/y header tags

This commit is contained in:
DataHoarder 2023-12-02 10:15:10 +01:00
parent b3057fad7d
commit 53a96783b3
Signed by: DataHoarder
SSH key fingerprint: SHA256:OLTRf6Fl87G52SiR7sWLGNzlJt4WOX+tfI2yxo0z7xk
4 changed files with 9 additions and 6 deletions

View file

@ -29,7 +29,7 @@ type rendererStatsEntry struct {
Size *atomic.Uint64
}
func NewRenderer(frameRate float64, display shapes.Rectangle[float64]) *Renderer {
func NewRenderer(title string, frameRate float64, display shapes.Rectangle[float64]) *Renderer {
width := int64(display.Width() * settings.GlobalSettings.VideoScaleMultiplier)
height := int64(display.Height() * settings.GlobalSettings.VideoScaleMultiplier)
@ -44,7 +44,7 @@ func NewRenderer(frameRate float64, display shapes.Rectangle[float64]) *Renderer
"[Script Info]",
"; Script generated by swf2ass Renderer",
"; https://git.gammaspectra.live/WeebDataHoarder/swf2ass-go",
"Title: swf2ass",
fmt.Sprintf("Title: %s", title),
"ScriptType: v4.00+",
//TODO: WrapStyle: 0 or 2?
"WrapStyle: 2",
@ -52,12 +52,14 @@ func NewRenderer(frameRate float64, display shapes.Rectangle[float64]) *Renderer
"YCbCr Matrix: PC.709",
fmt.Sprintf("PlayResX: %d", width),
fmt.Sprintf("PlayResY: %d", height),
fmt.Sprintf("LayoutResX: %d", width),
fmt.Sprintf("LayoutResY: %d", height),
"",
"",
"[Aegisub Project Garbage]",
"Last Style Storage: f",
fmt.Sprintf("Video File: ?dummy:%s:10000:%d:%d:160:160:160:c", strconv.FormatFloat(frameRate, 'f', -1, 64), width, height),
fmt.Sprintf("Video AR Value: %.6F", ar),
fmt.Sprintf("Video AR Value: %s", strconv.FormatFloat(ar, 'f', -1, 64)),
"Active Line: 0",
"Video Zoom Percent: 2.000000",
"",

View file

@ -71,7 +71,8 @@ func PostProcess(r io.ReadSeeker, w io.WriteSeeker) (err error) {
sections[currentSectionName] = currentSection
}
currentSectionName = string(h)
currentSection = nil
//allow re-entering a section
currentSection = sections[currentSectionName]
return true
}
}

View file

@ -63,7 +63,7 @@ func TestParser(t *testing.T) {
processor := types.NewSWFProcessor(tags, shapes.RectangleFromSWF(swfReader.Header().FrameSize), swfReader.Header().FrameRate.Float64(), int64(swfReader.Header().FrameCount), swfReader.Header().Version)
assRenderer := ass.NewRenderer(processor.FrameRate, processor.ViewPort)
assRenderer := ass.NewRenderer("sample.swf", processor.FrameRate, processor.ViewPort)
var lastFrame *types.FrameInformation
for {

View file

@ -108,7 +108,7 @@ func main() {
processor := types.NewSWFProcessor(tags, shapes.RectangleFromSWF(swfReader.Header().FrameSize), swfReader.Header().FrameRate.Float64(), int64(swfReader.Header().FrameCount), swfReader.Header().Version)
assRenderer := ass.NewRenderer(processor.FrameRate, processor.ViewPort)
assRenderer := ass.NewRenderer(path.Base(*inputFile), processor.FrameRate, processor.ViewPort)
var ks KnownSignature