Bug 1143575. Add frame IDs to VideoData. r=cpearce

This commit is contained in:
Robert O'Callahan 2015-06-07 12:34:00 +03:00
parent 9b0b2b201e
commit 5b492abeb0
2 changed files with 22 additions and 10 deletions

View File

@ -113,9 +113,11 @@ VideoData::VideoData(int64_t aOffset,
int64_t aDuration,
bool aKeyframe,
int64_t aTimecode,
IntSize aDisplay)
IntSize aDisplay,
layers::ImageContainer::FrameID aFrameID)
: MediaData(VIDEO_DATA, aOffset, aTime, aDuration)
, mDisplay(aDisplay)
, mFrameID(aFrameID)
, mSentToCompositor(false)
{
NS_ASSERTION(mDuration >= 0, "Frame must have non-negative duration.");
@ -153,7 +155,8 @@ VideoData::ShallowCopyUpdateDuration(const VideoData* aOther,
aDuration,
aOther->mKeyframe,
aOther->mTimecode,
aOther->mDisplay);
aOther->mDisplay,
aOther->mFrameID);
v->mDiscontinuity = aOther->mDiscontinuity;
v->mImage = aOther->mImage;
return v.forget();
@ -170,7 +173,8 @@ VideoData::ShallowCopyUpdateTimestamp(const VideoData* aOther,
aOther->GetEndTime() - aTimestamp,
aOther->mKeyframe,
aOther->mTimecode,
aOther->mDisplay);
aOther->mDisplay,
aOther->mFrameID);
v->mDiscontinuity = aOther->mDiscontinuity;
v->mImage = aOther->mImage;
return v.forget();
@ -188,7 +192,8 @@ VideoData::ShallowCopyUpdateTimestampAndDuration(const VideoData* aOther,
aDuration,
aOther->mKeyframe,
aOther->mTimecode,
aOther->mDisplay);
aOther->mDisplay,
aOther->mFrameID);
v->mDiscontinuity = aOther->mDiscontinuity;
v->mImage = aOther->mImage;
return v.forget();
@ -253,7 +258,8 @@ VideoData::Create(const VideoInfo& aInfo,
aDuration,
aKeyframe,
aTimecode,
aInfo.mDisplay));
aInfo.mDisplay,
0));
return v.forget();
}
@ -295,7 +301,8 @@ VideoData::Create(const VideoInfo& aInfo,
aDuration,
aKeyframe,
aTimecode,
aInfo.mDisplay));
aInfo.mDisplay,
0));
#ifdef MOZ_WIDGET_GONK
const YCbCrBuffer::Plane &Y = aBuffer.mPlanes[0];
const YCbCrBuffer::Plane &Cb = aBuffer.mPlanes[1];
@ -397,7 +404,8 @@ VideoData::CreateFromImage(const VideoInfo& aInfo,
aDuration,
aKeyframe,
aTimecode,
aInfo.mDisplay));
aInfo.mDisplay,
0));
v->mImage = aImage;
return v.forget();
}
@ -423,7 +431,8 @@ VideoData::Create(const VideoInfo& aInfo,
aDuration,
aKeyframe,
aTimecode,
aInfo.mDisplay));
aInfo.mDisplay,
0));
return v.forget();
}
@ -450,7 +459,8 @@ VideoData::Create(const VideoInfo& aInfo,
aDuration,
aKeyframe,
aTimecode,
aInfo.mDisplay));
aInfo.mDisplay,
0));
v->mImage = aContainer->CreateImage(ImageFormat::GRALLOC_PLANAR_YCBCR);
if (!v->mImage) {

View File

@ -279,6 +279,7 @@ public:
// This frame's image.
nsRefPtr<Image> mImage;
int32_t mFrameID;
bool mSentToCompositor;
@ -287,7 +288,8 @@ public:
int64_t aDuration,
bool aKeyframe,
int64_t aTimecode,
IntSize aDisplay);
IntSize aDisplay,
int32_t aFrameID);
protected:
~VideoData();