Skip to content

v1.11.0

Choose a tag to compare

@Snesnopic Snesnopic released this 14 Sep 08:01
· 88 commits to main since this release

What's new

New processors

  • Mp4Processor for .mp4 and .qt formats. They still extract and re-optimize cover art like before, but now also strips padding atoms free/skip/wide padding atoms and, when not preserving metadata, udta and meta objects
  • AsfProcessor for .wma, .wmv and .asf. They still extract and re-optimize cover art like before, but now also strips Padding objects and, when not preserving metadata, Content Description objects.
  • AviProcessor for .avi. Strips JUNK chunks (top-level and inside hdrl), and INFO metadata too, when not preserving metadata. Index offsets are recalibrated in the same way ffmpeg's own demuxer uses

Bug fixes

  • Fixed a bug in libmkclean that silently dropped CodecDelay and SeekPreRoll from files that needed them, causing audio desync on affected files, caused by reading the wrong header field to detect the file's Matroska version
  • Fixed mkclean always marking its output as requiring the newest Matroska version just to be opened at all, even when the original file didn't
  • Fixed OptigifProcessor's integrity check silently discarding valid output
  • Fixed raw_equal always rejecting linearized PDFs in PdfProcessor, since qpdf's hint stream wasn't accounted for
  • Fixed FlacoutProcessor not processing cover art extraction
  • Fixed multiplexed Ogg files silently losing their video. Anything that isn't pure Vorbis now falls back to a direct copy, unless it's Theora, which gets the new rehuff_theora treatment

Improvements

  • In MkvProcessor, --unsafe is now always passed to mkclean instead of being tied to preserve_metadata
  • In PdfProcessor, recompress LZW, ASCII85 and ASCIIHex streams as Flate+zopfli
  • Enable qpdf's own zopfli support
  • In ZopfliPngProcessor, When --iterations is set above the default, every scanline filter strategy is now tried at full Zopfli effort instead of picking one from a cheap estimate, the same idea as ECT's --allfilters
  • In SwfProcessor, the payload is now recompressed with Zopfli instead of plain zlib
  • In OggProcessor, theora video streams inside Ogg containers are now recompressed via a port of rehuff_theora
  • In ArchiveProcessor, .7z/.cb7 archives are now enabled and their contents recompressed, via libarchive's LZMA2 support. Previously these were ignored entirely. Archives using encryption or some BCJ2 coder combinations aren't supported yet and are left untouched

Dependencies


macOS: removing the Gatekeeper quarantine

When downloading binaries from the internet, macOS automatically marks them as “quarantined”.
If you try to run chsl and macOS shows a warning like:

“chsl cannot be opened because it is from an unidentified developer”

…you need to remove the quarantine attribute manually.

How to remove the quarantine flag
Open Terminal in the folder where you downloaded chsl and run:

xattr -d com.apple.quarantine ./chsl

To verify that the quarantine flag is gone:

xattr ./chsl

If com.apple.quarantine no longer appears, you're good to go.
Now you can run:

./chsl ...

Note
This issue does not occur if you compile chsl yourself.