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

Side by Side Diff: webkit/glue/media/buffered_data_source.cc

Issue 7591001: Log BufferedResourceLoader events to MediaLog. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Picking nits. Created 9 years, 4 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 unified diff | Download patch | Annotate | Revision Log
OLDNEW
1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2011 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "webkit/glue/media/buffered_data_source.h" 5 #include "webkit/glue/media/buffered_data_source.h"
6 6
7 #include "media/base/filter_host.h" 7 #include "media/base/filter_host.h"
8 #include "media/base/media_log.h"
8 #include "net/base/net_errors.h" 9 #include "net/base/net_errors.h"
9 #include "webkit/glue/media/web_data_source_factory.h" 10 #include "webkit/glue/media/web_data_source_factory.h"
10 #include "webkit/glue/webkit_glue.h" 11 #include "webkit/glue/webkit_glue.h"
11 12
12 using WebKit::WebFrame; 13 using WebKit::WebFrame;
13 14
14 namespace webkit_glue { 15 namespace webkit_glue {
15 16
16 // BufferedDataSource has an intermediate buffer, this value governs the initial 17 // BufferedDataSource has an intermediate buffer, this value governs the initial
17 // size of that buffer. It is set to 32KB because this is a typical read size 18 // size of that buffer. It is set to 32KB because this is a typical read size
18 // of FFmpeg. 19 // of FFmpeg.
19 static const int kInitialReadBufferSize = 32768; 20 static const int kInitialReadBufferSize = 32768;
20 21
21 // Number of cache misses we allow for a single Read() before signalling an 22 // Number of cache misses we allow for a single Read() before signalling an
22 // error. 23 // error.
23 static const int kNumCacheMissRetries = 3; 24 static const int kNumCacheMissRetries = 3;
24 25
25 static WebDataSource* NewBufferedDataSource(MessageLoop* render_loop, 26 static WebDataSource* NewBufferedDataSource(MessageLoop* render_loop,
26 WebKit::WebFrame* frame) { 27 WebKit::WebFrame* frame,
27 return new BufferedDataSource(render_loop, frame); 28 media::MediaLog* media_log) {
29 return new BufferedDataSource(render_loop, frame, media_log);
28 } 30 }
29 31
30 // static 32 // static
31 media::DataSourceFactory* BufferedDataSource::CreateFactory( 33 media::DataSourceFactory* BufferedDataSource::CreateFactory(
32 MessageLoop* render_loop, 34 MessageLoop* render_loop,
33 WebKit::WebFrame* frame, 35 WebKit::WebFrame* frame,
36 media::MediaLog* media_log,
34 WebDataSourceBuildObserverHack* build_observer) { 37 WebDataSourceBuildObserverHack* build_observer) {
35 return new WebDataSourceFactory(render_loop, frame, &NewBufferedDataSource, 38 return new WebDataSourceFactory(render_loop, frame, media_log,
36 build_observer); 39 &NewBufferedDataSource, build_observer);
37 } 40 }
38 41
39 BufferedDataSource::BufferedDataSource( 42 BufferedDataSource::BufferedDataSource(
40 MessageLoop* render_loop, 43 MessageLoop* render_loop,
41 WebFrame* frame) 44 WebFrame* frame,
45 media::MediaLog* media_log)
42 : total_bytes_(kPositionNotSpecified), 46 : total_bytes_(kPositionNotSpecified),
43 buffered_bytes_(0), 47 buffered_bytes_(0),
44 loaded_(false), 48 loaded_(false),
45 streaming_(false), 49 streaming_(false),
46 frame_(frame), 50 frame_(frame),
47 loader_(NULL), 51 loader_(NULL),
48 network_activity_(false), 52 network_activity_(false),
49 initialize_callback_(NULL), 53 initialize_callback_(NULL),
50 read_callback_(NULL), 54 read_callback_(NULL),
51 read_position_(0), 55 read_position_(0),
52 read_size_(0), 56 read_size_(0),
53 read_buffer_(NULL), 57 read_buffer_(NULL),
54 intermediate_read_buffer_(new uint8[kInitialReadBufferSize]), 58 intermediate_read_buffer_(new uint8[kInitialReadBufferSize]),
55 intermediate_read_buffer_size_(kInitialReadBufferSize), 59 intermediate_read_buffer_size_(kInitialReadBufferSize),
56 render_loop_(render_loop), 60 render_loop_(render_loop),
57 stop_signal_received_(false), 61 stop_signal_received_(false),
58 stopped_on_render_loop_(false), 62 stopped_on_render_loop_(false),
59 media_is_paused_(true), 63 media_is_paused_(true),
60 media_has_played_(false), 64 media_has_played_(false),
61 preload_(media::METADATA), 65 preload_(media::METADATA),
62 using_range_request_(true), 66 using_range_request_(true),
63 cache_miss_retries_left_(kNumCacheMissRetries) { 67 cache_miss_retries_left_(kNumCacheMissRetries),
68 media_log_(media_log) {
64 } 69 }
65 70
66 BufferedDataSource::~BufferedDataSource() {} 71 BufferedDataSource::~BufferedDataSource() {}
67 72
68 // A factory method to create BufferedResourceLoader using the read parameters. 73 // A factory method to create BufferedResourceLoader using the read parameters.
69 // This method can be overrided to inject mock BufferedResourceLoader object 74 // This method can be overrided to inject mock BufferedResourceLoader object
70 // for testing purpose. 75 // for testing purpose.
71 BufferedResourceLoader* BufferedDataSource::CreateResourceLoader( 76 BufferedResourceLoader* BufferedDataSource::CreateResourceLoader(
72 int64 first_byte_position, int64 last_byte_position) { 77 int64 first_byte_position, int64 last_byte_position) {
73 DCHECK(MessageLoop::current() == render_loop_); 78 DCHECK(MessageLoop::current() == render_loop_);
74 79
75 return new BufferedResourceLoader(url_, 80 return new BufferedResourceLoader(url_,
76 first_byte_position, 81 first_byte_position,
77 last_byte_position); 82 last_byte_position,
83 media_log_);
78 } 84 }
79 85
80 void BufferedDataSource::set_host(media::FilterHost* host) { 86 void BufferedDataSource::set_host(media::FilterHost* host) {
81 DataSource::set_host(host); 87 DataSource::set_host(host);
82 88
83 if (loader_.get()) 89 if (loader_.get())
84 UpdateHostState(); 90 UpdateHostState();
85 } 91 }
86 92
87 void BufferedDataSource::Initialize(const std::string& url, 93 void BufferedDataSource::Initialize(const std::string& url,
(...skipping 537 matching lines...) Expand 10 before | Expand all | Expand 10 after
625 631
626 if (streaming_) { 632 if (streaming_) {
627 filter_host->SetStreaming(true); 633 filter_host->SetStreaming(true);
628 } else { 634 } else {
629 filter_host->SetTotalBytes(total_bytes_); 635 filter_host->SetTotalBytes(total_bytes_);
630 filter_host->SetBufferedBytes(buffered_bytes_); 636 filter_host->SetBufferedBytes(buffered_bytes_);
631 } 637 }
632 } 638 }
633 639
634 } // namespace webkit_glue 640 } // namespace webkit_glue
OLDNEW
« no previous file with comments | « webkit/glue/media/buffered_data_source.h ('k') | webkit/glue/media/buffered_data_source_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698