summaryrefslogtreecommitdiffstats
path: root/media/base
diff options
context:
space:
mode:
authorwjia@chromium.org <wjia@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2011-07-07 16:45:55 +0000
committerwjia@chromium.org <wjia@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2011-07-07 16:45:55 +0000
commit4990cf2cb2302f7313564348e36fd0ffebdfaf07 (patch)
treeff2156fe4369150df4e5c86ae038daf3ab964ad2 /media/base
parentb1bf6fb646bbca873ba3586ce8a7bacce4d1dfbc (diff)
downloadchromium_src-4990cf2cb2302f7313564348e36fd0ffebdfaf07.zip
chromium_src-4990cf2cb2302f7313564348e36fd0ffebdfaf07.tar.gz
chromium_src-4990cf2cb2302f7313564348e36fd0ffebdfaf07.tar.bz2
The RTCVideoDecoder will eventially need to depend on third_party lib (webrtc, libjinle etc), which is not allowed in media. So move rtc_video_decoder* from media/filter/ to content/renderer/media/.
patch by ronghuawu@google.com BUG=none TEST=unit_tests, media_unittests Review URL: http://codereview.chromium.org/7193001 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@91721 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'media/base')
-rw-r--r--media/base/pipeline.h6
-rw-r--r--media/base/pipeline_impl.cc8
-rw-r--r--media/base/pipeline_impl_unittest.cc9
3 files changed, 15 insertions, 8 deletions
diff --git a/media/base/pipeline.h b/media/base/pipeline.h
index ca7727a..9686bb6 100644
--- a/media/base/pipeline.h
+++ b/media/base/pipeline.h
@@ -21,6 +21,8 @@ class TimeDelta;
namespace media {
+extern const char kRawMediaScheme[];
+
struct PipelineStatistics {
PipelineStatistics() :
audio_bytes_decoded(0),
@@ -29,8 +31,8 @@ struct PipelineStatistics {
video_frames_dropped(0) {
}
- uint32 audio_bytes_decoded; // Should be uint64?
- uint32 video_bytes_decoded; // Should be uint64?
+ uint32 audio_bytes_decoded; // Should be uint64?
+ uint32 video_bytes_decoded; // Should be uint64?
uint32 video_frames_decoded;
uint32 video_frames_dropped;
};
diff --git a/media/base/pipeline_impl.cc b/media/base/pipeline_impl.cc
index 809463e..bfeda09 100644
--- a/media/base/pipeline_impl.cc
+++ b/media/base/pipeline_impl.cc
@@ -13,14 +13,16 @@
#include "base/callback.h"
#include "base/compiler_specific.h"
#include "base/stl_util-inl.h"
+#include "base/string_util.h"
#include "base/synchronization/condition_variable.h"
-#include "media/filters/rtc_video_decoder.h"
#include "media/base/clock.h"
#include "media/base/filter_collection.h"
#include "media/base/media_format.h"
namespace media {
+const char kRawMediaScheme[] = "x-raw-media";
+
PipelineStatusNotification::PipelineStatusNotification()
: cv_(&lock_), status_(PIPELINE_OK), notified_(false) {
callback_.reset(NewCallback(this, &PipelineStatusNotification::Notify));
@@ -617,7 +619,9 @@ void PipelineImpl::StartTask(FilterCollection* filter_collection,
pipeline_init_state_->composite_ = new CompositeFilter(message_loop_);
pipeline_init_state_->composite_->set_host(this);
- if (RTCVideoDecoder::IsUrlSupported(url)) {
+ bool raw_media = (base::strncasecmp(url.c_str(), kRawMediaScheme,
+ strlen(kRawMediaScheme)) == 0);
+ if (raw_media) {
set_state(kInitVideoDecoder);
InitializeVideoDecoder(NULL);
} else {
diff --git a/media/base/pipeline_impl_unittest.cc b/media/base/pipeline_impl_unittest.cc
index 8238c21..c0a85b3 100644
--- a/media/base/pipeline_impl_unittest.cc
+++ b/media/base/pipeline_impl_unittest.cc
@@ -34,7 +34,7 @@ static const int kTotalBytes = 1024;
static const int kBufferedBytes = 1024;
// Test url for raw video pipeline.
-static const std::string kUrlMedia = "media://raw_video_stream";
+static const char kUrlRawVideo[] = "://raw_video_stream";
// Used for setting expectations on pipeline callbacks. Using a StrictMock
// also lets us test for missing callbacks.
@@ -206,8 +206,8 @@ class PipelineImplTest : public ::testing::Test {
EXPECT_CALL(callbacks_, OnStart(start_status));
bool run_build = true;
- if (url.compare(kUrlMedia) == 0)
- run_build = false;
+ if (url.find(kRawMediaScheme) == 0)
+ run_build = false;
pipeline_->Start(mocks_->filter_collection(true,
true,
@@ -430,7 +430,8 @@ TEST_F(PipelineImplTest, RawVideoStream) {
InitializeVideoDecoder(NULL);
InitializeVideoRenderer();
- InitializePipeline(PIPELINE_OK, PIPELINE_OK, kUrlMedia);
+ InitializePipeline(PIPELINE_OK, PIPELINE_OK,
+ std::string(kRawMediaScheme).append(kUrlRawVideo));
EXPECT_TRUE(pipeline_->IsInitialized());
EXPECT_FALSE(pipeline_->HasAudio());
EXPECT_TRUE(pipeline_->HasVideo());