Commit 0e78efad authored by Yunqing Wang's avatar Yunqing Wang
Browse files

Replace sleep(0) calls in multi-threaded decoder

This is a workaround for gLucid problem.

Change-Id: I188a016a07e4c2ea212444c5a6284ff3c48a5caa
parent 0b94f5d6
...@@ -75,7 +75,8 @@ ...@@ -75,7 +75,8 @@
#define thread_sleep(nms) // { struct timespec ts;ts.tv_sec=0; ts.tv_nsec = 1000*nms;nanosleep(&ts, NULL);} #define thread_sleep(nms) // { struct timespec ts;ts.tv_sec=0; ts.tv_nsec = 1000*nms;nanosleep(&ts, NULL);}
#else #else
#include <unistd.h> #include <unistd.h>
#define thread_sleep(nms) usleep(nms*1000);// {struct timespec ts;ts.tv_sec=0; ts.tv_nsec = 1000*nms;nanosleep(&ts, NULL);} #include <sched.h>
#define thread_sleep(nms) sched_yield();// {struct timespec ts;ts.tv_sec=0; ts.tv_nsec = 1000*nms;nanosleep(&ts, NULL);}
#endif #endif
/* Not Windows. Assume pthreads */ /* Not Windows. Assume pthreads */
......
...@@ -611,15 +611,12 @@ void vp8_mtdecode_mb_rows(VP8D_COMP *pbi, ...@@ -611,15 +611,12 @@ void vp8_mtdecode_mb_rows(VP8D_COMP *pbi,
for (mb_col = 0; mb_col < pc->mb_cols; mb_col++) for (mb_col = 0; mb_col < pc->mb_cols; mb_col++)
{ {
if ( mb_row > 0 && (mb_col & 7) == 0){ if ( mb_row > 0 && (mb_col & 7) == 0){
//if ( mb_row > 0 ){
while (mb_col > (*last_row_current_mb_col - 8) && *last_row_current_mb_col != pc->mb_cols - 1) while (mb_col > (*last_row_current_mb_col - 8) && *last_row_current_mb_col != pc->mb_cols - 1)
{ {
x86_pause_hint(); x86_pause_hint();
thread_sleep(0); thread_sleep(0);
} }
} }
if (xd->mode_info_context->mbmi.mode == SPLITMV || xd->mode_info_context->mbmi.mode == B_PRED) if (xd->mode_info_context->mbmi.mode == SPLITMV || xd->mode_info_context->mbmi.mode == B_PRED)
...@@ -763,7 +760,6 @@ void vp8_mt_loop_filter_frame( VP8D_COMP *pbi) ...@@ -763,7 +760,6 @@ void vp8_mt_loop_filter_frame( VP8D_COMP *pbi)
{ {
int Segment = (alt_flt_enabled) ? mbd->mode_info_context->mbmi.segment_id : 0; int Segment = (alt_flt_enabled) ? mbd->mode_info_context->mbmi.segment_id : 0;
if ( mb_row > 0 && (mb_col & 7) == 0){ if ( mb_row > 0 && (mb_col & 7) == 0){
// if ( mb_row > 0 ){ // if ( mb_row > 0 ){
while (mb_col > (*last_row_current_mb_col-8) && *last_row_current_mb_col != cm->mb_cols - 1) while (mb_col > (*last_row_current_mb_col-8) && *last_row_current_mb_col != cm->mb_cols - 1)
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment