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

Unified Diff: remoting/client/chromoting_view.cc

Issue 3305001: Move decoder into separate thread, clean up API layering, and redo update protocl (Closed)
Patch Set: Fix compile error. Created 10 years, 2 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 | « remoting/client/chromoting_view.h ('k') | remoting/client/chromoting_view_unittest.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: remoting/client/chromoting_view.cc
diff --git a/remoting/client/chromoting_view.cc b/remoting/client/chromoting_view.cc
index 95d2dfafb5bff9070caa58d68b8c6982699a0335..ba34a5d46291c221832b701114254db33740ebc3 100644
--- a/remoting/client/chromoting_view.cc
+++ b/remoting/client/chromoting_view.cc
@@ -4,8 +4,9 @@
#include "remoting/client/chromoting_view.h"
-#include "remoting/base/decoder_verbatim.h"
-#include "remoting/base/decoder_zlib.h"
+#include "base/message_loop.h"
+#include "base/waitable_event.h"
+#include "remoting/base/tracer.h"
namespace remoting {
@@ -14,7 +15,6 @@ ChromotingView::ChromotingView()
frame_height_(0) {
}
-
// TODO(garykac): This assumes a single screen. This will need to be adjusted
// to add support for mulitple monitors.
void ChromotingView::GetScreenSize(int* width, int* height) {
@@ -22,90 +22,4 @@ void ChromotingView::GetScreenSize(int* width, int* height) {
*height = frame_height_;
}
-bool ChromotingView::SetupDecoder(UpdateStreamEncoding encoding) {
- if (encoding == EncodingInvalid) {
- LOG(ERROR) << "Cannot create encoder for EncodingInvalid";
- return false;
- }
-
- // If we're in the middle of decoding a stream, then we need to make sure
- // that that all packets in that stream match the encoding of the first
- // packet.
- //
- // If we decide to relax this constraint in the future, we'll need to
- // update this to keep a set of decoders around.
- if (decoder_.get() && decoder_->IsStarted()) {
- // Verify that the encoding matches the decoder. Once we've started
- // decoding, we can't switch to another decoder.
- if (decoder_->Encoding() != encoding) {
- LOG(ERROR) << "Encoding mismatch: Set up to handle "
- << "UpdateStreamEncoding=" << decoder_->Encoding()
- << " but received request for "
- << encoding;
- return false;
- }
- return true;
- }
-
- // Lazily initialize a new decoder.
- // We create a new decoder if we don't currently have a decoder or if the
- // decoder doesn't match the desired encoding.
- if (!decoder_.get() || decoder_->Encoding() != encoding) {
- // Initialize a new decoder based on this message encoding.
- if (encoding == EncodingNone) {
- decoder_.reset(new DecoderVerbatim());
- } else if (encoding == EncodingZlib) {
- decoder_.reset(new DecoderZlib());
- }
- // Make sure we successfully allocated a decoder of the correct type.
- DCHECK(decoder_.get());
- DCHECK(decoder_->Encoding() == encoding);
- }
-
- return true;
-}
-
-bool ChromotingView::BeginDecoding(Task* partial_decode_done,
- Task* decode_done) {
- if (decoder_->IsStarted()) {
- LOG(ERROR) << "BeginDecoding called without ending previous decode.";
- return false;
- }
-
- decoder_->BeginDecode(frame_, &update_rects_,
- partial_decode_done, decode_done);
-
- if (!decoder_->IsStarted()) {
- LOG(ERROR) << "Unable to start decoding.";
- return false;
- }
-
- return true;
-}
-
-bool ChromotingView::Decode(ChromotingHostMessage* msg) {
- if (!decoder_->IsStarted()) {
- LOG(ERROR) << "Attempt to decode payload before calling BeginDecode.";
- return false;
- }
-
- return decoder_->PartialDecode(msg);
-}
-
-bool ChromotingView::EndDecoding() {
- if (!decoder_->IsStarted()) {
- LOG(ERROR) << "Attempt to end decode when none has been started.";
- return false;
- }
-
- decoder_->EndDecode();
-
- if (decoder_->IsStarted()) {
- LOG(ERROR) << "Unable to properly end decoding.\n";
- return false;
- }
-
- return true;
-}
-
} // namespace remoting
« no previous file with comments | « remoting/client/chromoting_view.h ('k') | remoting/client/chromoting_view_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698