diff options
author | Moonchild <moonchild@palemoon.org> | 2020-06-01 21:58:35 +0000 |
---|---|---|
committer | Moonchild <moonchild@palemoon.org> | 2020-06-01 21:58:35 +0000 |
commit | c6ca4380e9e5e95df9de02daf8bfb9a6ebc22810 (patch) | |
tree | c7672903a2030d37f861b12900165a015f49d10a /dom/media/webm/WebMBufferedParser.h | |
parent | 451509e2c0188a4164d4b3d1d9f5839ed1e95246 (diff) | |
parent | 744b044935f7d1d67fbe0df42d898efcbdd00536 (diff) | |
download | UXP-c6ca4380e9e5e95df9de02daf8bfb9a6ebc22810.tar UXP-c6ca4380e9e5e95df9de02daf8bfb9a6ebc22810.tar.gz UXP-c6ca4380e9e5e95df9de02daf8bfb9a6ebc22810.tar.lz UXP-c6ca4380e9e5e95df9de02daf8bfb9a6ebc22810.tar.xz UXP-c6ca4380e9e5e95df9de02daf8bfb9a6ebc22810.zip |
Merge remote-tracking branch 'origin/redwood' into release
Diffstat (limited to 'dom/media/webm/WebMBufferedParser.h')
-rw-r--r-- | dom/media/webm/WebMBufferedParser.h | 17 |
1 files changed, 15 insertions, 2 deletions
diff --git a/dom/media/webm/WebMBufferedParser.h b/dom/media/webm/WebMBufferedParser.h index bc3de4ba0..4245561fc 100644 --- a/dom/media/webm/WebMBufferedParser.h +++ b/dom/media/webm/WebMBufferedParser.h @@ -67,7 +67,7 @@ struct WebMBufferedParser , mVIntLeft(0) , mBlockSize(0) , mClusterTimecode(0) - , mClusterOffset(0) + , mClusterOffset(-1) , mClusterEndOffset(-1) , mBlockOffset(0) , mBlockTimecode(0) @@ -75,6 +75,7 @@ struct WebMBufferedParser , mSkipBytes(0) , mTimecodeScale(1000000) , mGotTimecodeScale(false) + , mGotClusterTimecode(false) { if (mStartOffset != 0) { mState = FIND_CLUSTER_SYNC; @@ -86,6 +87,12 @@ struct WebMBufferedParser return mTimecodeScale; } + // Use this function when we would only feed media segment for the parser. + void AppendMediaSegmentOnly() + { + mGotTimecodeScale = true; + } + // If this parser is not expected to parse a segment info, it must be told // the appropriate timecode scale to use from elsewhere. void SetTimecodeScale(uint32_t aTimecodeScale) { @@ -114,6 +121,9 @@ struct WebMBufferedParser // This allows to determine the end of the interval containg aOffset. int64_t EndSegmentOffset(int64_t aOffset); + // Return the Cluster offset, return -1 if we can't find the Cluster. + int64_t GetClusterOffset() const; + // The offset at which this parser started parsing. Used to merge // adjacent parsers, in which case the later parser adopts the earlier // parser's mStartOffset. @@ -231,7 +241,7 @@ private: // Start offset of the cluster currently being parsed. Used as the sync // point offset for the offset-to-time mapping as each block timecode is - // been parsed. + // been parsed. -1 if unknown. int64_t mClusterOffset; // End offset of the cluster currently being parsed. -1 if unknown. @@ -260,6 +270,9 @@ private: // True if we read the timecode scale from the segment info or have // confirmed that the default value is to be used. bool mGotTimecodeScale; + + // True if we've read the cluster time code. + bool mGotClusterTimecode; }; class WebMBufferedState final |