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; return 0;
if(!avctx->thread_count) { 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); 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_thread_can_start_frame(AVCodecContext *avctx);
int ff_get_logical_cpus(AVCodecContext *avctx);
int avpriv_h264_has_num_reorder_frames(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 */ * limit the number of threads to 16 for automatic detection */
#define MAX_AUTO_THREADS 16 #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) static void* attribute_align_arg worker(void *v)
{ {
AVCodecContext *avctx = v; AVCodecContext *avctx = v;
@ -265,7 +256,9 @@ static int thread_init(AVCodecContext *avctx)
int thread_count = avctx->thread_count; int thread_count = avctx->thread_count;
if (!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 // use number of cores + 1 as thread count if there is more than one
if (nb_cpus > 1) if (nb_cpus > 1)
thread_count = avctx->thread_count = FFMIN(nb_cpus + 1, MAX_AUTO_THREADS); thread_count = avctx->thread_count = FFMIN(nb_cpus + 1, MAX_AUTO_THREADS);

Loading…
Cancel
Save