summaryrefslogtreecommitdiffstats
path: root/remoting/host/session_manager.cc
diff options
context:
space:
mode:
authorsergeyu@chromium.org <sergeyu@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2010-11-02 01:08:19 +0000
committersergeyu@chromium.org <sergeyu@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2010-11-02 01:08:19 +0000
commit04b36141e7b2b1540b1b84a039f6d078ca770442 (patch)
treeae3b109a5c603c3382a5ae5555d599599a59d03f /remoting/host/session_manager.cc
parent21a7127af3e46e81d1f2eccf9dccfb8b394d8688 (diff)
downloadchromium_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.cc17
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));
}