diff -r 000000000000 -r 6474c204b198 content/media/VideoSegment.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/content/media/VideoSegment.cpp Wed Dec 31 06:09:35 2014 +0100 @@ -0,0 +1,64 @@ +/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this file, + * You can obtain one at http://mozilla.org/MPL/2.0/. */ + +#include "VideoSegment.h" + +#include "gfx2DGlue.h" +#include "ImageContainer.h" + +namespace mozilla { + +using namespace layers; + +VideoFrame::VideoFrame(already_AddRefed& aImage, + const gfxIntSize& aIntrinsicSize) + : mImage(aImage), mIntrinsicSize(aIntrinsicSize), mForceBlack(false) +{} + +VideoFrame::VideoFrame() + : mIntrinsicSize(0, 0), mForceBlack(false) +{} + +VideoFrame::~VideoFrame() +{} + +void +VideoFrame::SetNull() { + mImage = nullptr; + mIntrinsicSize = gfxIntSize(0, 0); +} + +void +VideoFrame::TakeFrom(VideoFrame* aFrame) +{ + mImage = aFrame->mImage.forget(); + mIntrinsicSize = aFrame->mIntrinsicSize; + mForceBlack = aFrame->GetForceBlack(); +} + +VideoChunk::VideoChunk() +{} + +VideoChunk::~VideoChunk() +{} + +void +VideoSegment::AppendFrame(already_AddRefed&& aImage, + TrackTicks aDuration, + const IntSize& aIntrinsicSize) +{ + VideoChunk* chunk = AppendChunk(aDuration); + VideoFrame frame(aImage, ThebesIntSize(aIntrinsicSize)); + chunk->mFrame.TakeFrom(&frame); +} + +VideoSegment::VideoSegment() + : MediaSegmentBase(VIDEO) +{} + +VideoSegment::~VideoSegment() +{} + +}