goto fail;
h->thread[0] = h;
- for( int i = 0; i < h->param.i_threads + !!h->param.i_sync_lookahead; i++ )
- {
- if( i )
- CHECKED_MALLOC( h->thread[i], sizeof(x264_t) );
- if( i < h->param.i_threads )
- {
- if( x264_pthread_mutex_init( &h->thread[i]->mutex, NULL ) )
- goto fail;
- if( x264_pthread_cond_init( &h->thread[i]->cv, NULL ) )
- goto fail;
- }
- }
+ for( int i = 1; i < h->param.i_threads + !!h->param.i_sync_lookahead; i++ )
+ CHECKED_MALLOC( h->thread[i], sizeof(x264_t) );
for( int i = 0; i < h->param.i_threads; i++ )
{
if( i > 0 )
*h->thread[i] = *h;
+ if( x264_pthread_mutex_init( &h->thread[i]->mutex, NULL ) )
+ goto fail;
+ if( x264_pthread_cond_init( &h->thread[i]->cv, NULL ) )
+ goto fail;
+
if( allocate_threadlocal_data )
{
h->thread[i]->fdec = x264_frame_pop_unused( h, 1 );