Some external codecs have their own code to determine the best number of threads. This number is not necessary the number of cpu cores. Thread_count will be only 0 if the codec has CODEC_CAP_AUTO_THREADS.tags/n0.10
@@ -777,6 +777,10 @@ typedef struct RcOverride{ | |||||
* Codec supports changed parameters at any point. | * Codec supports changed parameters at any point. | ||||
*/ | */ | ||||
#define CODEC_CAP_PARAM_CHANGE 0x4000 | #define CODEC_CAP_PARAM_CHANGE 0x4000 | ||||
/** | |||||
* Codec supports avctx->thread_count == 0 (auto). | |||||
*/ | |||||
#define CODEC_CAP_AUTO_THREADS 0x8000 | |||||
//The following defines may change, don't expect compatibility if you use them. | //The following defines may change, don't expect compatibility if you use them. | ||||
#define MB_TYPE_INTRA4x4 0x0001 | #define MB_TYPE_INTRA4x4 0x0001 | ||||
@@ -592,7 +592,7 @@ AVCodec ff_libx264_encoder = { | |||||
.init = X264_init, | .init = X264_init, | ||||
.encode = X264_frame, | .encode = X264_frame, | ||||
.close = X264_close, | .close = X264_close, | ||||
.capabilities = CODEC_CAP_DELAY, | |||||
.capabilities = CODEC_CAP_DELAY | CODEC_CAP_AUTO_THREADS, | |||||
.long_name = NULL_IF_CONFIG_SMALL("libx264 H.264 / AVC / MPEG-4 AVC / MPEG-4 part 10"), | .long_name = NULL_IF_CONFIG_SMALL("libx264 H.264 / AVC / MPEG-4 AVC / MPEG-4 part 10"), | ||||
.priv_class = &class, | .priv_class = &class, | ||||
.defaults = x264_defaults, | .defaults = x264_defaults, | ||||
@@ -982,6 +982,9 @@ static void validate_thread_parameters(AVCodecContext *avctx) | |||||
} else if (avctx->codec->capabilities & CODEC_CAP_SLICE_THREADS && | } else if (avctx->codec->capabilities & CODEC_CAP_SLICE_THREADS && | ||||
avctx->thread_type & FF_THREAD_SLICE) { | avctx->thread_type & FF_THREAD_SLICE) { | ||||
avctx->active_thread_type = FF_THREAD_SLICE; | avctx->active_thread_type = FF_THREAD_SLICE; | ||||
} else if (!(avctx->codec->capabilities & CODEC_CAP_AUTO_THREADS)) { | |||||
avctx->thread_count = 1; | |||||
avctx->active_thread_type = 0; | |||||
} | } | ||||
} | } | ||||
@@ -22,7 +22,7 @@ | |||||
#define LIBAVCODEC_VERSION_MAJOR 53 | #define LIBAVCODEC_VERSION_MAJOR 53 | ||||
#define LIBAVCODEC_VERSION_MINOR 32 | #define LIBAVCODEC_VERSION_MINOR 32 | ||||
#define LIBAVCODEC_VERSION_MICRO 1 | |||||
#define LIBAVCODEC_VERSION_MICRO 2 | |||||
#define LIBAVCODEC_VERSION_INT AV_VERSION_INT(LIBAVCODEC_VERSION_MAJOR, \ | #define LIBAVCODEC_VERSION_INT AV_VERSION_INT(LIBAVCODEC_VERSION_MAJOR, \ | ||||
LIBAVCODEC_VERSION_MINOR, \ | LIBAVCODEC_VERSION_MINOR, \ | ||||