int work_error;
hb_thread_t * work_thread;
- int cpu_count;
-
hb_lock_t * state_lock;
hb_state_t state;
*/
hb_buffer_pool_init();
- /* CPU count detection */
- hb_log( "hb_init: checking cpu count" );
- h->cpu_count = hb_get_cpu_count();
-
h->list_title = hb_list_init();
h->jobs = hb_list_init();
}
}
- /* CPU count detection */
- hb_log( "hb_init: checking cpu count" );
- h->cpu_count = hb_get_cpu_count();
-
h->list_title = hb_list_init();
h->jobs = hb_list_init();
h->current_job = NULL;
}
/**
- * Sets the cpu count to the desired value.
- * @param h Handle to hb_handle_t
- * @param cpu_count Number of CPUs to use.
- */
-void hb_set_cpu_count( hb_handle_t * h, int cpu_count )
-{
- cpu_count = MAX( 1, cpu_count );
- cpu_count = MIN( cpu_count, 8 );
- h->cpu_count = cpu_count;
-}
-
-/**
* Deletes current previews associated with titles
* @param h Handle to hb_handle_t
*/
{
case 1:
/* Strict anamorphic */
- *output_width = cropped_width;
- *output_height = cropped_height;
- *output_par_width = title->pixel_aspect_width;
- *output_par_height = title->pixel_aspect_height;
+ *output_width = MULTIPLE_MOD( cropped_width, 2 );
+ *output_height = MULTIPLE_MOD( cropped_height, 2 );
+ // adjust the source PAR for new width/height
+ // new PAR = source PAR * ( old width / new_width ) * ( new_height / old_height )
+ pixel_aspect_width = title->pixel_aspect_width * cropped_width * (*output_height);
+ pixel_aspect_height = title->pixel_aspect_height * (*output_width) * cropped_height;
break;
case 2:
/* The film AR is the source's display width / cropped source height.
The output display width is the output height * film AR.
The output PAR is the output display width / output storage width. */
- pixel_aspect_width = height * source_display_width / cropped_height;
- pixel_aspect_height = width;
+ pixel_aspect_width = height * cropped_width * pixel_aspect_width;
+ pixel_aspect_height = width * cropped_height * pixel_aspect_height;
/* Pass the results back to the caller */
*output_width = width;
h->paused = 0;
h->work_die = 0;
- h->work_thread = hb_work_init( h->jobs, h->cpu_count,
- &h->work_die, &h->work_error, &h->current_job );
+ h->work_thread = hb_work_init( h->jobs, &h->work_die, &h->work_error, &h->current_job );
}
/**