From 50fb5f927a4da433809bab1ad9bed8082f9c9a53 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Torbj=C3=B6rn=20Einarson?= Date: Thu, 8 Aug 2024 16:13:11 +0200 Subject: [PATCH 1/2] feat: add stpp as possible mediaType in CreateEmptyTrak --- CHANGELOG.md | 1 + mp4/initsegment.go | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index cc16b6a..081f085 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -18,6 +18,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 - Event Message boxes evte, emib, emeb - GetBtrt method to StsdBox - Btrt pointer attribute in AudioSampleEnntry +- stpp can be used as value to CreateEmptyTrak ## [0.45.1] - 2024-07-12 diff --git a/mp4/initsegment.go b/mp4/initsegment.go index 0d06bb1..0bf8987 100644 --- a/mp4/initsegment.go +++ b/mp4/initsegment.go @@ -156,7 +156,7 @@ func CreateEmptyTrak(trackID, timeScale uint32, mediaType, language string) *Tra minf.AddChild(CreateVmhd()) case "audio": minf.AddChild(CreateSmhd()) - case "subtitle", "subtitles": + case "subtitle", "subtitles", "stpp": minf.AddChild(&SthdBox{}) case "text", "wvtt": minf.AddChild(&NmhdBox{}) From cf62a63ea78d297bf3e9a82c21d0a5577825264b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Torbj=C3=B6rn=20Einarson?= Date: Thu, 8 Aug 2024 16:13:51 +0200 Subject: [PATCH 2/2] chore: fixing typos --- mp4/mediasegment.go | 2 +- mp4/trun.go | 3 ++- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/mp4/mediasegment.go b/mp4/mediasegment.go index e85a6f6..8231a35 100644 --- a/mp4/mediasegment.go +++ b/mp4/mediasegment.go @@ -10,7 +10,7 @@ import ( // MediaSegment is an MP4 Media Segment with one or more Fragments. type MediaSegment struct { Styp *StypBox - Sidx *SidxBox // The fist sidx box in a segment + Sidx *SidxBox // The first sidx box in a segment Sidxs []*SidxBox // All sidx boxes in a segment Fragments []*Fragment EncOptimize EncOptimize diff --git a/mp4/trun.go b/mp4/trun.go index 4955f9f..c3cf061 100644 --- a/mp4/trun.go +++ b/mp4/trun.go @@ -115,7 +115,8 @@ func DecodeTrunSR(hdr BoxHeader, startPos uint64, sr bits.SliceReader) (Box, err return t, sr.AccError() } -// CreateTrun - create a TrunBox for filling up with samples +// CreateTrun - create a TrunBox for filling up with samples. +// writeOrderNr is only used for multi-trun offsets. func CreateTrun(writeOrderNr uint32) *TrunBox { trun := &TrunBox{ Version: 1, // Signed composition_time_offset