diff options
author | sergeyu@chromium.org <sergeyu@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2010-11-02 01:08:19 +0000 |
---|---|---|
committer | sergeyu@chromium.org <sergeyu@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2010-11-02 01:08:19 +0000 |
commit | 04b36141e7b2b1540b1b84a039f6d078ca770442 (patch) | |
tree | ae3b109a5c603c3382a5ae5555d599599a59d03f /remoting/host/session_manager.cc | |
parent | 21a7127af3e46e81d1f2eccf9dccfb8b394d8688 (diff) | |
download | chromium_src-04b36141e7b2b1540b1b84a039f6d078ca770442.zip chromium_src-04b36141e7b2b1540b1b84a039f6d078ca770442.tar.gz chromium_src-04b36141e7b2b1540b1b84a039f6d078ca770442.tar.bz2 |
Cleanups in the video encoding decoding code. Reenable VP8.
1. Moved video-related protobuf messages from event.proto to video.proto. Removed those that we don't need anymore
2. Fixed naming for enums and some types.
3. Reenabled VP8.
4. Proper RGB-YUV converter for VP8 encoder.
5. Changed the capturer_fake to show more meaningful picture.
BUG=57374
TEST=unittests
Review URL: http://codereview.chromium.org/4136010
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@64700 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'remoting/host/session_manager.cc')
-rw-r--r-- | remoting/host/session_manager.cc | 17 |
1 files changed, 8 insertions, 9 deletions
diff --git a/remoting/host/session_manager.cc b/remoting/host/session_manager.cc index a61a6bdd..1867f07 100644 --- a/remoting/host/session_manager.cc +++ b/remoting/host/session_manager.cc @@ -328,18 +328,16 @@ void SessionManager::DoRateControl() { ScheduleNextRateControl(); } -void SessionManager::DoSendUpdate(ChromotingHostMessage* message, - Encoder::EncodingState state) { +void SessionManager::DoSendVideoPacket(VideoPacket* packet) { DCHECK_EQ(network_loop_, MessageLoop::current()); TraceContext::tracer()->PrintString("DoSendUpdate"); for (ClientConnectionList::const_iterator i = clients_.begin(); i < clients_.end(); ++i) { - (*i)->SendUpdateStreamPacketMessage(*message); + (*i)->SendVideoPacket(*packet); } - - delete message; + delete packet; TraceContext::tracer()->PrintString("DoSendUpdate done"); } @@ -399,19 +397,20 @@ void SessionManager::DoEncode( TraceContext::tracer()->PrintString("Encode Done"); } -void SessionManager::EncodeDataAvailableTask( - ChromotingHostMessage* message, Encoder::EncodingState state) { +void SessionManager::EncodeDataAvailableTask(VideoPacket* packet) { DCHECK_EQ(encode_loop_, MessageLoop::current()); + bool last = (packet->flags() & VideoPacket::LAST_PACKET) != 0; + // Before a new encode task starts, notify clients a new update // stream is coming. // Notify this will keep a reference to the DataBuffer in the // task. The ownership will eventually pass to the ClientConnections. network_loop_->PostTask( FROM_HERE, - NewTracedMethod(this, &SessionManager::DoSendUpdate, message, state)); + NewTracedMethod(this, &SessionManager::DoSendVideoPacket, packet)); - if (state & Encoder::EncodingEnded) { + if (last) { capture_loop_->PostTask( FROM_HERE, NewTracedMethod(this, &SessionManager::DoFinishEncode)); } |