Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 6ecd1c5c authored by Ray Essick's avatar Ray Essick
Browse files

mkvCue Entry's id is wrong

mkvparser.cc SeekHead::ParseEntry extracts an entry by using:
(android P) pEntry->id = readUInt(pReader, pos, len) [yielding 0x0C53BB6B
(android Q) pEntry->id = readID(pReader, pos, len) [yielding 0x1C53BB6B

This updates mkv extractor to accept 0x1C53BB6B (using symbolic value from webmids.h)

Bug: 129839777
Test: play mkv file
Change-Id: Ida3f0863d59e5b67446e325d186dfe04a00420f2
parent ba9a0506
Loading
Loading
Loading
Loading
+3 −2
Original line number Diff line number Diff line
@@ -20,6 +20,7 @@

#include "FLACDecoder.h"
#include "MatroskaExtractor.h"
#include "common/webmids.h"

#include <media/DataSourceBase.h>
#include <media/ExtractorUtils.h>
@@ -461,7 +462,7 @@ void BlockIterator::seek(
        for (size_t index = 0; index < count; index++) {
            pEntry = pSH->GetEntry(index);

            if (pEntry->id == 0x0C53BB6B) { // Cues ID
            if (pEntry->id == libwebm::kMkvCues) { // Cues ID
                long len; long long pos;
                pSegment->ParseCues(pEntry->pos, pos, len);
                pCues = pSegment->GetCues();
@@ -1282,7 +1283,7 @@ MatroskaExtractor::MatroskaExtractor(DataSourceHelper *source)
                const mkvparser::SeekHead::Entry* mEntry;
                for (size_t index = 0; index < count; index++) {
                    mEntry = mSH->GetEntry(index);
                    if (mEntry->id == 0x0C53BB6B) {  // Cues ID
                    if (mEntry->id == libwebm::kMkvCues) { // Cues ID
                        long len;
                        long long pos;
                        mSegment->ParseCues(mEntry->pos, pos, len);