Commit Graph

1027 Commits

Author SHA1 Message Date
Moritz Bunkus
fe67b7c0cb Show a message even if chapter validation succeeded.
Fix for bug 410.
2009-06-09 21:31:51 +02:00
Moritz Bunkus
7930c89c9d Ignore chapter recoding errors for MP4 files in identification mode.
MP4 files with chapters may contain non-UTF-8 encoded
strings. Processing those strings as UTF-8 may cause mkvmerge to abort
with a message abort invalid UTF-8 sequences.

This is bad in identification mode because here the actual chapter
names are not needed, only the number of entries.

Fix for bug 408.
2009-06-09 17:01:40 +02:00
Moritz Bunkus
a61237f991 Bumped the version number, added the release message, set the release code name. 2009-06-07 11:04:28 +02:00
Moritz Bunkus
aba3a585e4 TrueHD/MLP audio in MPEG program streams only has four instead of six bytes header data
Fix for bug 394.
2009-06-06 21:48:44 +02:00
Moritz Bunkus
4398dc1c69 Corrected the "operator <" logic for file_id_t structures.
The device number has precendence over the inode number. Therefore the
inode numbers must only be compared if the device numbers are equal.

This resulted in some strange cases in which the std::map<> object for
which file_id_t structures were used as keys was removing/inserting
the wrong elements. This caused crashes in rare cases, e.g. for access
to files on VFAT formatted file systems because the device numbers
were higher than ones for ext3 or devfs (think "/dev/urandom").
2009-06-06 17:25:06 +02:00
Moritz Bunkus
8139108c0f Improved the control over which tags get copied from a source file to the output file
The old option --no-tags" was replaced with the new options
"--no-global-tags" which causes global tags not to be copied and
"--no-track-tags" which causes track specific tags to not be
copied. The new option "--track-tags" can be used to select tracks for
which tags will be copied. The default is still to copy all existing
tags.
2009-05-31 21:08:12 +02:00
Moritz Bunkus
1c5f7427e8 Updates. 2009-05-31 20:44:20 +02:00
Moritz Bunkus
d13b70479e Updates to the previous commit. 2009-05-31 20:28:45 +02:00
Moritz Bunkus
fd7ce07549 Put the first sequence header found in MPEG-1/2 tracks into the CodecPrivate element again.
This was removed in a3edc83512 in a fix
to not remove the sequence headers from the bitstream. However,
putting the first sequence header into CodecPrivate while still not
removing the sequence headers from the bitstream improves
compatibility with some existing parsers (MediaPlayer Classic
HomeCinema).
2009-05-31 01:06:59 +02:00
Moritz Bunkus
2c585e5917 Removed the check if the user has added files/tracks before starting to mux.
This way creating chapter-only files will be possible with mmg,
too. It has already been possible with mkvmerge itself.

Fix for bug 402.
2009-05-31 00:16:50 +02:00
Moritz Bunkus
9de93e4c32 Improved the timecode calculation for AC3 tracks
If the source file contains the same timecode for consecutive packets
then mkvmerge will extrapolate timecodes for all but the first packets
in the sequence.

Fix for bug 403.
2009-05-30 18:19:38 +02:00
Moritz Bunkus
dc33018a67 Fix for an endless loop: "resync()" returns 0 on error which let the search continue at the start of the buffer 2009-05-27 15:26:01 +02:00
Moritz Bunkus
3e50df1f17 Fixed MPEG program stream detection for packet sizes other than 188 bytes.
The problem was that the search position was not reset for each potential
packet size. Therefore other packet sizes always only found one hit for
the TS start code.
2009-05-26 22:34:48 +02:00
Moritz Bunkus
649de6dfb4 Improved detection of wrong padding packet lengths in MPEG program streams.
Fix for bug 393.

Explanation by Todd Schmuland:

I looked at his mpeg file and my assumption of packets always being on
a page boundary was incorrect.  His mpeg isn't perfect (each specified
audio packet length is 16 bytes short of what it really is, hence all
the lost sync messages), but the parser is capable of dealing with it.
So I have to remove the erroneous page boundary limitation.

Attached is the fixed r_mpeg_ps.cpp.  The new behavior now is thus.
Whenever a pad packet is encountered, the code now skips forward the
packet length specified and checks to see if the next header is there.
If it is then great, if not then it searches for the next header and
calculates the correct pad packet length.  This removes the page
boundary limitation.  I tested it on Transformers and it works well.
I also tested it against his mpeg and it works as well.
2009-05-24 16:45:18 +02:00
Moritz Bunkus
bafff5b541 Added support for the FourCC "XVID" in QuickTime files. 2009-05-23 22:57:29 +02:00
Moritz Bunkus
d7e8b2cb52 Added support for the FourCC ".mp3" in QuickTime files. 2009-05-23 22:17:55 +02:00
Moritz Bunkus
a08bd93a84 Dismiss the job dialog if the user presses 'return' on Windows, too. 2009-05-23 01:54:15 +02:00
Moritz Bunkus
7085fc9e6c Set the output file name's extension automatically for each file added.
Fixed the behaviour of how mmg sets the output file name automatically
if the option is enabled. If the user adds more than one file then the
extension of the output file name is set each time a file is added and
not only when the first one is. The full file name and path will only
be set when the first file is added.

Fix for bug 391.
2009-05-22 23:49:17 +02:00
Moritz Bunkus
d9ebaa711d Fixed a grammar mistake. 2009-05-22 18:59:32 +02:00
Moritz Bunkus
29ce2003d3 Bumped the version number; set the release code name; added the release message. 2009-05-22 13:34:12 +02:00
Moritz Bunkus
81bff258cc Updates. 2009-05-21 19:30:06 +02:00
Moritz Bunkus
93b06f3a0e Added a translation to Chinese Traditional by Dean Lee (see AUTHORS). 2009-05-17 14:20:42 +02:00
Moritz Bunkus
d102d760a5 Drop surplus timecodes of dropped frames after flushing the frame queue when converting from VfW to native MPEG-4 part 2 storage.
Fix for bug 236.
2009-05-17 12:14:36 +02:00
Moritz Bunkus
842fdee9ba Honor the '--redirect-output' in the 'chapters', 'cuesheet' and 'tags' extraction modes. 2009-05-16 19:30:05 +02:00
Moritz Bunkus
db7e9b9471 Fixed a typo. 2009-05-16 17:40:25 +02:00
Moritz Bunkus
ba82e6bf3e Added the new hack vobsub_subpic_stop_cmds to mmg including a description. 2009-05-16 16:21:05 +02:00
Moritz Bunkus
482f91bca2 Set the output file name automatically for each file added as long as it is not changed manually.
Fix for bug 229.
2009-05-15 09:40:22 +02:00
Moritz Bunkus
938d4ead50 Improved support for QuickTime audio tracks with version 2 of the STSD sound descriptor. 2009-05-14 22:09:47 +02:00
Moritz Bunkus
93f826dd4e Enable the "remove all" button if there are files left to be removed. 2009-05-14 09:28:03 +02:00
Moritz Bunkus
2b1b065840 Try to detect invalid padding packet lengths in MPEG program streams.
Patch by Todd Schmuland (see AUTHORS).

His explanation:

I was muxing a DVD and mkvmerge complained about losing sync while
parsing the vob.  I checked to see what was happening and discovered
the length of a 00 00 01 BE padding packet was way too long.  This
resulted in several packets being skipped over and therefore caused a
gap in the resulting mkv.  I've seen this before where the packet
length specified in a 00 00 01 BE padding packet is incorrect.

I've made adjustments to the r_mpeg_ps.cpp code to detect when 00 00
01 BE padding packets have the wrong length specified.  Padding
packets should always fill the gap to the next 2048 (800 hex) page in
the file.  Now the code will detect lengths that are way too long, or
lengths that are just under or just over what they should be, and
correct it.

I also changed it so that with one -v switch, you won't get 100s of
mpeg_ps: parse_packet failed messages anymore.  Adjusted padding
packet lengths will be indicated with one -v switch, but now good 00
00 01 BE padding stream packets and 00 00 01 BF private 2 stream
packets won't be output as failing anymore.

I was finally able to get a good mkv mux of the DVD with the attached
r_mpeg_ps.cpp file.

I just did another DVD and it had a similar bad padding stream packet.
Packet length in vob was 44036 but should only be 1918.  The new
r_mpeg_ps detected and corrected it, whereas the old code would have
skipped (44036-1918)/2048 = ~21 good packets of video/audio.
2009-05-14 09:20:39 +02:00
Moritz Bunkus
9a52aab580 Only print the "chapter charset missing" warning if the title or chapter information is actually used. 2009-05-14 09:11:48 +02:00
Moritz Bunkus
8c7d0a737b The VobSub extraction was made more compatible with most applications.
Fix for bug 245. Patch by Todd Schmuland (see AUTHORS).

Explanation from Todd:

I tried using mkvextract to get VobSub tracks out of a mkv to make sure I
muxed in the correct subtitle stream.  What I noticed is that programs like
Subtitle Creator and VobSubStrip would error out on one particular sub file.
 After looking into it, the issue is in how mkvextract handles padding
lengths of 1 to 7.

There are two methods, the one mkvextract currently uses is to use the 00 00
01 BA packet where the 3 least significant bits of the last header byte
indicate how many padding FF bytes follow. There's nothing wrong with this,
however, many programs don't decode this properly and error out since they
are expecting the next bytes to be 00 00 01.

The other method is to pad the 00 00 01 BD packet header with FF bytes and
simply increase the header length byte to include the pad count.  For
example where padding = 5:
method 1
00 00 01 BA 44 32 4C 46 44 01 01 89 C3 FD FF FF FF FF FF
00 00 01 BD 07 E7 81 80 05 21 0C 93 11 91 <payload>

becomes

method 2
00 00 01 BA 44 32 4C 46 44 01 01 89 C3 F8
00 00 01 BD 07 EC 81 80 0A 21 0C 93 11 91 FF FF FF FF FF <payload>

Notice the 00 00 01 BD total packet length increased from 07E7 to 07EC and
the packet header length increased from 05 to 0A.  The benefit of this is
that the 00 00 01 BD header length includes the pad length with no
additional work by a program's decoder, so the SUB file is always properly
parsed while decoding.  In fact the DVD this particular VobSub came from
used method 2.
2009-05-13 20:02:19 +02:00
Moritz Bunkus
844d2fe3f6 Fixed support for code pages not supported by iconv on Windows.
Some Windows installation use code pages as its ANSI code page
that are not supported by the iconv library (e.g. code page 720).
These have to be converted using Windows' own MultiByteToWideChar
and WideCharToMultiByte functions.

Fix for bug 376.
2009-05-13 19:18:30 +02:00
Moritz Bunkus
503f2f9d39 Added support for MPEG-1/-2 video in AVI files.
Fix for bug 388.
2009-05-12 18:37:01 +02:00
Moritz Bunkus
8d7774aff5 Fixed segfaults when appending Dirac, VC-1 and DTS track types.
generic_packetizer_c::set_headers() must not be called for appended
files. If it is not called then track_entry is NULL before
generic_packetizer_c::connect() is called. Therefore appended files
must not use track_entry; calls to generic_packetizer_c::set_headers()
hint at wrong usage.
2009-05-11 23:26:33 +02:00
Moritz Bunkus
7bd47a45ea Output a friendly error message instead of crashing if a file is locked. 2009-05-10 23:56:43 +02:00
Moritz Bunkus
32174e37e3 Patch the SPU length field if it differs from the packet length.
There are often off-by-one cases in which the SPU length field is larger
than the actual packet. Most playback applications ignore that error
when reading external VobSub files but skip the whole packet if it comes
from a Matroska file.

Fix for bug 383.
2009-05-10 22:39:47 +02:00
Moritz Bunkus
8a072ba704 Added support for reading chapters from MP4 files.
Fix for bug 385.
2009-05-10 18:37:18 +02:00
Moritz Bunkus
ed5e761cfb Bumped the version number. Added the release message. Set the release codename. 2009-05-09 11:08:44 +02:00
Moritz Bunkus
96208ca62b Added a translation to Chinese (simplified) by Dean Lee. 2009-05-07 10:46:30 +02:00
Moritz Bunkus
621c3d2323 Added support for AC3 tracks in MP4 files with the FourCC "sac3".
Fix for bug 384.
2009-05-07 09:25:59 +02:00
Moritz Bunkus
62cca72335 Allow the user to change the FPS of all video tracks. 2009-05-07 08:49:20 +02:00
Moritz Bunkus
a675be260f Read all MPEG packets from VobSub files
The last packet was not read because off an off-by-one error:
for the last packet the reader was accessing after the end of
the vector resulting in a file position member of 0.

Patch by Todd Schmuland.
2009-05-06 22:48:15 +02:00
Moritz Bunkus
468dec7039 Added "60000/1001" as an option to the "FPS" drop down box. 2009-05-03 22:53:06 +02:00
Moritz Bunkus
6a9d001ebf Ignore certain "selection changed" events in the header editor when the whole list is updated.
This causes an old page to be shown on Windows rendering the new pages inaccessible.
Fix for bug 372.
2009-04-29 19:22:12 +02:00
Moritz Bunkus
f78d84da83 Merge branch 'master' of ssh://git.bunkus.org/~/mkvtoolnix
Conflicts:

	ChangeLog
	po/de.po
2009-04-27 23:13:51 +02:00
Moritz Bunkus
a019b91db3 Added an option for clearing all inputs after a successful muxing run. 2009-04-27 23:10:09 +02:00
Moritz Bunkus
5f7d53b56e Made the AAC detection code stricter.
The code now requires five consecutive identical AAC headers
instead of just two arbitrary headers. This fixes mis-detection

issues, e.g. those of bugs 373 and 374.
2009-04-25 13:13:48 +02:00
Moritz Bunkus
c1f2d2d6ba Do not subtract the timecode offset from the special value "-1" which means "no reference".
Fix for bug 371.
2009-04-16 22:36:09 +02:00
Moritz Bunkus
68a8b4c2a5 Fix for outputting timecodes in summary mode.
1. The formatted timecodes for SimpleBlock elements were too small by a factor of 1000000.
2. Output all timecodes with three decimal digits.
2009-04-16 22:27:25 +02:00
Moritz Bunkus
accc1d28c8 Do not overwrite the duration for some track types.
Subtitle and button tracks must preserve their duration even
if an external timecode file is used. Otherwise each subtitle
frame's duration is set to the difference between the next
frame's timecode and the current frame's timecode.

Fix for bug 286.
2009-04-15 16:40:07 +02:00
Moritz Bunkus
402a679f5c Removed the option "always use simple blocks" from the preferences dialog. 2009-04-15 13:10:25 +02:00
Moritz Bunkus
a938f662d1 Updates 2009-04-14 20:36:02 +02:00
Moritz Bunkus
c573ecea0e Set the version number, added the release message, set the release codename. 2009-04-14 19:51:32 +02:00
Moritz Bunkus
1e3c269f66 Enabled the use of SimpleBlock elements by default.
The old hack "use_simpleblock" has been renamed to "no_simpleblock"
which will prohibit the use of SimpleBlock elements.
2009-04-13 16:30:52 +02:00
Moritz Bunkus
f8fbb07ff3 Added support for the "forced track" flag in mmg. 2009-04-11 15:37:24 +02:00
Moritz Bunkus
201c40e7b6 Added support for the "forced track" flag in mkvmerge. Fix for bug 128. 2009-04-11 14:04:51 +02:00
Moritz Bunkus
dee548cbb3 Updates 2009-04-11 11:01:16 +02:00
Moritz Bunkus
c9981c75e5 Changed the behaviour of removing the aspect ratio information from h.264 bitstreams to keeping it.
The new option "--engage remove_bitstream_ar_info" restores the previous behaviour.
2009-04-08 16:47:10 +02:00
Moritz Bunkus
fff0804b59 Fixed aspect ratio handling for AVC/h.264 video.
1. The list of predefined aspect ratios has been extended by three entries (sync with ffmpeg).
2. mkvmerge only tries to read free aspect ratio information if the aspect ratio type indicates it by being 0xff.
2009-04-08 11:50:41 +02:00
Moritz Bunkus
71090a649d Added support for opening files in the header editor by dragging & dropping a file onto its window. 2009-04-05 18:27:43 +02:00
Moritz Bunkus
2dec64c9e9 Added support for reading the track language form QuickTime/MP4 files. 2009-04-05 15:20:53 +02:00
Moritz Bunkus
6de167dd9a Updates 2009-04-05 14:08:31 +02:00
Moritz Bunkus
71c4926f5e Added support for MLP audio. 2009-03-30 16:45:18 +02:00
Moritz Bunkus
03fbe9dfd0 Unescape the letter "c" to a colon. 2009-03-30 10:11:06 +02:00
Moritz Bunkus
854efa5f2b Updates. 2009-03-29 18:02:55 +02:00
Moritz Bunkus
ceebc5be3f Make a copy of the value returned by gettext(). Otherwise a following call will overwrite the previous result. 2009-03-25 23:35:07 +01:00
Moritz Bunkus
b3523a3e3d mkvmerge is run with translations, so mmg has to look for translated strings in its output. 2009-03-25 23:28:56 +01:00
Moritz Bunkus
43f7edc3ae Fix timecode formatting in the job queue.
Also always use wxGetUTCTime() instead of time(NULL) or wxGetLocalTime()
in order to get proper timestamps.

Fix for bug 362.
2009-03-25 17:37:32 +01:00
Moritz Bunkus
5496f2b773 Only return fully-read timestamps.
If the bit_cursor_c throws an exception in the middle of
reading the timestamp then the "timestamp" variable used
to return the timestamp must not have been modified yet.

Fix for bug 337.
2009-03-24 23:09:01 +01:00
Moritz Bunkus
1320636f91 Bumped the version number to 2.6.0, set the release code name, added the release message to the ChangeLog. 2009-03-24 11:51:37 +01:00
Moritz Bunkus
114dfd2bd0 Removed message about wxWidgets 2.8.
Due to the removal of wxTreebook wxWidgets 2.8 is not needed anymore.
2009-03-23 14:13:38 +01:00
Moritz Bunkus
e381505950 Fixes for compilation with mingw/other wxWidgets version. 2009-03-22 00:37:01 +01:00
Moritz Bunkus
0003a1b523 Added documentation for the header editor. 2009-03-22 00:09:11 +01:00
Moritz Bunkus
ca158fde4a Convert simple chapter output to the current output charset instead of always converting to UTF-8.
This allows the user to change the charset with --output-charset.
Before chapters were not converted at all resulting in UTF-8 output
on every system, and --output-charset had no effect on it.

This does not affect the output of XML style chapter files.

Fix for bug 359.
2009-03-21 11:36:19 +01:00
Moritz Bunkus
f63200363b Store QuickTime audio codecs with CodecID "A_QUICKTIME".
QuickTime audio tracks will be stored with the CodecID "A_QUICKTIME".
The CodecPrivate element contains the full "STSD" element from the QuickTime file
(just like V_QUICKTIME). This method is used for all audio tracks which
don't have a well-defined storage spec for Matroska (e.g. AAC, AC3,
MP2/3 are still stored as A_AC3, A_AAC etc). Hopefully a fix for bugs 354 and 357.
2009-03-18 22:57:26 +01:00
Moritz Bunkus
0263e8a2d9 Include the "size" field in the CodecPrivate element for QuickTime tracks.
Fix for bug 355.
2009-03-18 21:05:38 +01:00
Moritz Bunkus
ac2db254ab Added a Japanese translation by Hiroki Taniura. 2009-03-18 20:20:55 +01:00
Moritz Bunkus
1b73f480e8 Fix for little endian PCM tracks in MOV files
Fix for bug 356.
2009-03-17 12:27:57 +01:00
Moritz Bunkus
3d425dfc6f Properly initialize the console locale
Otherwise conversion will fail on non-UTF-8 locales,
e.g. on German or Japanese Windows.
2009-03-15 15:30:20 +01:00
Moritz Bunkus
02b7082846 Updates 2009-03-15 15:08:05 +01:00
Moritz Bunkus
84f70308cd Added a configure check for checking if wxWidgets was compiled with Unicode support. 2009-03-15 15:05:28 +01:00
Moritz Bunkus
cc039f6e1f Update to the ChangeLog. 2009-03-14 14:41:34 +01:00
Moritz Bunkus
f5209cf52d Close the console that is started with mkvinfo in GUI mode on Windows 2009-03-08 14:25:46 +01:00
Moritz Bunkus
4983829ad8 Recode EbmlUnicodeStrings to UTF-8 encoded C strings
mkvinfo expects strings to be encoded in UTF-8 when they're displayed. Fix for bug 353.
2009-03-08 14:03:01 +01:00
Moritz Bunkus
c48917c747 Released v2.5.3. 2009-03-07 11:31:57 +01:00
Moritz Bunkus
4836220b6e Allow locales for which mkvtoolnix does not contain a translation
For locales for which mkvtoolnix does not contain a translation
(e.g. fr_FR, en_AU etc) mkvtoolnix should not abort with an
error message. mmg must not chose such a locale as the parameter
for --ui-language. Fix for bug 338.
2009-03-01 18:13:32 +01:00
Moritz Bunkus
bc3716dcf6 ChangeLog update 2009-03-01 16:15:44 +01:00
Moritz Bunkus
0db67d7425 Increase the attachment ID even if the attachment itself is skipped
Otherwise none of the following attachments are copied,
even if they were requested with --attachments. Fix for
bug 346.
2009-02-28 18:29:12 +01:00
Moritz Bunkus
5523f59962 Release 2.5.2.
Added the release message to the ChangeLog; set the version number;
set the release code name.
2009-02-28 15:11:55 +01:00
Moritz Bunkus
36892b6364 Do not ask the user during silent installs
Do not pop up windows asking the user stuff if the installer
is run in silent mode (with the "/S" switch). Fix for bug 345.
2009-02-28 15:07:52 +01:00
Moritz Bunkus
694fe14916 Added buttons for enabling/disabling all attached files 2009-02-28 14:56:58 +01:00
Moritz Bunkus
bdf46f05e5 Clear the list of attached files
The action "remove all files" must also clear the list of attached files.
The action "File" -> "New" must clear the internal list of attached files
as well as the GUI component.
2009-02-28 13:37:34 +01:00
Moritz Bunkus
4cc69c777e Made the mkvinfo GUI translatable
Made the GUI translatable and added a German translation for it.
2009-02-26 01:13:31 +01:00
Moritz Bunkus
e8fbf923ba Preparations for the translation of mkvinfo 2009-02-25 23:31:15 +01:00
Moritz Bunkus
9cfe9298d9 Use wxBitmapComboBoxes instead of wxComboBoxes on Linux with wxWidgets 2.8.0 and newer
On Linux wxWidgets 2.8.0 and newer uses the GTK combo boxes which suck. A lot.
Therefore mmg uses wxBitmapComboBoxes for wxWidgets >= 2.8.0 on Linux and normal
wxComboBoxes in all other cases. wxBitmapComboBoxes are still drawn by wxWidgets
itself (just like wxComboBoxes before 2.8.0) and offer much better functionality.
Fix for bug 339.
2009-02-25 22:40:12 +01:00
Moritz Bunkus
0e13f24db6 Update to the ChangeLog
Added fix for bug 340.
2009-02-25 19:20:11 +01:00
Moritz Bunkus
bb39519a7e Various fixes for compilation with wxWidgets 2.9. 2009-02-25 18:35:07 +01:00
Moritz Bunkus
57d853188e Release v2.5.1
Added the release message, set the release code name and the version number.
2009-02-22 14:59:55 +01:00
Moritz Bunkus
681fc96e94 Released v2.5.0.
Bumped the version number, added the release message, set the
release codename.
2009-02-21 19:06:46 +01:00
Moritz Bunkus
0e40ad966e Removed superfluous format specifier
The string contained four format specifies but only three arguments.
Possibly a fix for bugs 335 and 336.
2009-02-21 16:07:57 +01:00
Moritz Bunkus
ae6ed71a00 An update to the ChangeLog. 2009-02-19 00:09:47 +01:00
Moritz Bunkus
e473cf5733 Added support for selectively copying attached files in mmg
Added controls on the "attachments" page so that the user can
select which existing attached files he wants copied into the
output file. Removed the checkbox for "no attachments" from the
"input" page.
2009-02-19 00:07:32 +01:00
Moritz Bunkus
1244d00df9 Fixed AAC detection
AAC data which does not start on the first byte was not detected
properly. The reason is that the AAC scanning code did not take
the start offset into account. Also the AAC reader class treated
the offset to the first header being != 0 as an error.
2009-02-06 10:24:46 +01:00
Moritz Bunkus
f86b13a873 Test for NULL.
The chapter editor does not assign an item data element to the root
element. Therefore the function should check if said item data element
is NULL before using it causing a crash otherwise.
2009-01-19 13:53:05 +01:00
Moritz Bunkus
b816b838a4 mkvextract: do not output timecodes in scientific notation
Huge timecodes were output in scientific notation because floating
point numbers were used. Now mkvextract creates the decimal and fractional
parts of the output itself so that the scientific notation will not be used.
2009-01-18 20:42:40 +01:00
Moritz Bunkus
e5d156a07c Releasemessage and version number for 2.4.2 2009-01-17 22:07:31 +01:00
Moritz Bunkus
06fa821050 Fix timecodes in appended subtitle files
If subtitle files are appended to separate video files
(e.g. two AVI and two SRT files) then the subtitle timecodes of
the second and all following subtitle files were based on the last
timecode in the first subtitle file instead of the last timecode in
the first video file. Fix for bug 325.

This bug was introduced in c68a6dfc27
2009-01-15 22:59:17 +01:00
Moritz Bunkus
a228089347 Initialized unused variables
The member variables display_width and display_height have to
be initialized. Otherwise it's up to the compiler which is bad :)
Fix for bug 329.
2009-01-15 19:06:26 +01:00
Moritz Bunkus
949f9ed387 Implemented libmagic based automatich MIME type detection for Windows. 2009-01-08 20:33:19 +00:00
Moritz Bunkus
0d38943c63 Copy attachments from Matroska input files into each output file, not just the first one. Partial fix for bug 324. 2009-01-03 18:20:33 +00:00
Moritz Bunkus
b63d2959d4 Decreased the time needed for parsing the headers and pre-calculating the tables. 2008-12-21 17:07:33 +00:00
Moritz Bunkus
7227888f22 Use Boost based regular expressions for the simple chapter parser and extended it to handle more than 100 chapters. Fix for bug 320. 2008-12-17 18:00:44 +00:00
Moritz Bunkus
5cb339a3cf Update the command line prior to saving it or creating an option file. 2008-12-17 07:26:39 +00:00
Moritz Bunkus
3a6a29c1d5 Revision 3884 removed the variable i from the loop end condition causing segfaults if "--engage native_mpeg4" is used together with MPEG-4 part 2 video. Fix for bug 318. 2008-12-13 22:14:16 +00:00
Moritz Bunkus
54990f47d3 Updates. 2008-12-08 10:13:07 +00:00
Moritz Bunkus
479e6fef94 Added support for handling the pixel aspect ratio in Theora video tracks. 2008-12-05 16:59:10 +00:00
Moritz Bunkus
ddd11a12b4 Set the release codename, the new version and the release message in the ChangeLog. 2008-12-04 20:13:51 +00:00
Moritz Bunkus
7373881957 Updates 2008-12-04 20:02:20 +00:00
Moritz Bunkus
986a7b9827 Calculate with samples and not bytes. That way the int64_t calculation will not overflow as quickly. Otherwise timecodes will be negative, packets will be dropped and PCM tracks are cut off after approximately 8 GB. 2008-12-03 11:54:54 +00:00
Moritz Bunkus
ba35e5bfcd Allow timecodes in SRT files to be formatted not as strictly as before: there may be spaces between colons and digits, and numbers do not have to be exactly two or three digits long. 2008-12-02 14:17:03 +00:00
Moritz Bunkus
d3c8c34fcb Process window events much more often during muxing. 2008-11-28 12:13:24 +00:00
Moritz Bunkus
2c47b7b286 Sync with the official ISO 639-2 standard ( http://www.loc.gov/standards/iso639-2/php/code_list.php ). 2008-11-28 10:40:51 +00:00
Moritz Bunkus
dda1a15cbf Updates 2008-11-04 18:38:13 +00:00
Moritz Bunkus
c68a6dfc27 Introduced another way of calculating the timecodes when appending files and made this one the default. The old way is still useable via "--append-mode track-based" but results in wrong timecodes most of the time. 2008-11-03 15:23:44 +00:00
Moritz Bunkus
0cc32e30cb Added support for reading SRT and SSA/ASS subtitles from AVI files. Fix for bug 64. 2008-11-03 14:08:13 +00:00
Moritz Bunkus
a31e1975af Updates 2008-11-01 14:13:07 +00:00
Moritz Bunkus
9d58941ffa Handle SRT files with missing spaces around the arrow in the timecode lines. 2008-10-29 15:47:25 +00:00
Moritz Bunkus
31e3bd4d7f Recoded from ISO-8859-15 to UTF-8. 2008-10-14 13:12:54 +00:00
Moritz Bunkus
a9244648c7 Output hex as numbers, not characters. 2008-10-13 19:02:48 +00:00
Moritz Bunkus
d6cd6fff27 Added the release message, set the release codename, bumped the version number to 2.4.0. 2008-10-11 17:17:00 +00:00
Moritz Bunkus
2b1dfa06a5 Updates 2008-10-11 08:46:22 +00:00
Moritz Bunkus
c8dbbc3bbe More updates 2008-10-06 20:00:51 +00:00
Moritz Bunkus
ef2f32f39c Updates. 2008-10-06 19:54:49 +00:00
Moritz Bunkus
c1cf76b631 Do not add the same language twice or more to the "language" drop down boxes. 2008-10-04 22:16:55 +00:00
Moritz Bunkus
e66f028515 Call iconv with NULL as the source so that the internal shift registers are written to the output string as well. This is neccessary for some languages, e.g. Hebrew. Fix for bug 302. 2008-10-04 19:31:05 +00:00
Moritz Bunkus
a3a365ef49 Use the timecodes provided by the MPEG PS stream for the VC1 video packets. 2008-09-25 09:54:29 +00:00
Moritz Bunkus
5b8c29cd25 Updates 2008-09-25 09:53:31 +00:00
Moritz Bunkus
c2e680ba3f Added support for SimpleBlocks for timecode extraction mode. 2008-09-22 17:22:37 +00:00
Moritz Bunkus
1f9efc5959 Fixed reading AC3 files bigger than 2 GB. 2008-09-21 15:17:42 +00:00
Moritz Bunkus
c864440f17 Added support for Dirac video tracks. 2008-09-21 14:31:14 +00:00
Moritz Bunkus
650986eb30 Both AVC and MPEG-1/-2 video tracks use the same packet ID in MPEG program streams. The detection for them should not rely on the very first packet encountered being the start of an AVC NALU/MPEG video packet. The detection has been changed to search through enough bytes until several required start codes are found for either type. 2008-09-20 17:53:50 +00:00
Moritz Bunkus
4c97668948 The DTS header finding function requires that enough data is available to determine whether or not it is DTS-HD. This means that the MPEG PS reader has to read enough MPEG PS packets for the DTS header finder to work with. 2008-09-20 15:18:26 +00:00
Moritz Bunkus
2d49a444a5 Added the extensions "evo", "evob" and "vob" to mmg's "add file" dialog. 2008-09-19 20:52:27 +00:00
Moritz Bunkus
cd64533695 Added support for reading VC1 video tracks from MPEG program streams (EVOBs). 2008-09-18 12:13:30 +00:00
Moritz Bunkus
1fe0e40ab0 Added support for 7.1 EAC3 files. 2008-09-17 07:49:39 +00:00
Moritz Bunkus
09ccdefada Revision 3831 (the change to the "--delay" and "--sync" options) caused mkvmerge to no longer respect the delay caused by garbage at the beginning of MP3 and AC3 audio tracks in AVI files. The timecodes of such tracks are now delayed appropriately again. Fix for bug 300. 2008-09-13 16:55:10 +00:00
Moritz Bunkus
524cee0ddc Ignore unknown stream types in Ogg files (the function "demuxing_requested()" doesn't like being called with unknown track types). Fix for bug 299. 2008-09-12 18:16:33 +00:00
Moritz Bunkus
2e02c96599 Added support for extracting Theora video tracks into Ogg files. Fix for bug 298. 2008-09-12 17:04:11 +00:00
Moritz Bunkus
8a4cd7fc44 Theora is fixed for Ogg and Matroska files. 2008-09-12 16:09:07 +00:00
Moritz Bunkus
8897672a70 Fixed the frame type (key or non-key frame) detection for Theora tracks in Ogg files. 2008-09-12 11:01:09 +00:00
Moritz Bunkus
24045e8859 Updates 2008-09-08 15:43:39 +00:00
Moritz Bunkus
79d97f4729 Bumped the version number to 2.3.0, set the release name and added the release message. 2008-09-07 12:49:59 +00:00
Moritz Bunkus
5b437cf369 Improved the timecode calculation for MP3 tracks. If the source file contains the same timecode for consecutive packets then mkvmerge will extrapolate timecodes for all but the first packets in the sequence. Fix for bug 165. 2008-09-06 14:50:38 +00:00
Moritz Bunkus
3713fd72e4 Honor the timecode offsets in MPEG program streams (VOB files). This fixes audio/video desynchronization. Fix for bug 295. 2008-09-03 16:18:50 +00:00
Moritz Bunkus
f1f4b5567f Switched from the PCRE regex library to Boost's one. 2008-08-30 12:45:54 +00:00
Moritz Bunkus
a004bdb233 DTS-in-WAV handling (14 to 16 bit expansion) was flawed. Fix for bug 288. 2008-08-23 14:49:28 +00:00
Moritz Bunkus
d3de460b82 Added support for Vorbis in AVI (format tag 0x566f). Fix for bug 271. 2008-08-23 14:33:37 +00:00
Moritz Bunkus
9fa04c501f Added support for PCM tracks with floating point numbers (CodecID A_PCM/FLOAT/IEEE). Patch by Aurelien Jacobs (see AUTHORS). 2008-08-23 12:02:10 +00:00
Moritz Bunkus
7545fbd50e The fix to the timecode handling for AVC tracks in MP4 files from 2008-04-16 caused certain other MP4 files to not be read correctly. The video tracks were found, but no frames were read. Fix for bug 294. 2008-08-21 10:45:34 +00:00
Moritz Bunkus
04f35dc84a Added support for Ogg Kate subtitles. Patch by ogg.k.ogg.k@googlemail.com. 2008-08-21 10:12:31 +00:00
Moritz Bunkus
3fb8a8863d Removed the "--delay" option. Changed the "--sync d,l/p" option: audio samples are not added. Instead only the timecodes are adjusted. The default for "p" has been changed from 1000 to 1 if it is left out. The "--sync" option works for all track types. Therefore mmg activates the "delay" and "stretch by" inputs no matter what track type is selected. 2008-08-20 19:04:10 +00:00
Moritz Bunkus
3cf5067d9c mmg outputs a more informative error message for known but unsupported input file types (e.g. ASF, FLV, MPEG TS) instead of the cryptic "file identification failed". 2008-08-19 14:52:12 +00:00
Moritz Bunkus
0de4e02cc4 Do not read more bytes from the SUB file for a single SPU packet than indicated by the IDX file, even if the PES length field says otherwise. Partial fix for bug 245. 2008-08-19 13:53:20 +00:00
Moritz Bunkus
aabcccffd5 The BZIP2 API usage was wrong. Patch by Aurelien Jacobs. 2008-05-16 12:06:21 +00:00
Moritz Bunkus
d98bcbd84d Improved support for WAV files bigger than 4 GB which only contain a single DATA chunk and a wrong length field for this DATA chunk (e.g. eac3to creates such files). 2008-05-15 17:06:37 +00:00
Moritz Bunkus
642912edd0 Revision 3741 deactivated a check which should avoid huge memory consumption for files with dis-continuous streams. This caused bug 281. 2008-05-14 08:54:39 +00:00
Moritz Bunkus
315fd92266 Detect ASF/WMV input files and output a proper error message instead of detecting other stream types like AVC ES. Fix for bug 280. 2008-04-22 09:50:45 +00:00
Moritz Bunkus
4dd522775b Fix for an assertion for OGM files with embedded chapters. Fix for bug 279. 2008-04-20 19:11:13 +00:00
Moritz Bunkus
eba8ab675c Updates 2008-04-20 18:54:17 +00:00
Moritz Bunkus
da6bedc367 Fixed wrong timecodes for MP4 files that contain video tracks with B frames and edit lists. Fix for bug 277. Patch by Damiano Galassi (see AUTHORS). 2008-04-16 15:39:29 +00:00
Moritz Bunkus
0984dacfee Do not strip leading spaces from SRT subtitle entries. 2008-04-14 21:33:34 +00:00
Moritz Bunkus
e67323c979 Tuned the file type detection for MPEG ES streams. Fix for bug 265. 2008-04-14 21:15:11 +00:00
Moritz Bunkus
740cd6a9c1 Fixed support for UNC paths on Windows. Handle the host and share name parts of UNC paths correctly when checking if a directory needs to be created for the output file. Fix for bug 275. 2008-04-03 16:21:16 +00:00
Moritz Bunkus
8ed313f2d3 Added support for skipping ID3 tags in AC3 files. 2008-03-09 17:37:42 +00:00
Moritz Bunkus
4905caf963 Added support for AAC files with ID3 tags. 2008-03-09 16:02:08 +00:00
Moritz Bunkus
37a6c2e864 Added support for DTS-HD (master audio/high resolution). Cosmetics for dts_common.cpp. 2008-03-09 15:38:53 +00:00
Moritz Bunkus
b88b0ebf8a Updated the version number, set the new release nick name and included the release message in ChangeLog. 2008-03-04 07:35:53 +00:00
Moritz Bunkus
7161cb1862 Small updates for ChangeLog. 2008-03-03 16:58:17 +00:00
Moritz Bunkus
5b9eeb097b Added support for AC3-in-WAV in ACM mode. Added test cases for AC3-in-WAV in both ACM and IEC 61937 mode. Refactored r_wav.cpp & r_wav.h to match my desired coding style. 2008-02-29 14:28:35 +00:00
Moritz Bunkus
a396d20e94 Added support for reading AC3 from QuickTime/MP4 files. Fix for bug 254. 2008-02-28 18:18:27 +00:00
Moritz Bunkus
44d53cc76a Added support for handling AC3-in-WAV. 2008-02-27 14:49:42 +00:00
Moritz Bunkus
ded5cc873e Rewrite of the WAV reader. Fixed the handling of "fmt" chunks of unexpected length. Added support for handling WAV files with multiple data chunks. 2008-02-27 14:09:19 +00:00
Moritz Bunkus
8f12504a2b Added support for AAC-in-AVI with CodecID 0x706d as created by mencoder. Fix for bug 266. 2008-02-23 16:51:06 +00:00
Moritz Bunkus
52f2415c02 Update 2008-02-20 14:48:41 +00:00
Moritz Bunkus
1fbb6a8fda Rewrote the timecode application mechanism to be a lot faster, especially with full queues. Also always set the previous cluster timecode. This seems to get rid of at least some of the assertions thrown by libmatroska about the local timecode being to small/large to fit into a int16, and it also seems to get rid of some of mkvmerge's error messages about the packet queue not being empty. 2007-12-31 16:51:37 +00:00
Moritz Bunkus
466244606c Updates. 2007-12-22 09:37:32 +00:00
Moritz Bunkus
3bd17e6e13 Accept other Theora header versions than 3.2.0 as long as the major version is 3 and the minor 2. Fix for bug 262. 2007-10-11 14:33:40 +00:00
Moritz Bunkus
ad7be8fceb If resyncing after the "this is not a start code" case then re-do the start code checks. Another fix for bug 259. 2007-09-02 17:15:54 +00:00
Moritz Bunkus
33971bd6a6 Try to resync to the next MPEG start code in case of error. Fix for bug 259. 2007-09-02 16:35:46 +00:00
Moritz Bunkus
cd855e965e Output SVQ1 video tracks as V_MS/VFW/FOURCC and not as V_QUICKTIME. Fix for bug 257. 2007-08-31 11:51:08 +00:00
Moritz Bunkus
4a8dcc0468 Avoid a segfault if max_idx has been set before. Fix for bug 256. 2007-08-30 19:02:00 +00:00
Moritz Bunkus
e00a819078 SRT files that contain coordinates in the timecode line are supported. The coordinates are discarded automatically (as S_TEXT/SRT doesn't support them), and a warning is shown. 2007-08-19 18:35:51 +00:00
Moritz Bunkus
120ca3389a Bumped the version number to 2.1.0; set the release code name; added the release message to the ChangeLog. 2007-08-19 09:24:10 +00:00
Moritz Bunkus
1151078f02 Added support for reading MP2 audio tracks from OGM files. Patch by Mihail Zenkov <mihail.zenkov@gmail.com>. 2007-08-16 16:30:05 +00:00
Moritz Bunkus
596d3a2681 Added support for extracting Dolby Digital Plus (EAC3) tracks. 2007-08-15 19:43:36 +00:00
Moritz Bunkus
e88bb1aee5 Don't remove SPS and PPS NALUs from AVC/h.264 streams. 2007-08-15 17:59:22 +00:00
Moritz Bunkus
42a1924934 Fixed SSA/ASS detection for files produced by Aegis Sub which does not include a line with "[script info]" in the file. 2007-07-19 11:20:45 +00:00
Moritz Bunkus
3e26b1be51 Added another option how mmg choses the directory if automatic output filename creation is on. Implements all suggestions as listed in bug 248. Renamed all occurences of "settings" to "options" if they apply to the "options" dialog but left the "settings" alone where the word applies to the muxing settings. 2007-07-07 17:21:36 +00:00
Moritz Bunkus
dc016d3148 Moved the complete 'settings' tab to its own dialog accessible via the 'Settings' option in the 'File' menu. 2007-07-05 14:40:51 +00:00