diff options
author | wolenetz@chromium.org <wolenetz@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2014-04-03 18:31:35 +0000 |
---|---|---|
committer | wolenetz@chromium.org <wolenetz@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2014-04-03 18:31:35 +0000 |
commit | 4c1f811773bfc768f47b44c11931ed7864cc29d0 (patch) | |
tree | a8da1ba418453b95ac5381f6ec9a84f03a189ebb /content | |
parent | 6d717c40c2d0e0c6a29d6a72922968c851fc1113 (diff) | |
download | chromium_src-4c1f811773bfc768f47b44c11931ed7864cc29d0.zip chromium_src-4c1f811773bfc768f47b44c11931ed7864cc29d0.tar.gz chromium_src-4c1f811773bfc768f47b44c11931ed7864cc29d0.tar.bz2 |
MSE: Pick frame processor in ChunkDemuxer::AddId; prepare unit tests to pick processor
In preparation for landing the new FrameProcessor, this change
parameterizes WebMediaSourceImpl::addSourceBuffer() and
ChunkDemuxer::AddId() to select which of legacy or new
processor to use to process frames appended to the source buffer.
This change also parameterizes ChunkDemuxerTests and the MSE subset
of PipelineIntegrationTests to allow testing of both frame processors
in the short term until the new processor has landed and stabilized
enough.
Since the MSE WebSourceBuffer API for Chromium platform in Blink is
not yet stabilized, this change also removes related OVERRIDEs.
R=acolwell@chromium.org
BUG=249422
TEST=All media unittests pass locally on Linux with ChromeOS ffmpeg branding and proprietary codecs enabled, and no local MSE layout test regression
Review URL: https://codereview.chromium.org/220113002
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@261485 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'content')
-rw-r--r-- | content/renderer/media/webmediasource_impl.cc | 14 | ||||
-rw-r--r-- | content/renderer/media/webmediasource_impl.h | 11 |
2 files changed, 19 insertions, 6 deletions
diff --git a/content/renderer/media/webmediasource_impl.cc b/content/renderer/media/webmediasource_impl.cc index 365fc01..0969281 100644 --- a/content/renderer/media/webmediasource_impl.cc +++ b/content/renderer/media/webmediasource_impl.cc @@ -36,14 +36,26 @@ WebMediaSourceImpl::~WebMediaSourceImpl() {} WebMediaSource::AddStatus WebMediaSourceImpl::addSourceBuffer( const blink::WebString& type, const blink::WebVector<blink::WebString>& codecs, + const WebMediaSource::FrameProcessorChoice frame_processor_choice, blink::WebSourceBuffer** source_buffer) { std::string id = base::GenerateGUID(); std::vector<std::string> new_codecs(codecs.size()); for (size_t i = 0; i < codecs.size(); ++i) new_codecs[i] = codecs[i].utf8().data(); + + bool use_legacy_frame_processor = false; + switch (frame_processor_choice) { + case UseLegacyFrameProcessor: + use_legacy_frame_processor = true; + break; + case UseNewFrameProcessor: + break; + } + WebMediaSource::AddStatus result = static_cast<WebMediaSource::AddStatus>( - demuxer_->AddId(id, type.utf8().data(), new_codecs)); + demuxer_->AddId(id, type.utf8().data(), new_codecs, + use_legacy_frame_processor)); if (result == WebMediaSource::AddStatusOk) *source_buffer = new WebSourceBufferImpl(id, demuxer_); diff --git a/content/renderer/media/webmediasource_impl.h b/content/renderer/media/webmediasource_impl.h index 42d5eef9..e9dae1b 100644 --- a/content/renderer/media/webmediasource_impl.h +++ b/content/renderer/media/webmediasource_impl.h @@ -26,11 +26,12 @@ class WebMediaSourceImpl : public blink::WebMediaSource { virtual AddStatus addSourceBuffer( const blink::WebString& type, const blink::WebVector<blink::WebString>& codecs, - blink::WebSourceBuffer** source_buffer) OVERRIDE; - virtual double duration() OVERRIDE; - virtual void setDuration(double duration) OVERRIDE; - virtual void markEndOfStream(EndOfStreamStatus status) OVERRIDE; - virtual void unmarkEndOfStream() OVERRIDE; + const FrameProcessorChoice frame_processor_choice, + blink::WebSourceBuffer** source_buffer); + virtual double duration(); + virtual void setDuration(double duration); + virtual void markEndOfStream(EndOfStreamStatus status); + virtual void unmarkEndOfStream(); private: media::ChunkDemuxer* demuxer_; // Owned by WebMediaPlayerImpl. |