| Index: source/libvpx/vp9/decoder/vp9_dthread.c
 | 
| diff --git a/source/libvpx/vp9/decoder/vp9_dthread.c b/source/libvpx/vp9/decoder/vp9_dthread.c
 | 
| index d2a2b819c702e9cd593cf70490762a1fcf5b8f5d..be2e6cd15ef663949cf9d2e2c7d07ac9f7eb6977 100644
 | 
| --- a/source/libvpx/vp9/decoder/vp9_dthread.c
 | 
| +++ b/source/libvpx/vp9/decoder/vp9_dthread.c
 | 
| @@ -38,9 +38,15 @@ void vp9_frameworker_unlock_stats(VP9Worker *const worker) {
 | 
|  void vp9_frameworker_signal_stats(VP9Worker *const worker) {
 | 
|  #if CONFIG_MULTITHREAD
 | 
|    FrameWorkerData *const worker_data = worker->data1;
 | 
| -  // TODO(hkuang): Investigate using broadcast or signal.
 | 
| +
 | 
| +// TODO(hkuang): Fix the pthread_cond_broadcast in windows wrapper.
 | 
| +#if defined(_WIN32) && !HAVE_PTHREAD_H
 | 
|    pthread_cond_signal(&worker_data->stats_cond);
 | 
|  #else
 | 
| +  pthread_cond_broadcast(&worker_data->stats_cond);
 | 
| +#endif
 | 
| +
 | 
| +#else
 | 
|    (void)worker;
 | 
|  #endif
 | 
|  }
 | 
| @@ -144,44 +150,22 @@ void vp9_frameworker_copy_context(VP9Worker *const dst_worker,
 | 
|          &src_worker_data->stats_mutex);
 | 
|    }
 | 
|  
 | 
| -  // src worker may have already finished decoding a frame and swapped the mi.
 | 
| -  // TODO(hkuang): Remove following code after implenment no ModeInfo decoding.
 | 
| -  if (src_worker_data->frame_decoded) {
 | 
| -    dst_cm->prev_mip = src_cm->prev_mip;
 | 
| -    dst_cm->prev_mi = src_cm->prev_mi;
 | 
| -  } else {
 | 
| -    dst_cm->prev_mip = src_cm->mip;
 | 
| -    dst_cm->prev_mi = src_cm->mi;
 | 
| -  }
 | 
| -
 | 
|    dst_cm->last_frame_seg_map = src_cm->seg.enabled ?
 | 
|        src_cm->current_frame_seg_map : src_cm->last_frame_seg_map;
 | 
|    dst_worker_data->pbi->need_resync = src_worker_data->pbi->need_resync;
 | 
|    vp9_frameworker_unlock_stats(src_worker);
 | 
|  
 | 
| -  dst_worker_data->pbi->prev_buf =
 | 
| -      src_worker_data->pbi->common.show_existing_frame ?
 | 
| -          NULL : src_worker_data->pbi->cur_buf;
 | 
| -
 | 
|    dst_cm->prev_frame = src_cm->show_existing_frame ?
 | 
|                         src_cm->prev_frame : src_cm->cur_frame;
 | 
|    dst_cm->last_width = !src_cm->show_existing_frame ?
 | 
|                         src_cm->width : src_cm->last_width;
 | 
|    dst_cm->last_height = !src_cm->show_existing_frame ?
 | 
|                          src_cm->height : src_cm->last_height;
 | 
| -  dst_cm->display_width = src_cm->display_width;
 | 
| -  dst_cm->display_height = src_cm->display_height;
 | 
|    dst_cm->subsampling_x = src_cm->subsampling_x;
 | 
|    dst_cm->subsampling_y = src_cm->subsampling_y;
 | 
| +  dst_cm->frame_type = src_cm->frame_type;
 | 
|    dst_cm->last_show_frame = !src_cm->show_existing_frame ?
 | 
|                              src_cm->show_frame : src_cm->last_show_frame;
 | 
| -  dst_cm->last_frame_type = src_cm->last_frame_type;
 | 
| -  dst_cm->frame_type = src_cm->frame_type;
 | 
| -  dst_cm->y_dc_delta_q = src_cm->y_dc_delta_q;
 | 
| -  dst_cm->uv_dc_delta_q = src_cm->uv_dc_delta_q;
 | 
| -  dst_cm->uv_ac_delta_q = src_cm->uv_ac_delta_q;
 | 
| -  dst_cm->base_qindex = src_cm->base_qindex;
 | 
| -
 | 
|    for (i = 0; i < REF_FRAMES; ++i)
 | 
|      dst_cm->ref_frame_map[i] = src_cm->next_ref_frame_map[i];
 | 
|  
 | 
| 
 |