Switch to a smoother stretch algorithm on Windows and delete buffers from previous conversations on linux when switching back to peer list.

Review URL: http://webrtc-codereview.appspot.com/135003

git-svn-id: http://webrtc.googlecode.com/svn/trunk@488 4adac7df-926f-26a2-2b94-8c16560cd09d
This commit is contained in:
tommi@webrtc.org
2011-08-30 08:39:04 +00:00
parent 3266d8d85d
commit 8811e5af02
2 changed files with 29 additions and 7 deletions

View File

@@ -141,14 +141,12 @@ MainWindow::UI GtkMainWnd::current_ui() {
}
cricket::VideoRenderer* GtkMainWnd::local_renderer() {
if (!local_renderer_.get())
local_renderer_.reset(new VideoRenderer(this));
ASSERT(local_renderer_.get() != NULL);
return local_renderer_.get();
}
cricket::VideoRenderer* GtkMainWnd::remote_renderer() {
if (!remote_renderer_.get())
remote_renderer_.reset(new VideoRenderer(this));
ASSERT(remote_renderer_.get() != NULL);
return remote_renderer_.get();
}
@@ -234,6 +232,10 @@ void GtkMainWnd::SwitchToConnectUI() {
void GtkMainWnd::SwitchToPeerList(const Peers& peers) {
LOG(INFO) << __FUNCTION__;
// Clean up buffers from a potential previous session.
local_renderer_.reset();
remote_renderer_.reset();
if (!peer_list_) {
gtk_container_set_border_width(GTK_CONTAINER(window_), 0);
if (vbox_) {
@@ -270,6 +272,12 @@ void GtkMainWnd::SwitchToStreamingUI() {
ASSERT(draw_area_ == NULL);
// Prepare new buffers for the new conversation. We don't
// reuse buffers across sessions to avoid possibly rendering
// a frame from the previous conversation.
remote_renderer_.reset(new VideoRenderer(this));
local_renderer_.reset(new VideoRenderer(this));
gtk_container_set_border_width(GTK_CONTAINER(window_), 0);
if (peer_list_) {
gtk_widget_destroy(peer_list_);