| 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];
|
|
|
|
|