[webm] Store LastSeenFrame dimensions as an nsIntSize

This simplifies the comparison and update logic.
This commit is contained in:
trav90 2018-10-08 21:05:52 -05:00 committed by Roy Tam
commit e7d7e0d2bf
2 changed files with 6 additions and 8 deletions

View file

@ -651,14 +651,13 @@ WebMDemuxer::GetNextPacket(TrackInfo::TrackType aType, MediaRawDataQueue *aSampl
if (isKeyframe) {
// We only look for resolution changes on keyframes for both VP8 and
// VP9. Other resolution changes are invalid.
if (mLastSeenFrameWidth.isSome() && mLastSeenFrameHeight.isSome() &&
(si.w != mLastSeenFrameWidth.value() ||
si.h != mLastSeenFrameHeight.value())) {
mInfo.mVideo.mDisplay = nsIntSize(si.w, si.h);
auto dimensions = nsIntSize(si.w, si.h);
if (mLastSeenFrameSize.isSome()
&& (dimensions != mLastSeenFrameSize.value())) {
mInfo.mVideo.mDisplay = dimensions;
mSharedVideoTrackInfo = new SharedTrackInfo(mInfo.mVideo, ++sStreamSourceID);
}
mLastSeenFrameWidth = Some(si.w);
mLastSeenFrameHeight = Some(si.h);
mLastSeenFrameSize = Some(dimensions);
}
}
}

View file

@ -237,8 +237,7 @@ private:
int64_t mLastWebMBlockOffset;
const bool mIsMediaSource;
Maybe<uint32_t> mLastSeenFrameWidth;
Maybe<uint32_t> mLastSeenFrameHeight;
Maybe<nsIntSize> mLastSeenFrameSize;
// This will be populated only if a resolution change occurs, otherwise it
// will be left as null so the original metadata is used
RefPtr<SharedTrackInfo> mSharedVideoTrackInfo;