updateTracksComboBox() was called after the indices are updated, but before the
row being removed is actually removed from the trackLV structure. This caused
the new generated track descriptions to refer to invalid tracks.
Indices in both combo boxes must be updated, since an audio track index might
have changed when a subtitle track is removed and vice versa : there is only one
array which holds information about tracks that these combo boxes reference via
the data contained in their items' UserRoles.
tsMuxer currently sets back the DTS (Decoding Time Stamp) during the muxing if the frame depth (i.e. difference between encoded picture number and decoded picture number) is found >1.
This is wrong: the frame depth should be checked -and the DTS set back- before the muxing commences.
This commits solves this.
tsMuxer currently detects the tracks from the first playlist (i.e. m2ts/clpi) of the mpls.
There can be cases where the subsequent playlists of the mpls contain additional audio/subtitle tracks.
This patch allows tsMuxer to detect the tracks from the playlist having the largest number of tracks.
Fixes#317.
See issue #329 : when a track starts after the first 16 MB in the m2ts, it is not detected.
It is therefore proposed to increase the detect buffer (i.e. size of scanned chunk) to 64 MB.
BluRay m2ts failure for linux 64-bit tsMuxeR
This bug was caused by using memcpy() in metaDemuxer.cpp with
overlapping buffers. Use memmove() instead. The other
changes were the result of a bench check of the sources.
This fixes (#316)
Co-authored-by: Craig Hadady <chadady@gmail.com>
The previous patch #251 solved one issue with double HEVC tracks, but created various issues with other tracks e.g. https://forum.doom9.org/showthread.php?p=1918290#post1918290
This patch puts back initialization of m_lastDTS to 0. I'll work out an alternative way to solve the double HEVC track DTS issue.
waveFormatPCMEx->nBlockAlign = m_channels * waveFormatPCMEx->wBitsPerSample / 8;
waveFormatPCMEx->wBitsPerSample = m_bitsPerSample == 20 ? 24 : m_bitsPerSample;
=> nBlockAlign is calculated with an incorrect wBitsPerSample value, as this wBitsPerSample value is defined on the next line only !