aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorandroid-build-team Robot <android-build-team-robot@google.com>2019-05-30 03:12:05 +0000
committerandroid-build-team Robot <android-build-team-robot@google.com>2019-05-30 03:12:05 +0000
commit851e2d8aeea80fb4f8c4cb7389624c48474ae663 (patch)
tree100376581a771bdadfc96c31582d5e5e649bb8bb
parent40adaac98114a6382614aeea74cb6791f69d5aca (diff)
parent816f8ee1420e28553faafbf9b008d6086670e758 (diff)
downloadlibvpx-851e2d8aeea80fb4f8c4cb7389624c48474ae663.tar.gz
Snap for 5616725 from 816f8ee1420e28553faafbf9b008d6086670e758 to qt-qpr1-release
Change-Id: Iffd4e65c29a78aa6415b1e0d4d311dece3948228
-rw-r--r--libwebm/README.android2
-rw-r--r--libwebm/mkvparser/mkvparser.cc29
-rw-r--r--libwebm/mkvparser/mkvparser.h2
3 files changed, 25 insertions, 8 deletions
diff --git a/libwebm/README.android b/libwebm/README.android
index 37b839a12..c55bd748f 100644
--- a/libwebm/README.android
+++ b/libwebm/README.android
@@ -1,7 +1,7 @@
Name: libwebm
URL: http://www.webmproject.org
-Commit: 8e1ae495138b578f4e144fc22d6872eacf07d11f
+Commit: 81de00c43ea3c087b48a8c20337db7531b9f7612
Description:
Contains the sources used to compile libwebm's matroska parser.
diff --git a/libwebm/mkvparser/mkvparser.cc b/libwebm/mkvparser/mkvparser.cc
index 5a7b89652..ace65bd59 100644
--- a/libwebm/mkvparser/mkvparser.cc
+++ b/libwebm/mkvparser/mkvparser.cc
@@ -4230,6 +4230,7 @@ long ContentEncoding::ParseContentEncodingEntry(long long start, long long size,
new (std::nothrow) ContentEncryption*[encryption_count];
if (!encryption_entries_) {
delete[] compression_entries_;
+ compression_entries_ = NULL;
return -1;
}
encryption_entries_end_ = encryption_entries_;
@@ -4261,6 +4262,7 @@ long ContentEncoding::ParseContentEncodingEntry(long long start, long long size,
delete compression;
return status;
}
+ assert(compression_count > 0);
*compression_entries_end_++ = compression;
} else if (id == libwebm::kMkvContentEncryption) {
ContentEncryption* const encryption =
@@ -4273,6 +4275,7 @@ long ContentEncoding::ParseContentEncodingEntry(long long start, long long size,
delete encryption;
return status;
}
+ assert(encryption_count > 0);
*encryption_entries_end_++ = encryption;
}
@@ -4325,6 +4328,12 @@ long ContentEncoding::ParseCompressionEntry(long long start, long long size,
return status;
}
+ // There should be only one settings element per content compression.
+ if (compression->settings != NULL) {
+ delete[] buf;
+ return E_FILE_FORMAT_INVALID;
+ }
+
compression->settings = buf;
compression->settings_len = buflen;
}
@@ -5311,8 +5320,8 @@ long VideoTrack::Parse(Segment* pSegment, const Info& info,
const long long stop = pos + s.size;
- Colour* colour = NULL;
- Projection* projection = NULL;
+ std::unique_ptr<Colour> colour_ptr;
+ std::unique_ptr<Projection> projection_ptr;
while (pos < stop) {
long long id, size;
@@ -5361,11 +5370,19 @@ long VideoTrack::Parse(Segment* pSegment, const Info& info,
if (rate <= 0)
return E_FILE_FORMAT_INVALID;
} else if (id == libwebm::kMkvColour) {
- if (!Colour::Parse(pReader, pos, size, &colour))
+ Colour* colour = NULL;
+ if (!Colour::Parse(pReader, pos, size, &colour)) {
return E_FILE_FORMAT_INVALID;
+ } else {
+ colour_ptr.reset(colour);
+ }
} else if (id == libwebm::kMkvProjection) {
- if (!Projection::Parse(pReader, pos, size, &projection))
+ Projection* projection = NULL;
+ if (!Projection::Parse(pReader, pos, size, &projection)) {
return E_FILE_FORMAT_INVALID;
+ } else {
+ projection_ptr.reset(projection);
+ }
} else if (id == libwebm::kMkvColourSpace) {
const long status = UnserializeString(pReader, pos, size, colour_space);
if (status < 0)
@@ -5400,9 +5417,9 @@ long VideoTrack::Parse(Segment* pSegment, const Info& info,
pTrack->m_display_unit = display_unit;
pTrack->m_stereo_mode = stereo_mode;
pTrack->m_rate = rate;
- pTrack->m_colour = colour;
+ pTrack->m_colour = colour_ptr.release();
pTrack->m_colour_space = colour_space;
- pTrack->m_projection = projection;
+ pTrack->m_projection = projection_ptr.release();
pResult = pTrack;
return 0; // success
diff --git a/libwebm/mkvparser/mkvparser.h b/libwebm/mkvparser/mkvparser.h
index 9f296ed82..848d01f03 100644
--- a/libwebm/mkvparser/mkvparser.h
+++ b/libwebm/mkvparser/mkvparser.h
@@ -527,7 +527,7 @@ class VideoTrack : public Track {
Projection* GetProjection() const;
- const char* GetColourSpace() const { return m_colour_space; };
+ const char* GetColourSpace() const { return m_colour_space; }
private:
long long m_width;