Releases: Eyevinn/mp4ff
Releases · Eyevinn/mp4ff
v0.50.0
Added
- Support for VVC with vvcC box and VvcDecoderConfigurationRecord
- Support for parsing of VVC NALU headers and listing types in mp4ff-nallister
- Support for AC-4 audio including ac-4 and dac4 boxes
- Support for Opus and dOps boxes
- Support for MPEG-H sample descriptors including mhaC configuration boxes
- Support for AVS3 video sample descriptors: avs3 and av3c boxes
- Improved error handling for too short box header
Changed
- Makefile update to setup and run pre-commit with configuration
- Return type of Sample.PresentationTime to int64 instead of uint64
This may happen together with edit lists (seen for VVC video) - Corrected SetSyncSampleFlags and SetNonSyncSampleFlags functions
- Allow for trailing less than 8-bytes in VisualSampleEntry. Solves issue 444
- Allow unspecified
aspect_radio_idc == 0in avc VUI
Fixed
- The SliceHeader parser for AVC now uses SPS ID and not PPS ID to look up the SPS
v0.49.0
v0.48.0
Changed
- mp4.NewUUIDFromHex() changed to more general mp4.NewUUIDFromString()
- cmd/mp4ff-decrypt -key option instead of -k. Takes hex or base64 value
- cmd/mp4ff-encrypt -key and -kid options now take hex or base64 values
- Replaced mp4.AlouBox and mp4.TlouBox with a common mp4.LoudnessBaseBox
- mp4.Measurement changed to clearer mp4.LoudnessMeasurement
Added
- mp4.SetUUID() can take base64 string as well as hex-encoded.
- Support for weird dac3 box with initial 4 zero bytes (Issue #395)
- Lots of fuzzying tests and changes to avoid panic on bad input data
- Support for SMPTE-2086 Mastering Display Metadata Box (SmDm)
- Support for Content Light Level Box (CoLL)
- Better test coverage for VisualSampleEntryBox
- IsVideoNaluType functions in both avc and hevc packages
- Exported constants for ColrBox's ColorType
- mp4.NewFreeBox, mp4.NewSkipBox functions
- mp4.FreeBox.Payload method
- mp4.SencBox methods: SetPerSampleIVSize, PerSampleIVSize, and ReadButNotParsed
- Function mp4.CreateUnknownBox
- Functions mp4.NewTfrfBox and mp4.NewTfxdBox
- HEVC (hvc1) encryption
- AppendProtectRange function is now public
Fixed
- Support short ESDS without SLConfig descriptor (issue #393)
- HEVC Slice Header CollocatedFromL0Flag should be true by default
- Update to golangci-lint/v2 and fixed all warnings
v0.47.0
Changed
- CreatePrftBox now takes flags parameter
- PrftBox Info output
- Removed ReplaceChild method of StsdBox
- CreateHdlr name for timed metadata
- extension .m4s is interpreted as MP4 file in mp4ff-pslister
- moved mp4.GetVersion() to internal.GetVersion()
Added
- NTP64 struct with methods to convert to time.Time
- Constants for PrftBox flags
- Unittest to all programs in cmd and examples.
- Documentation in doc.go files for all packages
Fixed
- Allow missing optional DecoderSpecificInfo
- Avoid mp4.File.Mdat pointing to an empty mdat box
cmd/mp4ff-encryptdid not parse command lineSeigSampleGroupEntrycalculated skipBytes incorrectlycmd/mp4ff-pslisterdid not parse annex B HEVC correctly- error when decrypting and re-encrypting a segment (issue #378)
v0.46.0
Fixed
- mvhd, tkhd, and mdhd timestamps were off by one day
- allow other sbgp and sgpd types than seig with senc
Added
- mvhd, tkhd, and mdhd methods to set and get creation and modification times
- Event Message boxes evte, emib, emeb
- GetBtrt method to StsdBox
- Btrt pointer attribute in AudioSampleEnntry
- stpp can be used as value to CreateEmptyTrak
v0.45.1
Added
- Box decoder error messages include start position
Fixed
- Overflow in calculating sample decode time
- elng box errononously did not include full box headers
Recap of v0.45.0
tagged 6 weeks earlier, but only released the same day
Changed
- minimum Go version 1.16.
- ioutil imports replaced by io and os imports
- Info (mp4ff-info) output for esds boxes
- API of descriptors
- Parsing and info output for url boxes
Fixed
- support for parsing of hierarchical sidx boxes
- handling of partially bad descriptors
- handle url boxes missing mandatory zero-ending byte
Added
- support for ssix box
- support for leva box
- details of descriptors as Info outout (mp4ff-info)
v0.45.0
Changed
- minimum Go version 1.16.
- ioutil imports replaced by io and os imports
- Info (mp4ff-info) output for esds boxes
- API of descriptors
- Parsing and info output for url boxes
Fixed
- support for parsing of hierarchical sidx boxes
- handling of partially bad descriptors
- handle url boxes missing mandatory zero-ending byte
Added
- support for ssix box
- support for leva box
- details of descriptors as Info outout (mp4ff-info)
v0.44.0
Added
- New
TryDecodeMfrofunction - New
mp4ff-subslistertool replacingmp4ff-wvttlister. It supportswvttandstpp File.UpdateSidx()to update or add a top level sidx box for a fragmented filemp4.DecStartSegmentOnMoofflag to make the Decoder interpret every moof as
a new segment start, unless styp, sidx, or mfra boxes give that information.- New example
add-sidxshows how on can add a top-levelsidxbox to a fragmented file.
It further has the option to remove unused encryption boxes, and to interpret each
moof box as starting a new segment. - New method
MoovBox.IsEncrypted()checks if an encrypted codec is signaled
Fixed
- More robust check for mfro at the end of file
- GetTrex() return value
- Can now write PIFF
uuidbox that has previously been read - Does now avoid the second parsing of
sencbox if the file is ot encrypted as seen in moov box.
Removed
- mp4ff-wvttlister tool removed and replaced by mp4ff-subslister
v0.43.0
Added
- InitSegment.TweakSingleTrakLive changes an init segment to fit live streaming
- Made bits.Mask() function public
- New counter methods added to bits.Reader
- colr box support for nclc and unknown colour_type
- av01, encv, and enca direct pointers in stsd
Changed
- All readers and writers in bits package now stop working at first error and provides the first error as AccError()
- Renamed bits.AccErrReader, bits.AccErrEBSPReader, bits.AccErrWriter to corresponiding names without AccErr
- Renamed bits.SliceWriterError to bits.ErrSliceWrite
- colr box supports unknown colrType
Fixed
- kind box full-box header
- stpp support when the optional fields do not have a zero-termination byte
- mp4ff-wvttlister now lists all boxes in a sample