Windows' execute function works OK if the path to an .exe is unquoted
and contains a single space, probably to account for "C:\Program
Files\...". However, if the path contains two spaces then the
application to execute will not be found crashing mmg which did not
anticipate that mkvmerge cannot be spawned.
Fix for bug 419.
1. memory_c::get() has been renamed to
memory_c::get_buffer(). counted_ptr<>::get() has been renamed to
counted_ptr<>::get_object(). This has been done in order to make their
use a lot less ambiguous.
2. Added functions memory_c::is_allocated() and
counted_ptr<>::is_set() which replace constructs like "NULL ==
memory_c::get()".
3. Renamed counted_ptr<>::unique() to counted_ptr<>::is_unique() and
memory_c::unique() to memory_c::is_unique() for consistency with the
functions renamed in 1.
4. Refactored several files to comply with my coding rules.
The AVC OGM demuxer is now derived from the general MS compatibility
video OGM demuxer because that one already calculates the timecodes
for each packet and passes them on to the packetizer. The AVC
packetizer needs either timecodes provided by the demuxer or it must
be allowed to generate its own.
Fix for bug 418.
The code already wanted to do exactly that, but it didn't take into
account that the track_info_t structure's language element contains
the full entry as it appears in the drop down box.
Fix for bug 420.
The flush decision was based on NVOPs as well. As most NVOPs fake to
be P frames the flush decision was true, but the timecodes were not
ready to cope with it. Therefore timecodes were generated for each
NVOP, and that resulted in stuttering video playback.
The decision whether or not to merge two NALUs into a single I frame
needed to take the "first macroblock in frame" counter into
account. Otherwise a single I frame might be detected as being two or
more separate frames if one of the other conditions for NALU
separation was met. This resulted in garbled playback for the current
group of pictures as well as in wrong timestamps being issued to
following frames.
Fix for bug 415.