summaryrefslogtreecommitdiffstats
path: root/content
diff options
context:
space:
mode:
Diffstat (limited to 'content')
-rw-r--r--content/renderer/media/rtc_video_decoder.cc1
-rw-r--r--content/renderer/media/rtc_video_decoder.h5
-rw-r--r--content/renderer/media/rtc_video_decoder_unittest.cc69
3 files changed, 73 insertions, 2 deletions
diff --git a/content/renderer/media/rtc_video_decoder.cc b/content/renderer/media/rtc_video_decoder.cc
index 684e9ee..dfc43a1 100644
--- a/content/renderer/media/rtc_video_decoder.cc
+++ b/content/renderer/media/rtc_video_decoder.cc
@@ -13,6 +13,7 @@
#include "media/base/limits.h"
#include "media/base/video_frame.h"
#include "media/base/video_util.h"
+#include "third_party/libjingle/source/talk/session/phone/videoframe.h"
using media::CopyUPlane;
using media::CopyVPlane;
diff --git a/content/renderer/media/rtc_video_decoder.h b/content/renderer/media/rtc_video_decoder.h
index 3575ab3..32f9c18 100644
--- a/content/renderer/media/rtc_video_decoder.h
+++ b/content/renderer/media/rtc_video_decoder.h
@@ -14,6 +14,11 @@
#include "media/base/video_frame.h"
#include "media/filters/decoder_base.h"
#include "third_party/libjingle/source/talk/session/phone/mediachannel.h"
+#include "third_party/libjingle/source/talk/session/phone/videorenderer.h"
+
+namespace cricket {
+class VideoFrame;
+} // namespace cricket
class RTCVideoDecoder
: public media::VideoDecoder,
diff --git a/content/renderer/media/rtc_video_decoder_unittest.cc b/content/renderer/media/rtc_video_decoder_unittest.cc
index 0018b52..a247777 100644
--- a/content/renderer/media/rtc_video_decoder_unittest.cc
+++ b/content/renderer/media/rtc_video_decoder_unittest.cc
@@ -2,12 +2,13 @@
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
+#include "content/renderer/media/rtc_video_decoder.h"
+
#include <deque>
#include "base/bind.h"
#include "base/memory/singleton.h"
#include "base/string_util.h"
-#include "content/renderer/media/rtc_video_decoder.h"
#include "media/base/data_buffer.h"
#include "media/base/filters.h"
#include "media/base/limits.h"
@@ -17,6 +18,7 @@
#include "media/base/mock_task.h"
#include "media/base/video_frame.h"
#include "testing/gtest/include/gtest/gtest.h"
+#include "third_party/libjingle/source/talk/session/phone/videoframe.h"
using ::testing::_;
using ::testing::AnyNumber;
@@ -37,6 +39,69 @@ using media::PipelineStatistics;
using media::PIPELINE_OK;
using media::StatisticsCallback;
+namespace {
+
+class NullVideoFrame : public cricket::VideoFrame {
+ public:
+ NullVideoFrame() {};
+ virtual ~NullVideoFrame() {};
+
+ virtual size_t GetWidth() const OVERRIDE { return 0; }
+ virtual size_t GetHeight() const OVERRIDE { return 0; }
+ virtual const uint8 *GetYPlane() const OVERRIDE { return NULL; }
+ virtual const uint8 *GetUPlane() const OVERRIDE { return NULL; }
+ virtual const uint8 *GetVPlane() const OVERRIDE { return NULL; }
+ virtual uint8 *GetYPlane() OVERRIDE { return NULL; }
+ virtual uint8 *GetUPlane() OVERRIDE { return NULL; }
+ virtual uint8 *GetVPlane() OVERRIDE { return NULL; }
+ virtual int32 GetYPitch() const OVERRIDE { return 0; }
+ virtual int32 GetUPitch() const OVERRIDE { return 0; }
+ virtual int32 GetVPitch() const OVERRIDE { return 0; }
+
+ virtual size_t GetPixelWidth() const OVERRIDE { return 1; }
+ virtual size_t GetPixelHeight() const OVERRIDE { return 1; }
+ virtual int64 GetElapsedTime() const OVERRIDE { return 0; }
+ virtual int64 GetTimeStamp() const OVERRIDE { return 0; }
+ virtual void SetElapsedTime(int64 elapsed_time) OVERRIDE {}
+ virtual void SetTimeStamp(int64 time_stamp) OVERRIDE {}
+
+ virtual VideoFrame *Copy() const OVERRIDE { return NULL; }
+
+ virtual bool MakeExclusive() OVERRIDE { return true; }
+
+ virtual size_t CopyToBuffer(uint8 *buffer, size_t size) const OVERRIDE {
+ return 0;
+ }
+
+ virtual size_t ConvertToRgbBuffer(uint32 to_fourcc, uint8 *buffer,
+ size_t size,
+ size_t pitch_rgb) const OVERRIDE {
+ return 0;
+ }
+
+ virtual void StretchToPlanes(uint8 *y, uint8 *u, uint8 *v,
+ int32 pitchY, int32 pitchU, int32 pitchV,
+ size_t width, size_t height,
+ bool interpolate, bool crop) const OVERRIDE {
+ }
+
+ virtual size_t StretchToBuffer(size_t w, size_t h, uint8 *buffer, size_t size,
+ bool interpolate, bool crop) const OVERRIDE {
+ return 0;
+ }
+
+ virtual void StretchToFrame(VideoFrame *target, bool interpolate,
+ bool crop) const OVERRIDE {
+ }
+
+ virtual VideoFrame *Stretch(size_t w, size_t h, bool interpolate,
+ bool crop) const OVERRIDE {
+ return NULL;
+ }
+};
+
+} // namespace
+
class RTCVideoDecoderTest : public testing::Test {
protected:
static const int kWidth;
@@ -135,7 +200,7 @@ TEST_F(RTCVideoDecoderTest, DoRenderFrame) {
EXPECT_CALL(*renderer_.get(), ConsumeVideoFrame(_))
.Times(Limits::kMaxVideoFrames);
- cricket::NullVideoFrame video_frame;
+ NullVideoFrame video_frame;
for (size_t i = 0; i < Limits::kMaxVideoFrames; ++i) {
decoder_->RenderFrame(&video_frame);