avcodec: remove ff_get_logical_cpus()

This simplifies the code

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
pull/20/merge
Michael Niedermayer 12 years ago
parent 0cbfbdef4a
commit 42bb3e4db6
  1. 2
      libavcodec/frame_thread_encoder.c
  2. 2
      libavcodec/internal.h
  3. 13
      libavcodec/pthread.c

@ -126,7 +126,7 @@ int ff_frame_thread_encoder_init(AVCodecContext *avctx, AVDictionary *options){
return 0;
if(!avctx->thread_count) {
avctx->thread_count = ff_get_logical_cpus(avctx);
avctx->thread_count = av_cpu_count();
avctx->thread_count = FFMIN(avctx->thread_count, MAX_THREADS);
}

@ -207,8 +207,6 @@ int ff_reget_buffer(AVCodecContext *avctx, AVFrame *frame);
int ff_thread_can_start_frame(AVCodecContext *avctx);
int ff_get_logical_cpus(AVCodecContext *avctx);
int avpriv_h264_has_num_reorder_frames(AVCodecContext *avctx);
/**

@ -146,15 +146,6 @@ typedef struct FrameThreadContext {
* limit the number of threads to 16 for automatic detection */
#define MAX_AUTO_THREADS 16
int ff_get_logical_cpus(AVCodecContext *avctx)
{
int nb_cpus = av_cpu_count();
if (avctx->height)
nb_cpus = FFMIN(nb_cpus, (avctx->height+15)/16);
return nb_cpus;
}
static void* attribute_align_arg worker(void *v)
{
AVCodecContext *avctx = v;
@ -265,7 +256,9 @@ static int thread_init(AVCodecContext *avctx)
int thread_count = avctx->thread_count;
if (!thread_count) {
int nb_cpus = ff_get_logical_cpus(avctx);
int nb_cpus = av_cpu_count();
if (avctx->height)
nb_cpus = FFMIN(nb_cpus, (avctx->height+15)/16);
// use number of cores + 1 as thread count if there is more than one
if (nb_cpus > 1)
thread_count = avctx->thread_count = FFMIN(nb_cpus + 1, MAX_AUTO_THREADS);

Loading…
Cancel
Save