r940 broke threads
authorLoren Merritt <pengvado@akuvian.org>
Thu, 21 Aug 2008 01:00:52 +0000 (19:00 -0600)
committerLoren Merritt <pengvado@akuvian.org>
Thu, 21 Aug 2008 01:00:52 +0000 (19:00 -0600)
common/common.h
encoder/encoder.c

index dde1b10..6158295 100644 (file)
@@ -262,6 +262,8 @@ struct x264_t
         int         i_frame_size;
     } out;
 
+    /**** thread synchronization starts here ****/
+
     /* frame number/poc */
     int             i_frame;
 
@@ -404,6 +406,10 @@ struct x264_t
         int     i_mb_prev_xy;
         int     i_mb_top_xy;
 
+        /**** thread synchronization ends here ****/
+        /* subsequence variables are either thread-local or constant,
+         * and won't be copied from one thread to another */
+
         /* mb table */
         int8_t  *type;                      /* mb type */
         int8_t  *qp;                        /* mb qp */
index 89309ee..ab45238 100644 (file)
@@ -1258,7 +1258,6 @@ static void x264_thread_sync_context( x264_t *dst, x264_t *src )
 
     // copy everything except the per-thread pointers and the constants.
     memcpy( &dst->i_frame, &src->i_frame, offsetof(x264_t, mb.type) - offsetof(x264_t, i_frame) );
-    memcpy( &dst->mb.i_type, &src->mb.i_type, offsetof(x264_t, rc) - offsetof(x264_t, mb.i_type) );
     dst->stat = src->stat;
 }