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

Side by Side Diff: media/filters/video_renderer_base.cc

Issue 42635: Lots of files touched for a very simple change. Everywhere we used a const M... (Closed) Base URL: http://src.chromium.org/svn/trunk/src/
Patch Set: '' Created 11 years, 8 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
« no previous file with comments | « media/filters/video_renderer_base.h ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2009 The Chromium Authors. All rights reserved. Use of this 1 // Copyright (c) 2009 The Chromium Authors. All rights reserved. Use of this
2 // source code is governed by a BSD-style license that can be found in the 2 // source code is governed by a BSD-style license that can be found in the
3 // LICENSE file. 3 // LICENSE file.
4 4
5 #include "media/base/buffers.h" 5 #include "media/base/buffers.h"
6 #include "media/base/filter_host.h" 6 #include "media/base/filter_host.h"
7 #include "media/base/pipeline.h" 7 #include "media/base/pipeline.h"
8 #include "media/filters/video_renderer_base.h" 8 #include "media/filters/video_renderer_base.h"
9 9
10 namespace media { 10 namespace media {
(...skipping 27 matching lines...) Expand all
38 submit_reads_task_(NULL), 38 submit_reads_task_(NULL),
39 preroll_complete_(false) { 39 preroll_complete_(false) {
40 } 40 }
41 41
42 VideoRendererBase::~VideoRendererBase() { 42 VideoRendererBase::~VideoRendererBase() {
43 Stop(); 43 Stop();
44 } 44 }
45 45
46 // static 46 // static
47 bool VideoRendererBase::IsMediaFormatSupported( 47 bool VideoRendererBase::IsMediaFormatSupported(
48 const MediaFormat* media_format) { 48 const MediaFormat& media_format) {
49 int width; 49 int width;
50 int height; 50 int height;
51 return ParseMediaFormat(media_format, &width, &height); 51 return ParseMediaFormat(media_format, &width, &height);
52 } 52 }
53 53
54 // static 54 // static
55 bool VideoRendererBase::ParseMediaFormat(const MediaFormat* media_format, 55 bool VideoRendererBase::ParseMediaFormat(const MediaFormat& media_format,
56 int* width_out, 56 int* width_out,
57 int* height_out) { 57 int* height_out) {
58 DCHECK(media_format && width_out && height_out); 58 DCHECK(width_out && height_out);
59 std::string mime_type; 59 std::string mime_type;
60 return (media_format->GetAsString(MediaFormat::kMimeType, &mime_type) && 60 return (media_format.GetAsString(MediaFormat::kMimeType, &mime_type) &&
61 mime_type.compare(mime_type::kUncompressedVideo) == 0 && 61 mime_type.compare(mime_type::kUncompressedVideo) == 0 &&
62 media_format->GetAsInteger(MediaFormat::kWidth, width_out) && 62 media_format.GetAsInteger(MediaFormat::kWidth, width_out) &&
63 media_format->GetAsInteger(MediaFormat::kHeight, height_out)); 63 media_format.GetAsInteger(MediaFormat::kHeight, height_out));
64 } 64 }
65 65
66 void VideoRendererBase::Stop() { 66 void VideoRendererBase::Stop() {
67 OnStop(); 67 OnStop();
68 AutoLock auto_lock(lock_); 68 AutoLock auto_lock(lock_);
69 DiscardAllFrames(); 69 DiscardAllFrames();
70 if (submit_reads_task_) { 70 if (submit_reads_task_) {
71 // The task is owned by the message loop, so we don't delete it here. We 71 // The task is owned by the message loop, so we don't delete it here. We
72 // know the task won't call us because we canceled it, and we know we are 72 // know the task won't call us because we canceled it, and we know we are
73 // on the pipeline thread, since we're in the filter's Stop method, so there 73 // on the pipeline thread, since we're in the filter's Stop method, so there
74 // is no threading problem. Just let the task be run by the message loop 74 // is no threading problem. Just let the task be run by the message loop
75 // and then be killed. 75 // and then be killed.
76 submit_reads_task_->Cancel(); 76 submit_reads_task_->Cancel();
77 submit_reads_task_ = NULL; 77 submit_reads_task_ = NULL;
78 } 78 }
79 decoder_ = NULL; 79 decoder_ = NULL;
80 } 80 }
81 81
82 bool VideoRendererBase::Initialize(VideoDecoder* decoder) { 82 bool VideoRendererBase::Initialize(VideoDecoder* decoder) {
83 int width, height; 83 int width, height;
84 decoder_ = decoder; 84 decoder_ = decoder;
85 if (ParseMediaFormat(decoder_->GetMediaFormat(), &width, &height) && 85 if (ParseMediaFormat(decoder_->media_format(), &width, &height) &&
86 OnInitialize(width, height)) { 86 OnInitialize(width, height)) {
87 host_->SetVideoSize(width, height); 87 host_->SetVideoSize(width, height);
88 host_->SetTimeUpdateCallback( 88 host_->SetTimeUpdateCallback(
89 NewCallback(this, &VideoRendererBase::TimeUpdateCallback)); 89 NewCallback(this, &VideoRendererBase::TimeUpdateCallback));
90 SubmitReads(); 90 SubmitReads();
91 return true; 91 return true;
92 } 92 }
93 decoder_ = NULL; 93 decoder_ = NULL;
94 return false; 94 return false;
95 } 95 }
(...skipping 123 matching lines...) Expand 10 before | Expand all | Expand 10 after
219 (*frame_out)->GetDuration(); 219 (*frame_out)->GetDuration();
220 } else { 220 } else {
221 time_next_frame = queue_[1]->GetTimestamp(); 221 time_next_frame = queue_[1]->GetTimestamp();
222 } 222 }
223 } 223 }
224 host_->ScheduleTimeUpdateCallback(time_next_frame); 224 host_->ScheduleTimeUpdateCallback(time_next_frame);
225 } 225 }
226 } 226 }
227 227
228 } // namespace 228 } // namespace
OLDNEW
« no previous file with comments | « media/filters/video_renderer_base.h ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698