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

Side by Side Diff: remoting/client/software_video_renderer.cc

Issue 1298863003: Remove VideoDecoder::Initialize(). (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 5 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
« no previous file with comments | « no previous file | remoting/codec/codec_test.cc » ('j') | remoting/codec/video_decoder_verbatim.cc » ('J')
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2014 The Chromium Authors. All rights reserved. 1 // Copyright 2014 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 "remoting/client/software_video_renderer.h" 5 #include "remoting/client/software_video_renderer.h"
6 6
7 #include <list> 7 #include <list>
8 8
9 #include "base/bind.h" 9 #include "base/bind.h"
10 #include "base/callback.h" 10 #include "base/callback.h"
(...skipping 19 matching lines...) Expand all
30 // This class wraps a VideoDecoder and byte-swaps the pixels for compatibility 30 // This class wraps a VideoDecoder and byte-swaps the pixels for compatibility
31 // with the android.graphics.Bitmap class. 31 // with the android.graphics.Bitmap class.
32 // TODO(lambroslambrou): Refactor so that the VideoDecoder produces data 32 // TODO(lambroslambrou): Refactor so that the VideoDecoder produces data
33 // in the right byte-order, instead of swapping it here. 33 // in the right byte-order, instead of swapping it here.
34 class RgbToBgrVideoDecoderFilter : public VideoDecoder { 34 class RgbToBgrVideoDecoderFilter : public VideoDecoder {
35 public: 35 public:
36 RgbToBgrVideoDecoderFilter(scoped_ptr<VideoDecoder> parent) 36 RgbToBgrVideoDecoderFilter(scoped_ptr<VideoDecoder> parent)
37 : parent_(parent.Pass()) { 37 : parent_(parent.Pass()) {
38 } 38 }
39 39
40 void Initialize(const webrtc::DesktopSize& screen_size) override {
41 parent_->Initialize(screen_size);
42 }
43
44 bool DecodePacket(const VideoPacket& packet) override { 40 bool DecodePacket(const VideoPacket& packet) override {
45 return parent_->DecodePacket(packet); 41 return parent_->DecodePacket(packet);
46 } 42 }
47 43
48 void Invalidate(const webrtc::DesktopSize& view_size, 44 void Invalidate(const webrtc::DesktopSize& view_size,
49 const webrtc::DesktopRegion& region) override { 45 const webrtc::DesktopRegion& region) override {
50 return parent_->Invalidate(view_size, region); 46 return parent_->Invalidate(view_size, region);
51 } 47 }
52 48
53 void RenderFrame(const webrtc::DesktopSize& view_size, 49 void RenderFrame(const webrtc::DesktopSize& view_size,
(...skipping 133 matching lines...) Expand 10 before | Expand all | Expand 10 after
187 notify_size_or_dpi_change = true; 183 notify_size_or_dpi_change = true;
188 } 184 }
189 } 185 }
190 186
191 // If we've never seen a screen size, ignore the packet. 187 // If we've never seen a screen size, ignore the packet.
192 if (source_size_.is_empty()) { 188 if (source_size_.is_empty()) {
193 main_task_runner_->PostTask(FROM_HERE, base::Bind(done)); 189 main_task_runner_->PostTask(FROM_HERE, base::Bind(done));
194 return; 190 return;
195 } 191 }
196 192
197 if (decoder_needs_reset)
198 decoder_->Initialize(source_size_);
199 if (notify_size_or_dpi_change) 193 if (notify_size_or_dpi_change)
200 consumer_->SetSourceSize(source_size_, source_dpi_); 194 consumer_->SetSourceSize(source_size_, source_dpi_);
201 195
202 if (decoder_->DecodePacket(*packet.get())) { 196 if (decoder_->DecodePacket(*packet.get())) {
203 SchedulePaint(); 197 SchedulePaint();
204 } else { 198 } else {
205 LOG(ERROR) << "DecodePacket() failed."; 199 LOG(ERROR) << "DecodePacket() failed.";
206 } 200 }
207 201
208 main_task_runner_->PostTask(FROM_HERE, base::Bind(done)); 202 main_task_runner_->PostTask(FROM_HERE, base::Bind(done));
(...skipping 194 matching lines...) Expand 10 before | Expand all | Expand 10 after
403 DCHECK(CalledOnValidThread()); 397 DCHECK(CalledOnValidThread());
404 398
405 // Record the latency between the packet being received and presented. 399 // Record the latency between the packet being received and presented.
406 base::TimeDelta decode_time = base::Time::Now() - decode_start; 400 base::TimeDelta decode_time = base::Time::Now() - decode_start;
407 stats_.RecordDecodeTime(decode_time.InMilliseconds()); 401 stats_.RecordDecodeTime(decode_time.InMilliseconds());
408 402
409 decode_task_runner_->PostTask(FROM_HERE, done); 403 decode_task_runner_->PostTask(FROM_HERE, done);
410 } 404 }
411 405
412 } // namespace remoting 406 } // namespace remoting
OLDNEW
« no previous file with comments | « no previous file | remoting/codec/codec_test.cc » ('j') | remoting/codec/video_decoder_verbatim.cc » ('J')

Powered by Google App Engine
This is Rietveld 408576698