Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(236)

Unified Diff: chrome/renderer/media/data_source_impl.h

Issue 115841: Remove DataSourceImpl from chrome/renderer/media... (Closed) Base URL: svn://chrome-svn/chrome/trunk/src/
Patch Set: Created 11 years, 7 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « no previous file | chrome/renderer/media/data_source_impl.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: chrome/renderer/media/data_source_impl.h
===================================================================
--- chrome/renderer/media/data_source_impl.h (revision 16720)
+++ chrome/renderer/media/data_source_impl.h (working copy)
@@ -1,196 +0,0 @@
-// Copyright (c) 2009 The Chromium Authors. All rights reserved. Use of this
-// source code is governed by a BSD-style license that can be found in the
-// LICENSE file.
-//
-// A Chrome specific data source for video stack pipeline. The actual resource
-// loading would happen in the browser process. This class is given a file
-// handle and will ask for progress of downloading from RenderView which
-// delegates requests to browser process through IPC. Asynchronous IO will be
-// performed on the file handle.
-//
-// This class is access by 4 different threads during it's lifetime, namely:
-// 1. Render thread
-// Thread that runs WebKit objects and construct this class. Updates about
-// progress for resource loading also happens in this thread.
-// 2. Pipeline thread
-// Closing thread of the video stack pipeline, it initialized this class
-// and performs stopping in an orderly fashion.
-// 3. Demuxer thread
-// Thread created by the pipeline and ask for data from this class.
-// media::DataSource methods are called from this thread.
-// 4. IO thread
-// Performs file stream construction and callback of read completion also
-// comes from this thread.
-//
-// Methods in the class categorized by the thread(s) they are running on:
-//
-// Render thread
-// +-- DataSourceImpl()
-// | Perform construction of this class.
-// |-- static CreateFactory()
-// | Called during construction of this class.
-// |-- OnInitialize()
-// | Task posted by Initialize() to kick start resource loading.
-// |-- OnCancel()
-// | Cancel the resource loading.
-// |-- OnDownloadProgress()
-// | Receives download progress information for the response data file.
-// |-- OnUploadProgress()
-// |-- OnReceivedRedirect()
-// |-- OnReceivedResponse()
-// |-- OnReceivedData()
-// |-- OnCompletedRequest()
-// |-- GetURLForDebugging()
-// \-- OnDestroy()
-//
-// Pipeline thread
-// +-- Initialize()
-// | Performs initialization of data source in the pipeline.
-// \-- Stop()
-// Cease all activities during pipeline tear down.
-//
-// Demuxer thread
-// +-- Read()
-// | Called to read from the media file.
-// |-- GetPosition()
-// | Called to obtain current position in the file.
-// |-- SetPosition()
-// | Performs a seek operation.
-// |-- GetSize()
-// | Retrieve the size of the resource.
-// \-- IsSeekable()
-// Returns true if URL is file:/// or else false.
-//
-// IO thread
-// +-- OnCreateFileStream()
-// | Callback for construction of net::FileStream in an IO message loop.
-// |-- OnReadFileStream()
-// | Actual read operation on FileStream performs here.
-// |-- OnSeekFileStream()
-// | Actual seek operation happens here.
-// \-- OnDidFileStreamRead()
-// Callback for asynchronous file read completion.
-
-
-#ifndef CHROME_RENDERER_MEDIA_DATA_SOURCE_IMPL_H_
-#define CHROME_RENDERER_MEDIA_DATA_SOURCE_IMPL_H_
-
-#include <string>
-
-#include "base/lock.h"
-#include "base/platform_file.h"
-#include "base/scoped_ptr.h"
-#include "base/waitable_event.h"
-#include "media/base/factory.h"
-#include "media/base/filters.h"
-#include "media/base/media_format.h"
-#include "media/base/pipeline.h"
-#include "net/base/completion_callback.h"
-#include "net/base/file_stream.h"
-#include "webkit/glue/resource_loader_bridge.h"
-
-class WebMediaPlayerDelegateImpl;
-
-class DataSourceImpl : public media::DataSource,
- public webkit_glue::ResourceLoaderBridge::Peer {
- public:
- // Methods called from render thread ----------------------------------------
- // Static methods for creating this class.
- static media::FilterFactory* CreateFactory(
- WebMediaPlayerDelegateImpl* delegate) {
- return new media::FilterFactoryImpl1<DataSourceImpl,
- WebMediaPlayerDelegateImpl*>(delegate);
- }
-
- // webkit_glue::ResourceLoaderBridge::Peer implementations, receive events
- // for resource loading.
- virtual void OnDownloadProgress(uint64 position, uint64 size);
- virtual void OnUploadProgress(uint64 position, uint64 size);
- virtual void OnReceivedRedirect(const GURL& new_url);
- virtual void OnReceivedResponse(
- const webkit_glue::ResourceLoaderBridge::ResponseInfo& info,
- bool content_filtered);
- virtual void OnReceivedData(const char* data, int len);
- virtual void OnCompletedRequest(const URLRequestStatus& status,
- const std::string& security_info);
- virtual std::string GetURLForDebugging();
-
- // Methods called from pipeline thread --------------------------------------
- virtual bool Initialize(const std::string& url);
- // media::MediaFilter implementation.
- virtual void Stop();
-
- // Methods called from demuxer thread ---------------------------------------
- // media::DataSource implementation.
- virtual size_t Read(uint8* data, size_t size);
- virtual bool GetPosition(int64* position_out);
- virtual bool SetPosition(int64 position);
- virtual bool GetSize(int64* size_out);
- virtual bool IsSeekable();
-
- const media::MediaFormat& media_format();
-
- private:
- friend class media::FilterFactoryImpl1<DataSourceImpl,
- WebMediaPlayerDelegateImpl*>;
- // Call to filter host to trigger an error, be sure not to call this method
- // while the lock is acquired.
- void HandleError(media::PipelineError error);
-
- // Methods called from render thread ----------------------------------------
- explicit DataSourceImpl(WebMediaPlayerDelegateImpl* delegate);
- virtual ~DataSourceImpl();
-
- // Tasks to be posted on render thread.
- void OnInitialize(std::string uri);
- void OnCancel();
- void OnDestroy();
-
- // Methods called from IO thread --------------------------------------------
- // Handlers for file reading.
- void OnCreateFileStream(base::PlatformFile file);
- void OnReadFileStream(uint8* data, size_t size);
- void OnSeekFileStream(net::Whence whence, int64 position);
- void OnDidFileStreamRead(int size);
-
- media::MediaFormat media_format_;
-
- // Pointer to the delegate which provides access to RenderView, this is set
- // in construction and can be accessed in all threads safely.
- WebMediaPlayerDelegateImpl* delegate_;
-
- // Message loop of render thread.
- MessageLoop* render_loop_;
-
- // A common lock for protecting members accessed by multiple threads.
- Lock lock_;
- bool stopped_;
-
- // URI to the resource being downloaded.
- std::string uri_;
-
- // Members for keeping track of downloading progress.
- base::WaitableEvent download_event_;
- int64 downloaded_bytes_;
- int64 total_bytes_;
- bool total_bytes_known_;
- bool download_completed_;
-
- // Members related to resource loading with RenderView.
- scoped_ptr<webkit_glue::ResourceLoaderBridge> resource_loader_bridge_;
-
- // Members used for reading.
- base::WaitableEvent read_event_;
- net::CompletionCallbackImpl<DataSourceImpl> read_callback_;
- scoped_ptr<net::FileStream> stream_;
- size_t last_read_size_;
- int64 position_;
- MessageLoop* io_loop_;
-
- // Events for other operations on stream_.
- base::WaitableEvent seek_event_;
-
- DISALLOW_COPY_AND_ASSIGN(DataSourceImpl);
-};
-
-#endif // CHROME_RENDERER_MEDIA_DATA_SOURCE_IMPL_H_
« no previous file with comments | « no previous file | chrome/renderer/media/data_source_impl.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698