Do not automatically discard big VobSub packets anymore.

This commit is contained in:
Moritz Bunkus 2004-01-31 10:47:36 +00:00
parent 9b19824c2a
commit 1d01ec4599
4 changed files with 7 additions and 1 deletions

View File

@ -1,5 +1,8 @@
2004-01-31 Moritz Bunkus <moritz@bunkus.org>
* mkvmerge: The VobSub reader will not discard packets that exceed
a certain size (64KB) anymore.
* mkvmerge: Improved some internal memory freeing decisions. This
should help with files/sections in which are only few keyframes.

View File

@ -1291,6 +1291,7 @@ static const char *mosu_hacks[] = {
ENGAGE_NO_VARIABLE_DATA,
ENGAGE_NO_DEFAULT_HEADER_VALUES,
ENGAGE_FORCE_PASSTHROUGH_PACKETIZER,
ENGAGE_SKIP_BIG_VOBSUBS,
NULL
};
static vector<const char *> engaged_hacks;

View File

@ -32,6 +32,7 @@
#define ENGAGE_NO_VARIABLE_DATA "no_variable_data"
#define ENGAGE_NO_DEFAULT_HEADER_VALUES "no_default_header_values"
#define ENGAGE_FORCE_PASSTHROUGH_PACKETIZER "force_passthrough_packetizer"
#define ENGAGE_SKIP_BIG_VOBSUBS "skip_big_vobsubs"
bool hack_engaged(const char *hack);

View File

@ -25,6 +25,7 @@
#include <errno.h>
#include "common.h"
#include "hacks.h"
#include "iso639.h"
#include "mkvmerge.h"
#include "mm_io.h"
@ -325,7 +326,7 @@ vobsub_reader_c::read(generic_packetizer_c *ptzr) {
id = i;
i = track->idx;
if (track->sizes[i] > 64 * 1024) {
if ((track->sizes[i] > 64 * 1024) && hack_engaged(ENGAGE_SKIP_BIG_VOBSUBS)) {
mxwarn(PFX "Skipping entry at timecode %llds of track ID %u in '%s' "
"because it is too big (%lld bytes). This is usually the case for "
"the very last index lines for each track in the .idx file because "