mkvmuxer_tests: Actually test cue points in the cue point test.

Instead of blindly doing a file compare and hoping that we're not
in a garbage in garbage out situation.

Change-Id: Ie2f278e09ad67b3e8f40e602fcdd5c9ffb5e1b7d
This commit is contained in:
Tom Finegan
2016-08-31 14:57:54 -07:00
parent 93e9fb35f9
commit cf1620444f
3 changed files with 44 additions and 20 deletions

View File

@@ -78,10 +78,11 @@ bool HasCuePoints(const mkvparser::Segment* segment,
}
}
if (offset == -1) {
if (offset <= 0) {
// No Cues found.
return false;
}
*cues_offset = offset;
return true;
}
@@ -143,10 +144,16 @@ bool ValidateCues(mkvparser::Segment* segment, mkvparser::IMkvReader* reader) {
return true;
}
bool ParseMkvFileReleaseSegment(const std::string& webm_file,
mkvparser::Segment** segment_out) {
mkvparser::MkvReader reader;
if (reader.Open(webm_file.c_str()) < 0) {
MkvParser::~MkvParser() {
delete segment;
delete reader;
}
bool ParseMkvFileReleaseParser(const std::string& webm_file,
MkvParser* parser_out) {
parser_out->reader = new (std::nothrow) mkvparser::MkvReader;
mkvparser::MkvReader& reader = *parser_out->reader;
if (!parser_out->reader || reader.Open(webm_file.c_str()) < 0) {
return false;
}
@@ -192,14 +199,15 @@ bool ParseMkvFileReleaseSegment(const std::string& webm_file,
cluster = segment->GetNext(cluster);
}
*segment_out = segment.release();
parser_out->segment = segment.release();
return true;
}
bool ParseMkvFile(const std::string& webm_file) {
mkvparser::Segment* segment = nullptr;
const bool result = ParseMkvFileReleaseSegment(webm_file, &segment);
delete segment;
MkvParser parser;
const bool result = ParseMkvFileReleaseParser(webm_file, &parser);
delete parser.segment;
delete parser.reader;
return result;
}