Version 56.1.0 "My Friend" 2021-04-09
New features and enhancements
* mkvmerge: AAC: added support for LOAS/LATM files with channel configuration
indexes 9–21 (e.g. channel count 22.2 for index 13) according to Rec. ITU-R
BS.1196-7 & ISO/IEC 23008-3:2019.
Bug fixes
* mkvmerge: HEVC/H.265 parser: fixed invalid memory access that could happen
when reading certain types of HEVC data (e.g. with changing parameter sets
mid-stream) from certain containers (e.g. Matroska). This bug was introduced
in release 56.0.0.
* mkvextract: AAC: mkvextract will now abort with an useful error message when
the user tries to extract a track whose 'audio-specific config' element in
`CodecPrivate` signals a number of channels of 7 or greater than 8 as that
isn't supported by the ADTS format.
Build system changes
* configure: the `--enable-ubsan` option hasn't actually enabled anything
since release 39.0.0.
Version 3.5
New feature
Real-time VBV for ABR (Average BitRate) encodes in –pass 2 using --vbv-live-multi-pass: Improves VBV compliance with no significant impact on coding efficiency.
Enhancements to existing features
Improved hist-based scene cut algorithm: Reduces false positives by leveraging motion and scene transition info.
Support for RADL pictures at IDR scene cuts: Improves coding efficiency with no significant impact on performance.
Bidirectional scene cut aware Frame Quantizer Selection: Saves bits than forward masking with no noticeable perceptual quality difference.
API changes
Additions to x265_param structure to support the newly added features and encoder enhancements.
New x265_param options --min-vbv-fullness and --max-vbv-fullness to control min and max VBV fullness.
Bug fixes
Incorrect VBV lookahead in --analysis-load + --scale-factor.
Encoder hang when VBV is used with slices.
QP spikes in the row-level VBV rate-control when WPP enabled.
Encoder crash in --abr-ladder.
Version 56.0.0 "Strasbourg / St. Denis" 2021-04-05
New features and enhancements
* mkvmerge, mkvpropedit: tags: the programs will no longer write tag elements
that are mandatory and set to their default value (e.g. "tag language" set
to `und` = undetermined).
* mkvmerge, mkvpropedit, MKVToolNix GUI chapter editor: chapters: the programs
will no longer write chapter elements that are mandatory and set to their
default value (e.g. "chapter language" set to `eng` = English or "Chapter
flag enabled" = 1).
* mkvextract: chapters: mkvextract will no longer add a `ChapterLanguage`
element set to `eng` to the generated XML content if the source file doesn't
contain such an element.
* MKVToolNix GUI: multiplexer: when using the "tab widget below the files &
tracks" layout option for the track properties the elements in the "general
options" tab will use six rows à four columns instead of twelve rows à two
columns, greatly reducing the required height.
Bug fixes
* mkvmerge: AAC reader: fixed mkvmerge aborting to read AAC files bigger than
2 GB with a message about not being able to allocate memory.
* mkvmerge: chapters: `ChapLanguageIETF` elements were still created when the
option `--disable-language-ietf` was given after an option leading to the
creation of chapters. Now the position doesn't matter anymore.
* mkvmerge: chapters: when the option `--disable-language-ietf` is used,
`ChapLanguageIETF` elements won't be written even when sources are read
(Matroska files or XML chapters files) that do contain those elements.
* mkvmerge: tags: when the option `--disable-language-ietf` is used,
`TagLanguageIETF` elements won't be written.
* mkvmerge: tags: mkvmerge will no longer write language elements for the
track statistics tags it creates, making the effective language
"undetermined" due to `und` being the default value for the legacy tag
language element.
* mkvmerge: tags: the XML tag parser will now validate all `<Simple>` children
of `<Tag>` elements, not just the first for each `<Tag>`.
* mkvmerge: tags: the XML tag parser now uses the spec-compliant `und`
("undetermined") as the default language for `<Simple>` tags instead of
`eng`.
* mkvmerge, mkvpropedit: tags: mkvmerge will no longer set the "target type"
for track statistics tags (earlier it used `MOVIE`). The "target type value"
will still be set to `50`.
* mkvmerge, mkvextract: HEVC/H.265: both programs will now normalize the
placement of VPS, SPS and PPS NALUs. Each key frame is prefixed with exactly
one copy of the currently active parameter sets. This fixes certain classes
of bugs related to splitting/appending.
* mkvinfo: when compiled with newer versions of the `fmt` library, certain
numbers were not output correctly (e.g. a track's audio sampling frequency
of 48000 might be output as 48).
* MKVToolNix GUI: multiplexer: deriving the track language from the file name
will match languages case insensitively again (like versions prior to
v55).
* MKVToolNix GUI: multiplexer: under certain circumstances keyboard shortcuts
such as `Ctrl+W` for closing the active tab or `Ctrl+R` for starting to
multiplex ceased to work until the user did certain other things (such as
switching to a different tool & back to the multiplexer or opening the
multiplexer menu). This started with v54.
* MKVToolNix GUI: chapter editor: the editor will no longer create empty
`ChapterCountry` elements when adding a chapter name with no default country
selected in the preferences.
Build system changes
* The bundled `fmt` library was updated to v7.1.3.
Changes:
0.33.1
======
Security fix release for the 0.33 branch. Users are advised to upgrade immediately.
Fixes and Minor Enhancements
----------------------------
- demux_mf: improve format string processing
backends require the new version of Phonon to build!
Tiny bugfix releases fixing some regressions in the cmake logic for .pri
files and fixing wayland support in the VLC backend.
Grand new Phonon releases bringing Qt5 by default and completely
reworking the CMake code to not be a tangled mess.
Tiny bugfix releases fixing some regressions in the cmake logic for .pri
files and fixing wayland support in the VLC backend.
### 0.23.14 (2021-03-10 01:40:00 UTC)
* Add config/Search/Search Tasks/"Host running FlareSolverr" to handle CloudFlare providers
* Change the cf_clearance cookie to an undocumented optional config instead of a requirement
* Change where cf_clearance does not exist or expires, config/Search/Search Tasks/"Host running FlareSolverr" is required
* Fix saving magnet from PAs as files under py3
* Fix SkyTorrents provider
* Fix Torlock provider
* Fix TBP provider
### 0.23.13 (2021-02-26 19:05:00 UTC)
* Add Newznab providers can use API only or API + RSS cache fallback. Tip added to Newznab config/Media Providers/API key
* Add correct user entry mistakes for nzbs2go api url
### 0.23.12 (2021-02-19 17:00:00 UTC)
* Change allow Python 3.8.8 and 3.9.2
### 0.23.11 (2021-02-04 23:30:00 UTC)
* Fix report correct number of items found during nzb search
* Change recognise custom spotweb providers
### 0.23.10 (2021-01-30 11:20:00 UTC)
* Fix change file date on non Windows
### 0.23.9 (2021-01-28 19:45:00 UTC)
* Fix provider nCore
* Change update dateutil fallback zoneinfo to 2021a
### 0.23.8 (2020-12-31 20:40:00 UTC)
* Change update dateutil fallback zoneinfo to 2020f
* Fix notifiers Pushover and Boxcar2 under py3
* Fix need to restart SG for a change in TVChaosUK password to take effect
### 0.23.7 (2020-12-13 20:40:00 UTC)
* Fix remove need to page refresh after entering an anime scene absolute number on view-show
* Change add TVChaosUK custom name regulator to prevent a false trigger from the wordlist filter
### 0.23.6 (2020-12-11 01:50:00 UTC)
* Update UnRar for Windows 5.91 to 6.00 x64
* Fix providers BitHDTV, Blutopia, HDTorrents, Pretome, PrivateHD, PTFiles, SceneHD, TVChaosUK
* Change handle redirects from POST requests
* Change Kodi Addon 1.0.8
### 0.23.5 (2020-12-05 13:45:00 UTC)
* Change improve dark theme text legibility with green/gold background under "Downloads" in view-shows/simple layout
### 0.23.4 (2020-12-02 11:30:00 UTC)
* Change allow Python 3.9.1
### 0.23.3 (2020-11-30 17:20:00 UTC)
* Change remove use of native Py 7zip as compressor found to crash Python binary under Linux with low memory conditions
### 0.23.2 (2020-11-21 18:40:00 UTC)
* Change allow Python 3.8.7
* Change suppress py27 startup cryptography deprecation warning
* Fix filter out history items that don't qualify for status snatched/good
### 0.23.1 (2020-11-16 23:00:00 UTC)
* Fix image failure for a show that is force updated, removed, then readded
### 0.23.0 (2020-11-11 13:30:00 UTC)
* Change improve search performance for backlog, manual, failed, and proper
* Add overview of the last release age/date at each newznab provider to History/Layout "Connect fails"
* Add "History new..." to Shows menu by clicking the number
* Add db backup to the scheduled daily update
* Add display "Database backups" location at config/about if feature available
* Add option "Backup database plan" to config/general/advanced if feature available
* Add py7zr to recommended.txt for optional 7z compression
* Add `backup_db_path` setting to config.ini to customise backup db location
* Add `backup_db_max_count` to config.ini with range 0-90 where 0 = disable backup, 14 = default
* Change improve list performance for file/directory browser
* Change improve import shows listing performance
* Change improve performance during show rescan process
* Change improve performance during media processing
* Change improve scantree performance with regex params of what to include and/or exclude
* Change rename remove_file_failed to remove_file_perm and make it return an outcome
* Add config/General/Updates/Alias Process button, minimum interval for a fetch of custom names/numbering is 30 mins
* Add Export alternatives button to edit show
* Change season specific alt names now available not just for anime
* Change improve tooltip over show title in display show for multiple alternatives
* Add display season alternatives on hover over season titles in display show
* Change single digit season display to zero-padded double digits in edit show
* Change add note on edit show for season specific search rule
* Add mark next to season titles that have exceptions
* Add support for centralised sg alternative names and numbers
* Change sg alts can overwrite scene number field only if field value is blank
* Change add note on edit show for season specific search rule
* Change add has_season_exceptions to control newznab id search
* Change add season exceptions to torrent providers
* Change give remove_file functions time to process
* Add ignore folders that contain ".sickgearignore" flag file
* Change add 3 days cache for tmdb base info only
* Change `Discordapp` to `Discord` in line with company change
* Change remove `app` from URL when calling webhook
* Change remind user when testing Notifications config / Discord to update URL
* Change Trim/Clear history to hide items because the data is needed for core management
* Fix incorrect text for some drop down list items in the apiBuilder view that affected some browsers
* Fix connection skip error handling in tvdb_api
* Add client parameter to pp class and add it to API sg.postprocess
* Change API version to 14
* Change add a test for both require and ignore show specific words with partial match, both should fail
* Change expand to all providers, and season results, applying filters to .torrent content and not just search result...
name for where a found torrent result `named.this` contains `name.that` and ignore `that` did not ignore `named.this`
* Change init showDict for all unit tests
* Change add error handling for zoneinfo update file parsing
* Change downgrade network conversions/timezone warnings on startup to debug level
* Add enum34 1.1.10
* Add humanize 3.1.0 (aec9dc2)
* Add Torrent file parse 0.3.0 (2a4eecb)
* Update included fallback timezone info file to 2020d
* Update attr 20.1.0.dev0 (4bd6827) to 20.2.0 (4f74fba)
* Update Beautiful Soup 4.8.2 (r559) to 4.9.3 (r593)
* Update cachecontrol library 0.12.5 (007e8ca) to 0.12.6 (167a605)
* Update certifi 2020.06.20 to 2020.11.08
* Update dateutil 2.8.1 (43b7838) to 2.8.1 (c496b4f)
* Change add diskcache_py3 5.0.1 (9670fbb)
* Change add diskcache_py2 4.1.0 (b0451e0)
* Update feedparser_py3 6.0.0b3 (7e255f0) to 6.0.1 (98d189fa)
* Update feedparser_py2 backport
* Update hachoir_py3 3.0a6 (5b9e05a) to 3.1.2 (f739b43)
* Update hachoir_py2 2.0a6 (5b9e05a) to 2.1.2
* Update Js2Py 0.70 (f297498) to 0.70 (92250a4)
* Update package resource API to 49.6.0 (3d404fd)
* Update profilehooks module 1.11.2 (d72cc2b) to 1.12.0 (3ee1f60)
* Update Requests library 2.24.0 (1b41763) to 2.24.0 (2f70990)
* Update soupsieve_py3 2.0.0.final (e66c311) to 2.0.2.dev (05086ef)
* Update soupsieve_py2 backport
* Update Tornado_py3 Web Server 6.0.4 (b4e39e5) to 6.1.0 (2047e7a)
* Update tmdbsimple 2.2.6 (310d933) to 2.6.6 (679e343)
* Update urllib3 1.25.9 (a5a45dc) to 1.25.11 (00f1769)
* Change add remove duplicates in newznab provider list based on name and url
* Change remove old provider dupe cleanup
* Change add response rate limit handling for generic providers
* Change add newznab retry handling
* Change add 2s interval fetch retry for Github as it can sometimes return no data
* Change rename misuse of terminology `frequency` to `interval`
### 0.22.16 (2020-11-10 20:15:00 UTC)
* Fix anime name parser tests failing on assumed season number 1
* Change increase number of IMDb ID digits parsed in TVDb lib
* Change add Trakt requested guidance to the log for locked user accounts
### 0.22.15 (2020-11-09 14:10:00 UTC)
* Fix IMDb cards not always displayed as `in library`
### 0.22.14 (2020-11-06 21:55:00 UTC)
* Fix RarBG in cases where home page cannot be reached
### 0.22.13 (2020-11-05 01:00:00 UTC)
* Fix SpeedCD provider
* Remove HorribleSubs provider
### 0.22.12 (2020-11-03 16:05:00 UTC)
* Fix IPTorrents
### 0.22.11 (2020-10-30 01:45:00 UTC)
* Fix an old and rare thread timing case that can change a show to the wrong type while fetching alternative names
### 0.22.10 (2020-10-28 14:10:00 UTC)
* Fix clear of old fail times for providers
### 0.22.9 (2020-10-21 11:55:00 UTC)
* Change remove DB file logging level from config/General and reduce DB levels to Debug to reduce log file noise
* Add Trakt rate-limiting http response code 429 handling to prevent request failure
### 0.22.8 (2020-10-19 13:45:00 UTC)
* Fix rare timing case on first-time startup with a network timezone update failure and an endless loop
* Change ensure `autoProcessTV/sabToSickGear.py` is set executable
### 0.22.7 (2020-10-19 10:15:00 UTC)
* Add `autoProcessTV/sabToSickGear.py` that works with SABnzbd under both py2 and py3
### 0.22.6 (2020-10-19 01:05:00 UTC)
* Fix libtrakt logging error that created a Trakt notifier issue during media process
Version 0.8.4.1:
* Hotfix for crash on Windows, no changes for Linux
Version 0.8.4:
* improved handling of mixed AVM1/AVM2 files
* implement streaming of videos embedded in the swf file
* implement class inheritance for AVM1
* added settings dialog, currently only used to enable/disable local storage
* support for local storage added
* use SDL threading methods, remove glibmm dependency
0.8.2 is a middle-size update of the 0.8.0 branch:
- ARM32 optimizations for ipred and itx in 10/12bits,
completing the 10b/12b work on ARM64 and ARM32
- Give the post-filters their own threads
- ARM64: rewrite the wiener functions
- Speed up coefficient decoding, 0.5%-3% global decoding gain
- x86 optimizations for CDEF_filter and wiener in 10/12bit
- x86: rewrite the SGR AVX2 asm
- x86: improve msac speed on SSE2+ machines
- ARM32: improve speed of ipred and warp
- ARM64: improve speed of ipred, cdef_dir, cdef_filter, warp_motion and itx16
- ARM32/64: improve speed of looprestoration
- Add seeking, pausing to the player
- Update the player for rendering of 10b/12b
- Misc speed improvements and fixes on all platforms
- Add a xxh3 muxer in the dav1d application
Version 55.0.0 "Waiting For Space"
Bug fixes
* all programs, only on Windows: fixed checking existence of & creating
directories with UNC paths such as `\\server\share\folder\file.mkv`.
* all programs, only on Windows: implemented several workarounds for bugs in
`std::filesystem` wrt. UNC paths. The effect of those bugs was that Blu-rays
and DVDs couldn't be added from UNC paths.
* mkvmerge, only on Windows: fixed non-ASCII characters getting mangled in the
destination file name when splitting is active.
* MKVToolNix GUI, only on Windows: fixed the GUI hanging when trying to browse
for files on drives that don't actually exist.
* MKVToolNix GUI, only on Windows: the GUI did not remember UNC paths as the
"most recently used source directory" properly.
* MKVToolNix GUI: only on Windows: when dragging & dropping files from other
applications to MKVToolNix GUI the GUI will force the drop action to be a
copy action, no matter which keys were pressed by the users. This prevents
Windows Explorer from deleting the dragged file when the user presses shift
while dropping the file onto MKVToolNix GUI.
* MKVToolNix GUI, only on Windows: when using the file dialog for selecting a
file name to save to (e.g. when browsing for the destination file name in
the multiplexer or saving an attachment in the header editor) non-ASCII
characters in the default file name were mangled.
* MKVToolNix GUI: multiplexer: the user can now configure what to do when
using the "Add source files" button independently of the setting for what
happens when files are dragged & dropped onto the GUI. The same options are
available, but they're distinct settings, allowing for different use
cases.
* MKVToolNix GUI: multiplexer: deriving the track language from file names
doesn't use one big regular expression of all enabled languages
anymore. Instead, the file name is split into parts on a list of characters
(such as `.` or `(` and `)`; configurable in the preferences). This prevents
the regular expression becoming too big for the regular expression library
to handle when many languages are enabled.
* MKVToolNix GUI: preferences: the language lists for "deriving track
languages" and "enabling items by language" always included all the ISO
639-3 languages, even if those weren't enabled in the "often-used languages"
pane.
Other changes
* mkvmerge, MKVToolNix GUI multiplexer: the functionality for changing the
length of the NALU "size" field for AVC/H.264 and HEVC/H.265 tracks has been
removed. The corresponding command-line option will continue to be
recognized by mkvmerge as not to break existing third-party applications,
but it won't actually do anything.
Version 54.0.0 "F Maj Pixie"
New features and enhancements
* mkvmerge: added support for using ISO 639-3 language codes in IETF BF47
language tags.
* mkvmerge: AC-3 parser: added support for byte-swapped AC-3 data.
* mkvmerge: Matroska reader: for audio tracks that have the bit depth track
header set mkvmerge will now keep that header even for codecs that don't
require it for decoding.
* mkvmerge: MPEG transport stream reader, PCM audio tracks: mkvmerge will now
re-order the channels for 5.1, 7.0 and 7.1 channel tracks from the Blu-ray
layout to the WAVEFORMATEXTENSIBLE layout expected in Matroska.
* mkvmerge, mkvinfo, mkvpropedit, MKVToolNix GUI: added support for the
following new track header elements: "hearing impaired" flag, "visual
impaired" flag, "text descriptions" flag, "original" flag, "commentary"
flag.
* MKVToolNix GUI: added support for using ISO 639-3 language codes in IETF
BF47 language tags. As there are several thousand of them, they're
deactivated by default and must be activated in the preferences ("GUI" →
"Often used selections" → "Languages").
* MKVToolNix GUI: multiplexer: when adding Blu-rays the user can select
multiple playlists to add simultaneously in the "select playlist to add"
dialog.
* MKVToolNix GUI: multiplexer: the file name extensions "eb3" and "ec3" were
added for Dolby Digital Plus & "mpl" for Dolby TrueHD in the file
dialogs.
* MKVToolNix GUI: multiplexer: when adding multiple files the dialog asking
the user what to do with them has gained a new checkbox. If enabled, all
files containing at least one video track will always be placed in newly
created multiplex setting.
* MKVToolNix GUI: multiplexer: added a menu entry in the "Multiplexer" for
adding all files that are currently in the clipboard.
Bug fixes
* all: Windows: fixed compatibility with gettext 0.21 and newer on mingw.
* all: Windows: fixed several of the programs having problems with certain
Unicode characters (primarily emojis) in file names (e.g. mkvextract
wrongfully complaining about an "invalid mode" or the GUI not being able to
find parts of Blu-ray file structures).
* mkvextract: AAC: fixed wrong channel mask field in the ADTS headers for 7.1
channel layouts.
* mkvextract: h.265/HEVC extraction: if the first frame starts with the
parameter sets (SPS, PPS & VPS), the ones from CodecPrivate aren't written
and the ones from the first frame are kept.
* mkvmerge: fixed the calculation of chapter timestamps read from NTSC
DVDs.
* MKVToolNix GUI: IETF BCP 47 language widget: the language combo box will now
always contain the language code the user enters in the free-form field,
even if it isn't in the list of often-used languages the user configured in
the preferences.
* MKVToolNix GUI: multiplexer: when browsing for the destination file name the
default directory is now chosen according to the preferences regarding how
the destination file name should be formed. For example, if the policy is
set to "fixed output directory" then that output directory will be the one
initially set when the directory selection dialog is opened.
* MKVToolNix GUI: multiplexer: fixed the removal of appended source files if
the "delete source files" end-of-job action is enabled.
* MKVToolNix GUI: chapter editor: when importing chapters from DVDs the IETF
BCP 47 language elements will be set, too, not just the legacy language
elements.
Build system changes
* libEBML v1.4.2 and libMatroska v1.6.3 are now required. The optional,
bundled copies of both libraries have been updated to those versions. This
bump in requirements fixes several heap overflow bugs in libEBML.
* MKVToolNix is now using the C++17 library feature "file system library"
instead of Boost's "file system" and "system" libraries. For the GNU
Compiler Collection (gcc) libstdc++ this means v8 or newer is required; for
clang's libc++ it means v7 or newer. For macOS this means that provided disk
image will only run on 10.15 "Catalina" or newer.
version 4.3.2:
avcodec/hapdec: Change compressed_offset to unsigned 32bit
avformat/rmdec: Check codec_length without overflow
avformat/mov: Check element count in mov_metadata_hmmt()
avcodec/vp8: Move end check into MB loop in vp78_decode_mv_mb_modes()
avcodec/fits: Check gcount and pcount being non negative
avformat/nutdec: Check timebase count against main header length
avformat/electronicarts: Clear partial_packet on error
avformat/r3d: Check samples before computing duration
avcodec/pnm_parser: Check av_image_get_buffer_size() for failure
avformat/wavdec: Consider AV_INPUT_BUFFER_PADDING_SIZE in set_spdif()
avformat/rmdec: Check remaining space in debug av_log() loop
avformat/flvdec: Treat high ts byte as unsigned
avformat/samidec: Sanity check pts
avcodec/jpeg2000dec: Check atom_size in jp2_find_codestream()
avformat/avidec: Use 64bit in get_duration()
avformat/mov: Check for duplicate st3d
avformat/mvdec: Check for EOF in read_index()
avcodec/jpeglsdec: Fix k=16 in ls_get_code_regular()
avformat/id3v2: Check the return from avio_get_str()
avcodec/hevc_sei: Check payload size in decode_nal_sei_message()
libavutil/eval: Remove CONFIG_TRAPV special handling
avformat/wtvdec: Check len in parse_chunks() to avoid overflow
avformat/asfdec_f: Add an additional check for the extradata size
avformat/3dostr: Check sample_rate
avformat/4xm: Make audio_frame_count 64bit
avformat/mov: Use av_mul_q() to avoid integer overflows
avcodec/vp9dsp_template: Fix integer overflows in itxfm_wrapper
avformat/rmdec: Reorder operations to avoid overflow
avcodec/mxpegdec: fix SOF counting
avcodec/rscc: Check inflated_buf size whan it is used
avformat/mvdec: Sanity check SAMPLE_WIDTH
avcodec/nvenc: fix timestamp offset ticks logic
avformat/rmdec: Fix codecdata_length overflow check
avcodec/simple_idct: Fix undefined integer overflow in idct4row()
avformat/wavdec: Check block_align vs. channels before combining them
avformat/tta: Use 64bit intermediate for index
avformat/soxdec: Check channels to be positive
avformat/smacker: Check for too small pts_inc
avformat/sbgdec: Use av_sat_add64() in str_to_time()
avcodec/cscd: Check output len in zlib as in lzo
avcodec/vp3: Check input amount in theora_decode_header()
avformat/wavdec: Check avio_get_str16le() for failure
avformat/flvdec: Check for EOF in amf_skip_tag()
avformat/aiffdec: Check size before subtraction in get_aiff_header()
avformat/electronicarts: More chunk_size checks
avcodec/cfhd: check peak.offset
avformat/tedcaptionsdec: Check for overflow in parse_int()
avformat/nuv: Check channels
avcodec/siren: Increase noise category 5 and 6
avformat/mpc8: Check size before implicitly converting to int
avformat/nutdec: Fix integer overflow in count computation
avformat/mvi: Use 64bit for testing dimensions
avformat/utils: Check dts in update_initial_timestamps() more
avformat/mpsubdec: Use av_sat_add/sub64() in fracval handling
avformat/flvdec: Check for avio_read() failure in amf_get_string()
avformat/flvdec: Check for nesting depth in amf_skip_tag()
avformat/flvdec: Check for nesting depth in amf_parse_object()
avformat/asfdec_o: Check for EOF in asf_read_marker()
avformat/flvdec: Use av_sat_add64() for pts computation
avformat/utils: Check dts - (1<<pts_wrap_bits) overflow
avformat/bfi: Check chunk_header
avformat/ads: Check size
avformat/iff: Check block align also for ID_MAUD
avcodec/utils: Check for integer overflow in get_audio_frame_duration() for ADPCM_DTK
avformat/fitsdec: Better size checks
avformat/mxfdec: Fix integer overflow in next position in mxf_read_local_tags()
avformat/avidec: dv does not support palettes
avformat/dhav: Break out of infinite dhav search loop
libavformat/utils: consider avio_size() failure in ffio_limit()
avformat/nistspheredec: Check bits_per_coded_sample and channels
avformat/asfdec_o: Check size vs. offset in detect_unknown_subobject()
avformat/utils: check for integer overflow in av_get_frame_filename2()
avutil/timecode: Avoid undefined behavior with large framenum
avformat/mov: Check a.size before computing next_root_atom
avformat/sbgdec: Reduce the amount of floating point in str_to_time()
avformat/mxfdec: Free all types for both Descriptors
uavformat/rsd: check for EOF in extradata
avcodec/wmaprodec: Check packet size
avformat/dhav: Check position for overflow
avcodec/rasc: Check frame before clearing
avformat/vividas: Check number of audio channels
avcodec/alsdec: Fix integer overflow with quant_cof
avformat/mpegts: Fix argument type for av_log
avformat/cafdec: clip sample rate
avcodec/ffv1dec: Fix off by 1 error with quant tables
avformat/mpegts: Increase pcr_incr width to 64bit
avcodec/utils: Check bitrate for overflow in get_bit_rate()
avformat/mov: Check if hoov is at the end
avcodec/hevc_ps: check scaling_list_dc_coef
avformat/iff: Check data_size
avformat/matroskadec: Sanity check codec_id/track type
avformat/rpl: Check the number of streams
avformat/vividas: Check sample_rate
avformat/vividas: Make len signed
avcodec/h264idct_template: Fix integer overflow in ff_h264_chroma422_dc_dequant_idct()
avformat/dsfdec: Check block_align more completely
avformat/mpc8: Check remaining space in mpc8_parse_seektable()
avformat/id3v2: Sanity check tlen before alloc and uncompress
avformat/vqf: Check len for COMM chunks
avformat/mov: Avoid overflow in end computation in mov_read_custom()
avcodec/hevc_cabac: Limit value in coeff_abs_level_remaining_decode() tighter
avformat/cafdec: Check the return code from av_add_index_entry()
avformat/cafdec: Check for EOF in index read loop
avformat/cafdec: Check that bytes_per_packet and frames_per_packet are non negative
avformat/mpc8: correct integer overflow in mpc8_parse_seektable()
avformat/mpc8: correct 32bit timestamp truncation
avcodec/exr: Check ymin vs. h
avformat/avs: Use 64bit for the avio_tell() output
avformat/wavdec: More complete size check in find_guid()
avcodec/mv30: Use unsigned in idct_1d()
avformat/iff: Check size before skip
avformat/rmdec: Check for EOF in index packet reading
avcodec/vp3dsp: Use unsigned constant to avoid undefined integer overflow in ff_vp3dsp_set_bounding_values()
avformat/icodec: Check for zero streams and stream creation failure
avformat/icodec: Factor failure code out in read_header()
avformat/bintext: Check width
avformat/sbgdec: Check that end is not before start
avformat/lvfdec: Check stream_index before use
avformat/au: cleanup on EOF return in au_read_annotation()
avformat/mpegts: Limit copied data to space
avformat/bintext: Check width in idf_read_header()
avformat/iff: check size against INT64_MAX
avformat/vividas: improve extradata packing checks in track_header()
avformat/paf: Check for EOF in read_table()
avformat/gxf: Check pkt_len
avformat/aiffdec: Check packet size
avformat/concatdec: use av_strstart()
avformat/wavdec: Refuse to read chunks bigger than the filesize in w64_read_header()
avformat/rsd: Check size and start before computing duration
avformat/vividas: better check of current_sb_entry
avformat/iff: More completely check body_size
avformat/vividas use avpriv_set_pts_info()
avformat/xwma: Check for EOF in dpds_table read code
avcodec/utils: Check sample rate before use for AV_CODEC_ID_BINKAUDIO_DCT in get_audio_frame_duration()
avcodec/dirac_parser: do not offset AV_NOPTS_OFFSET
avformat/rmdec: Make expected_len 64bit
avformat/pcm: Check block_align
avformat/lrcdec: Clip timestamps
avutil/mathematics: Use av_sat_add64() for the last addition in av_add_stable()
avformat/electronicarts: Check for EOF in each iteration of the loop in ea_read_packet()
avformat/ifv: Check that total frames do not overflow
avcodec/vp9dsp_template: Fix some overflows in iadst8_1d()
avcodec/fits: Check bscale
avformat/nistspheredec: Check bps
avformat/jacosubdec: Use 64bit inside get_shift()
avformat/genh: Check block_align
avformat/mvi: Check count for overflow
avcodec/magicyuv: Check slice size before reading flags and pred
avformat/asfdec_f: Check for negative ext_len
avformat/bethsoftvid: Check image dimensions before use
avformat/genh: Check block_align for how it will be used in SDX2_DPCM
avformat/au: Check for EOF in au_read_annotation()
avformat/vividas: Check for zero v_size
avformat/segafilm: Do not assume AV_CODEC_ID_NONE is 0
avformat/segafilm: Check that there is a stream
avformat/wtvdec: Check dir_length
avformat/ffmetadec: finalize AVBPrint on errors
avcodec/decode/ff_get_buffer: Check for overflow in FFALIGN()
avcodec/exr: Check limits to avoid overflow in delta computation
avformat/boadec: Check that channels and block_align are set
avformat/asfdec_f: Check name_len for overflow
avcodec/h264idct_template: Fix integer overflow in ff_h264_chroma422_dc_dequant_idct()
avformat/sbgdec: Check for timestamp overflow in parse_time_sequence()
avcodec/aacdec_fixed: Limit index in vector_pow43()
avformat/kvag: Fix integer overflow in bitrate computation
avcodec/h264_slice: fix undefined integer overflow with POC in error concealment
avformat/rmdec: sanity check coded_framesize
avformat/flvdec: Check for EOF in amf_parse_object()
avcodec/mv30: Fix multiple integer overflows
avcodec/smacker: Check remaining bits in SMK_BLK_FULL
avcodec/cook: Check subpacket index against max
avcodec/utils: Check for overflow with ATRAC* in get_audio_frame_duration()
avcodec/hevcpred_template: Fix diagonal chroma availability in 4:2:2 edge case in intra_pred
avformat/icodec: Change order of operations to avoid NULL dereference
avcodec/exr: Fix overflow with many blocks
avcodec/vp9dsp_template: Fix integer overflows in idct16_1d()
avcodec/ansi: Check initial dimensions
avcodec/hevcdec: Check slice_cb_qp_offset / slice_cr_qp_offset
avcodec/sonic: Check for overread
avformat/subviewerdec: fail on AV_NOPTS_VALUE
avcodec/exr: Check line size for overflow
avcodec/exr: Check xdelta, ydelta
avcodec/celp_filters: Avoid invalid negation in ff_celp_lp_synthesis_filter()
avcodec/takdsp: Fix negative shift in decorrelate_sf()
avcodec/dxtory: Fix negative stride shift in dx2_decode_slice_420()
avformat/asfdec_f: Change order or operations slightly
avformat/dxa: Use av_rescale() for duration computation
avcodec/vc1_block: Fix integer overflow in ac value
avcodec/mv30: Fix several integer overflows in idct_1d()
avformat/iff: Check data_size not overflowing int64
avcodec/dxtory: Fix negative shift in dx2_decode_slice_410()
avcodec/sonic: Check channels before deallocating
avformat/vividas: Check for EOF in first loop in track_header()
avformat/wvdec: Check rate for overflow
avcodec/ansi: Check nb_args for overflow
avformat/wc3movie: Cleanup on wc3_read_header() failure
avformat/wc3movie: Move wc3_read_close() up
avcodec/tiff: Fix default white level
avcodec/diracdsp: Fix integer anomaly in dequant_subband_*
avutil/fixed_dsp: Fix integer overflows in butterflies_fixed_c()
avcodec/mv30: Check remaining mask in decode_inter()
avcodec/wmalosslessdec: Check remaining space before padding and channel residue
avformat/cdg: Fix integer overflow in duration computation
avcodec/mpc: Fix multiple numerical overflows in ff_mpc_dequantize_and_synth()
avcodec/agm: Fix off by 1 error in decode_inter_plane()
avformat/electronicarts: Check if there are any streams
avcodec/ffwavesynth: Fix integer overflow in wavesynth_synth_sample / WS_SINE
avcodec/vp9dsp_template: Fix integer overflow in iadst8_1d()
avformat/avidec: Fix io_fsize overflow
avcodec/cfhd: Check transform type
avcodec/tiff: Check jpeg context against jpeg frame parameters
avcodec/tiff: Restrict tag order based on specification
avcodec/tiff: Avoid abort with DNG RAW TIFF with YA8
avcodec/tiff: Check the linearization table size
avformat/siff: Reject audio packets without audio stream
avformat/mpeg: Check avio_read() return value in get_pts()
avcodec/tiff: Check bpp/bppcount for 0
avcodec/snowdec: Sanity check hcoeff
avformat/mov: Check comp_brand_size
avformat/ape: Error out in case of EOF in the header
avcodec/alac: Check decorr_shift to avoid invalid shift
avcodec/tdsc: Fix tile checks
opusdec: do not fail when LBRR frames are present
configure: update copyright year
avfilter/vf_framerate: fix infinite loop with 1-frame input
avformat/url: Change () position in ff_make_absolute_url()
avformat/mpegts: make sure mpegts_read_header always stops at the first pmt
avformat/alp: fix handling of TUN files
avformat/argo_asf: fix handling of v1.1 files
swscale/x86/yuv2rgb: fix crashes when loading alpha from unaligned buffers
lavf/url: fix relative url parsing when the query string or fragment has a colon
avformat/libsrt: fix cleanups on failed libsrt_open() and libsrt_setup()
avcodec/cuviddec: backport extradata fixes
avcodec/cuviddec: handle arbitrarily sized extradata
lavf/srt: fix build fail when used the libsrt 1.4.1
avformat/libsrt: close listen fd in listener mode
lavf/url: rewrite ff_make_absolute_url() using ff_url_decompose().
lavf/url: add ff_url_decompose().
avcodec/cbs_av1: fix setting FrameWidth in frame_size_with_refs()
avcodec/cbs_av1: use a more appropiate AV1ReferenceFrameState pointer variable name
avcodec/cbs_av1: fix handling reference frames on show_existing_frame frames
avcodec/cbs_av1: infer frame_type in show_existing_frame frames earlier
avcodec/cbs_av1: add OrderHint to CodedBitstreamAV1Context
avcodec/cbs_av1: infer frame_type when parsing a show_existing_frame frame
cbs_av1: Fix test for presence of buffer_removal_time element
avcodec/cbs_av1: fix storage size for render_{width,height}_minus_1
lavc: Lower MediaFoundation audio encoder priority.
x86/yuv2rgb: fix crashes when storing data on unaligned buffers
checkasm/vf_blend: use the correct depth parameters to initialize the blend modes
x86/vf_blend: fix warnings about trailing empty parameters
x86/h264_deblock: fix warning about trailing empty parameter
avutil/x86inc: fix warnings when assembling with Nasm 2.15
Release v1.6.3.
* libEBML v1.4.2 is now required.
* Added classes for new track header elements:
"KaxFlagHearingImpaired", "KaxFlagVisualImpaired",
"KaxFlagTextDescriptions", "KaxFlagOriginal" and
"KaxFlagCommentary".
Version 53.0.0 "Fool's Gold"
New features and enhancements
* mkvmerge: AVI reader: added support for reading the video aspect ratio from
the video properties header (`vprp` chunk) if present and setting the
display dimensions accordingly.
* mkvmerge: MP4 reader: for h.264/AVC tracks that don't have an
`AVCConfigurationBox` (`avcC` atom) in their sample description (`stsd`)
atom or whose `avcC` atom contains no content `mkvmerge` will now re-derive
the `AVCConfigurationBox` from the bitstream.
* mkvextract: mkvextract will now check if any of the destination file names
is the same as the source file name and abort with an error if that's the
case.
* MKVToolNix GUI: when querying the user for a file name for saving things
(e.g. multiplexer settings or an attachment in the header editor), the
automatically suggested file name will now be based on the
situation-specific file names (e.g. the destination file name for
multiplexer settings or the attachment's name when saving an attachment in
the header editor) instead of the directory's name.
* MKVToolNix GUI: multiplexer: when deriving track languages from file names
the GUI will now select the right-most match instead of the left-most
one. For example, "La.vie.en.rose.(fr).srt" will now be detected as French
(fr) instead of English (en).
* MKVToolNix GUI: preferences: the items in the "pre-defined …" lists can now
be renamed by double-clicking with the mouse or pressing the F2 key.
* Windows installer: the `bluray_dump` command-line utility will be installed
into the `tools` sub-directory. `bluray_dump` can read & dump certain file
types used on Blu-rays: `.mpls` playlists, `.clpi` clip information
databases, `.bdmv` index files, `bdmt_….xml` disc library databases and
`tnmt_….xml` track & chapter name databases.
Bug fixes
* mkvmerge: stretching chapter timestamps with `--chapter-sync` now works
correctly with floating point values including fractions of floating point
numbers (e.g. `12.3/45.67`). The tooltips in the GUI have been adjusted
accordingly.
* mkvmerge: MPEG 1/2 video handling: the "default duration" header field was
often half the value it actually should be, resulting in all video frames
having an explicit block duration with the correct value. This has been
fixed with a patch by Tom Yan.
* mkvmerge: MPEG 1/2 video handling: the data stored in `Codec private` and
`Codec state` doesn't contain extensions other than sequence & sequence
display extensions anymore. Fix by Tom Yan.
* mkvmerge: tag handling: when remuxing a Matroska file with the
`--no-track-tags`, existing `SOURCE_ID` track tags are now skipped, too.
* MKVToolNix GUI: multiplexer: the drop-down boxes with pre-defined track
names now follow the order set in the preferences instead of sorting the
entries alphabetically.
Changes between 3.0.11.1 and 3.0.12:
----------------------------------
Access:
* Add new RIST access module compliant with simple profile (VSF_TR-06-1)
Access Output:
* Add new RIST access output module compliant with simple profile (VSF_TR-06-1)
Demux:
* Fixed adaptive's handling of resolution settings
Audio output:
* Fix audio distortion on macOS during start of playback
Video Output:
* Direct3D11: Fix some potential crashes when using video filters
macOS:
* Add native support for Apple Silicon / ARM-64
* Visual UI adaptations for macOS Big Sur
* Fix displaying EQ bands in the UI depending on which frequency
presets are set for the EQ in advanced preferences
* Fix UI issues in bookmarks window
Misc:
* Several fixes in the web interface, including privacy and security
improvements
* Update YouTube and Vocaroo scripts
TheoraPlay is a simple library to make decoding of Ogg Theora videos
easier.
A tiny example to pull data out of an .ogv file is about 50 lines of C
code, and a complete SDL-based media player is about 300 lines of code.
TheoraPlay is optimized for multicore CPUs, and is designed to be
programmer-friendly. You will need libogg, libvorbis, and libtheora, of
course, but then you just drop a .c file and two headers into your
project and you're ready to hook up video decoding, without worrying
about Ogg pages, Vorbis blocks, or Theora decoder state.
Places TheoraPlay can be found in use: - Shank. - Crypt of the
Necrodancer. - 20XX. - FNA.
0.8.0
Added additional parsing for simple CUE-OUT with Duration key
Added _cueout_duration to _parse_cueout
Added AVERAGE-BANDWIDTH to IFramePlaylist
Added VIDEO-RANGE to IFramePlaylist
Added new playlist delta attributes from v10
Added HDCP-LEVEL to StreamInfo and IFramePlaylist
Changelog:
26.1.2 macOS Hotfix Changes
Browser sources on macOS now support hardware accelerated rendering on macOS 10.15 and above, reducing resource usage
Fixed a crash on startup (by updating CEF to version 4183)
26.1.1 Hotfix Changes
Fixed macOS 10.13 crash on startup [PatTheMav]
Fixed decklink devices not working correctly [DDRBoxman]
Fixed browser source crashing on certain versions of macOS [eric]
Fixed buttons not displaying text correctly on context bar when using Acri theme [Warchamp7]
Fixed a bug with slideshow source where if you use randomize and have "restart when visible" active, it would not transition on activate [cg2121]
Fixed a bug where duplicated scene items would not have their lock states duplicated [cg2121]
Fixed a bug where the default canvas resolution would be scaled incorrectly if fractional scaling was enabled [RytoEX]
Fixed jack on Linux deadlocking on close [marcan]
Fixed jack on Linux going out of sync sometimes [marcan]
Added webp to image formats that you can browse when using the image source [f3ndot]
26.1 New Features and Additions
Added Virtual Camera output on macOS [johnboiles/PatTheMav]
Added Virtual Camera output on Linux (requires v4l2loopback-dkms) [catxfish/cg2121]
Added the ability to use a separate audio track for the VOD when using Twitch [Jim]
If using Simple output mode, enable "Enable Advanced Encoder Settings", and enable "Twitch VOD Track (Uses Track 2)". Twitch VOD output will then be on audio track 2
If using Advanced output mode in the Streaming tab, enable "Twitch VOD Track" and select the track you'd like to use for it
Special thanks to Twitch for assisting during the development of this feature
Added OpenBSD support [grayed]
Added the ability to ingest captions coming from Decklink devices via "Decklink Captions" from the Tools menu [DDRBoxman]
Added hardware decoding options for stinger transitions [WizardCM]
Added an option to duplicate filters in the right-click context menu of filters [exeldro]
Added ability to copy and paste a single filter between sources [cg2121]
Added HLS support and ingests for YouTube [ushadow]
Added a Replay buffer save event to the frontend API [hgonomeg]
26.1 Improvements/Tweaks
Updated dependencies on Windows and macOS (such as x264 and Qt) to their latest versions for the latest performance improvements [Jim]
On Linux, the program will now detect other instances that are currently running and warn the user about running more than one copies at a time [clockley]
When creating a new profile, you will be now be given the option to run the auto-configuration wizard [JohannMG]
Changed the "Enforce Streaming Service Bitrate" to "Ignore streaming service setting recommendations", moved it to the Streaming section of the Settings window, and made it so it now affects both Simple and Advanced output modes. [Jim]
Maximum limitations for streaming services are now shown in the Streaming section of the Settings window [Jim]
Streaming services may now apply resolution and framerate limits on streams to their services [Jim]
26.1 Bug Fixes
Fixed a bug where the "Save Replay" button would stay highlighted after being clicked [offthegrid-mike]
Fixed a bug where the Media source would have unusual lag playing back certain media files (particularly WMV files) [Jim]
Fixed an issue where Facebook streaming would allow you to select resolutions/framerates that aren't supported [Jim]
Fixed certain connection issues with SRT/mpegts [pkviet]
Fixed a bug where you could disable the Replay Buffer even if it was currently active [Scrxtchy]
Fixed a bug where renaming a source would not return keyboard/mouse focus back to the list [jberenhaus]
Fixed an issue where 'Paste Filters' on sources didn't work in all situations [WizardCM]
Fixed an issue where Virtual Camera & Source Toolbar hotkeys would be duplicated when switching profiles [WizardCM]
Fixed an issue with removing signal handlers in Lua [Scrxtchy]
Fixed a potential hang when repeatedly selecting and deselecting display capture sources on Windows [exeldro]
Fixed an issue where the replay buffer could use settings from CQP mode in CBR mode [R1CH]
Fixed an issue where certain recordings could not be remuxed (typically from the QSV encoder) [R1CH]