Releases: shaka-project/shaka-packager
Releases · shaka-project/shaka-packager
v3.0.0
3.0.0 (2024-02-28)
⚠ BREAKING CHANGES
- Update all dependencies
- Drop Python 2 support in all scripts
- Replace glog with absl::log, tweak log output and flags
- Replace gyp build system with CMake
Features
- Add input support for EBU Teletext in MPEG-TS (#1344) (71c175d)
- Add install target to build system (3e71302)
- Add PlayReady support in HLS. (#1011) (96efc5a)
- add startwithSAP/subsegmentstartswithSAP for audio tracks (#1346) (d23cce8)
- Add support for ALAC codec (#1299) (b68ec87)
- Add support for single file TS for HLS (#934) (4aa4b4b)
- Add support for the EXT-X-START tag (#973) (76eb2c1)
- Add xHE-AAC support (#1092) (5d998fc)
- Allow LIVE UDP WebVTT input (#1349) (89376d3)
- DASH: Add Label element. (#1175) (b1c5a74)
- DASH: Add video transfer characteristics. (#1210) (8465f5f)
- default text zero bias (#1330) (2ba67bc)
- Drop Python 2 support in all scripts (3e71302)
- Generate the entire AV1 codec string when the colr atom is present (#1205) (cc9a691), closes #1007
- HLS / DASH support forced subtitle (#1020) (f73ad0d)
- Move all third-party deps into git submodules (#1083) (3e71302)
- order streams in manifest based on command-line order (#1329) (aad2a12)
- Parse MPEG-TS PMT ES language and maximum bitrate descriptors (#369) (#1311) (c09eb83)
- Portable, fully-static release executables on Linux (#1351) (9be7c2b)
- Replace glog with absl::log, tweak log output and flags (3e71302)
- Replace gyp build system with CMake (3e71302), closes #1047
- Respect the file mode for HttpFiles (#1081) (3e71302)
- This patch adds support for DTS:X Profile 2 audio in MP4 files. (#1303) (07f780d)
- Update all dependencies (3e71302)
- Write colr atom to muxed mp4 (#1261) (f264bef), closes #1202
Bug Fixes
- Accept 100% when parsing WEBVTT regions (#1006) (e1b0c7c), closes #1004
- Add missing <cstdint> includes (#1306) (ba5c771), closes #1305
- Always log to stderr by default (#1350) (35c2f46), closes #1325
- AudioSampleEntry size caluations due to bad merge (#1354) (615720e)
- dash_roles add role=description for DVS audio per DASH-IF-IOP-v4.3 (#1054) (dc03952)
- Don't close upstream on HttpFile::Flush (#1201) (53d91cd), closes #1196
- duration formatting and update mpd testdata to reflect new format (#1320) (56bd823)
- Fix build errors related to std::numeric_limits (#972) (9996c73)
- Fix build on FreeBSD (#1287) (3e71302)
- Fix clang build (#1288) (3e71302)
- Fix failure on very short WebVTT files (#1216) (dab165d), closes #1217
- Fix handling of non-interleaved multi track FMP4 files (#1214) (dcf3225), closes #1213
- Fix issues with
collections.abc
in Python 3.10+ (#1188) (80e0240), closes #1192 - Fix local files with UTF8 names (#1246) (3e71302)
- Fix missing newline at the end of usage (#1352) (6276584)
- Fix Python 3.10+ compatibility in scripts (3e71302)
- Fix uninitialized value found by Valgrind (#1336) ([7ef51...
v2.6.1
v2.6.0
Added
Fixed
- Workaround warning spam using http_file (#948)
- Fixed various python2/3 issues in the build
- Fixed builds with CC=clang CXX=clang++
Changed
- Added arm64 to the build matrix
- Make release binary names more consistent
- Produce static release executables on Linux (#978, #965)
- Stop using hermetic clang, libc++, etc
- "gclient sync" now runs 20-30% faster
- "ninja -C out/Release" now runs 5-13% faster
- No longer required:
- DEPOT_TOOLS_WIN_TOOLCHAIN environment variable
- MACOSX_DEPLOYMENT_TARGET environment variable
- clang=0 gyp variable
- host_clang=0 gyp variable
- clang_xcode=1 gyp variable
- use_allocator=none gyp variable
- use_experimental_allocator_shim=0 gyp variable
v2.5.1
Added
Fixed
- Fix position of LA_URL in PlayReady headers (#961)
- Fix broken Dockerfile due to depot_tools update
- Fix shared_library builds on Windows (#318, #956, #957, #958)
Changed
- CI overhaul based on GitHub Actions (#336, #959)
- Migrated Appveyor and Travis integrations to GitHub Actions
- Added significant new release automation to build, test, and release on
GitHub, NPM, and Docker Hub
Doc
- Fix doc formatting for dash_only and hls_only (#954)
v2.5.0
Added
- Support HTTP PUT to upload packaging outputs to cloud (#149).
- Support Dolby Vision backward compatible profiles (#341).
- Support different IVs for each track (#543).
- Support dash_only and hls_only parameters
(dash_only=0|1
,hls_only=0|1
) (#651). - [HLS] Allow custom EXT-X-MEDIA-SEQUENCE number (
--hls_media_sequence_number
)
(#691). - [MP4] Allow specifying protection pattern for pattern encryption
(--crypt_byte_block
,--skip_byte_block
) (#710). - [MP4] Allow write |mvex| before |trak| (
--mvex_before_trak
) (#711). - [DASH] Support signalling of last segment number
(dash_add_last_segment_number_when_needed
) (#713). - [DASH] Allow adaptive switching between different codecs
(--allow_codec_switching
) (#726). - [DASH] Include mspr:pro alongside to cenc:pssh for PlayReady (#743).
- Support Dolby DD+JOC in DASH and HLS (#753).
- Support AC-4 codec (#754).
- Support inclusion of extra PlayReady header data
(--playready_extra_header_data
) (#756). - Support MPEG-1 Audio in mpeg2ts I/O and packed-audio / mp4 output (#779).
- Support more text input and output formats, including DVB-SUB input (#832) and
TTML in MP4 output (#87). - Support segment_list for DASH on-demand profile (
--dash_force_segment_list
).
Fixed
- DASH / HLS spec compliance issues
- [HLS] Add support for independent segments tag (#564).
- [TS] Improve frame rate calculation for TS streams (#751).
- [MP4] Change major brand from isom to mp41 (#755).
- [MP4] Always set ES_ID to 0 when writing ES Descriptor (#755).
- Properly handle AVC profiles with SPS extension (#755).
- [HLS] Don't include FRAME-RATE in EXT-X-STREAM-INF (#816).
- [HLS] Fix missing FRAME-RATE in playlists with TS streams (#816).
- [DASH] TrickPlay using separate trick play specific streams (#732).
- Don't fail if input contents contain SampleGroupDescriptionBox with 0 entries
(#812). - [HLS] Fixes attributes for DVS tracks (#857).
- Fix trick-mode property values (space instead of comma).
- Properly handle SkipBytes with num_bytes as 0 (#875).
- [MPEG-TS] Fix PCR reserved bits not being set correctly (#893).
- [HLS] Explicitly signal the lack of CEA captions (#922).
Changed
v2.4.3
v2.4.2
v2.4.1
v2.4.0
Added
- Support hardware accelerated AES (#198).
- Support various HDR formats for HEVC (#341, #632).
- Add more loggings for GAPs (#474).
- Retry file deletion if it fails (#533). Only applicable to live packaging.
- Simplify the dependency for pssh-box utility (#538).
- Add crypto_period_duration to Widevine key requests (#545).
- Include pssh-box.py in docker image and release (#550).
- Support encryption using IV from Widevine key server (#555).
- [DASH] Support custom Accessibillity and Role elements (#565). This is needed
to support DVS Accessibillity audio in DASH. - Support CMAF file extensions (#574).
- Support PlayReady PSSH generation with CBCS protection scheme (#602).
- [HLS] Generate FRAME-RATE attribute in EXT-X-STREAM-INF tag (#634).
- Add --quiet to suppress LOG(INFO) outputs (#661).
Fixed
- Handle large descriptor header size in 'esds' box (#536).
- Improve the handling of corrupted timestamp in live streams (#563).
- Fix problems that target duration is not set in mpd/hls params, which then
results incorrect bandwidth estimates (#498, #581). - Allow absolute path in playlist name (#585).
- [HLS] Fix possible zero bandwidth for EXT-I-FRAME-STREAM-INF (#610).
- Supports encryption of streams with parameter sets in frames, i.e. avc3, hvc1
etc (#621, #627). - [HLS] Segments not deleted with
$Time$ in segment_template when output HLS
segments only (#625). - [HLS] ID3 payload for transportStreamTimestamp not truncated to 33 bits
(#629). - Fix UDP sockets support in Windows (#643).
- Fix possible packager hangs when reading mp4 files from FIFO (#664).
Changed
- [HLS] Replace hev1 in codec with hvc1 and avc3 with avc1 (#587).
- Rename
--generate_static_mpd
to--generate_static_live_mpd
(#672).
Doc
- Added documentation for pssh-box utility (#500).
v2.3.0
Added
- Alpine Linux support (#164).
- WebVTT style and region support (#344).
- Marlin DRM support (#381).
- HLS CHARACTERISTICS attribute on #EXT-X-MEDIA (#404).
- Default text language support ('--default_text_language') (#430).
- AV1 support (#453).
- HLS audio only master playlist support (#461).
Fixed
- MPEG-TS demuxing with AC-3 / E-AC-3 (#487). kFrameSizeCodeTable were reversed
results in wrong frame size being detected except for 44.1kHz. - HLS peak bandwidth calculation with very short segments (#498). The short
segments should be excluded from peak bandwidth calculation per HLS
specification. - Output directory permission (#499). The new directory permission was fixed to
0700. - Workaround access units with extra AUD (#526). VLC inserts an extra AUD in the
key frames, which caused packager to delay emitting the frame. The delays
accumulated and became noticeable after running the live packaging for some
time. - Problem when using Trick Play with Ad Cues (#528).
Changed
- Disable bundled binutil and gold on Linux by default. There may be a slight
increase in binary link time. - Reduced official Docker image size from ~1GB to ~15MB (#535). The new image
is based on Alpine and contains only result binaries (packager
and
mpd_generator
).