[FFmpeg-devel] [PATCH] lavc: make compilation of frame_thread_encoder.o optional.
Michael Niedermayer
michaelni at gmx.at
Wed Mar 13 15:57:04 CET 2013
On Tue, Mar 12, 2013 at 09:24:08PM -0700, Ronald S. Bultje wrote:
> From: "Ronald S. Bultje" <rsbultje at gmail.com>
>
> Only compile if CONFIG_ENCODERS is enabled, i.e. if at least one
> encoder is to be compiled. This prevents it from being includes in
> a decoder-only build.
> ---
> libavcodec/Makefile | 12 +++++++++---
> libavcodec/utils.c | 8 +++++---
> 2 files changed, 14 insertions(+), 6 deletions(-)
>
> diff --git a/libavcodec/Makefile b/libavcodec/Makefile
> index 69f9b83..3b4bba4 100644
> --- a/libavcodec/Makefile
> +++ b/libavcodec/Makefile
> @@ -771,9 +771,15 @@ OBJS-$(CONFIG_REMOVE_EXTRADATA_BSF) += remove_extradata_bsf.o
> OBJS-$(CONFIG_TEXT2MOVSUB_BSF) += movsub_bsf.o
>
> # thread libraries
> -OBJS-$(HAVE_PTHREADS) += pthread.o frame_thread_encoder.o
> -OBJS-$(HAVE_W32THREADS) += pthread.o frame_thread_encoder.o
> -OBJS-$(HAVE_OS2THREADS) += pthread.o frame_thread_encoder.o
> +OBJS-$(HAVE_PTHREADS) += pthread.o
> +OBJS-$(HAVE_W32THREADS) += pthread.o
> +OBJS-$(HAVE_OS2THREADS) += pthread.o
> +
> +ifdef CONFIG_ENCODERS
> +OBJS-$(HAVE_PTHREADS) += frame_thread_encoder.o
> +OBJS-$(HAVE_W32THREADS) += frame_thread_encoder.o
> +OBJS-$(HAVE_OS2THREADS) += frame_thread_encoder.o
> +endif
>
> SKIPHEADERS += %_tablegen.h \
> %_tables.h \
> diff --git a/libavcodec/utils.c b/libavcodec/utils.c
> index 13f8d0f..90b02b8 100644
> --- a/libavcodec/utils.c
> +++ b/libavcodec/utils.c
> @@ -1126,7 +1126,7 @@ int attribute_align_arg avcodec_open2(AVCodecContext *avctx, const AVCodec *code
> if (!HAVE_THREADS)
> av_log(avctx, AV_LOG_WARNING, "Warning: not compiled with thread support, using thread emulation\n");
>
> - if (HAVE_THREADS) {
> + if (HAVE_THREADS && CONFIG_ENCODERS) {
> ff_unlock_avcodec(); //we will instanciate a few encoders thus kick the counter to prevent false detection of a problem
> ret = ff_frame_thread_encoder_init(avctx, options ? *options : NULL);
> ff_lock_avcodec(avctx);
> @@ -1688,7 +1688,8 @@ int attribute_align_arg avcodec_encode_video2(AVCodecContext *avctx,
>
> *got_packet_ptr = 0;
>
> - if(HAVE_THREADS && avctx->internal->frame_thread_encoder && (avctx->active_thread_type&FF_THREAD_FRAME))
> + if(HAVE_THREADS && CONFIG_ENCODERS &&
> + avctx->internal->frame_thread_encoder && (avctx->active_thread_type&FF_THREAD_FRAME))
> return ff_thread_video_encode_frame(avctx, avpkt, frame, got_packet_ptr);
>
> if ((avctx->flags&CODEC_FLAG_PASS1) && avctx->stats_out)
> @@ -2263,7 +2264,8 @@ av_cold int avcodec_close(AVCodecContext *avctx)
> if (avcodec_is_open(avctx)) {
> FramePool *pool = avctx->internal->pool;
> int i;
> - if (HAVE_THREADS && avctx->internal->frame_thread_encoder && avctx->thread_count > 1) {
> + if (HAVE_THREADS && CONFIG_ENCODERS &&
these could be simplified with a CONFIG_FRAME_THREAD_ENCODER
[...]
--
Michael GnuPG fingerprint: 9FF2128B147EF6730BADF133611EC787040B0FAB
DNS cache poisoning attacks, popular search engine, Google internet authority
dont be evil, please
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 198 bytes
Desc: Digital signature
URL: <http://ffmpeg.org/pipermail/ffmpeg-devel/attachments/20130313/0f388f54/attachment.asc>
More information about the ffmpeg-devel
mailing list