diff --git a/veejay-current/veejay-server/libel/vj-avcodec.c b/veejay-current/veejay-server/libel/vj-avcodec.c index 8ecbacda..d6c80d6e 100644 --- a/veejay-current/veejay-server/libel/vj-avcodec.c +++ b/veejay-current/veejay-server/libel/vj-avcodec.c @@ -229,9 +229,16 @@ static vj_encoder *vj_avcodec_new_encoder( int id, VJFrame *frame, char *filenam e->context->pix_fmt = get_ffmpeg_pixfmt( out_pixel_format ); pf = e->context->pix_fmt; - char *descr = vj_avcodec_get_codec_name( id ); #if LIBAVCODEC_BUILD > 5400 + + int n_threads = avhelper_set_num_decoders(); + + if( n_threads > 0 ) { + e->context->thread_count = n_threads; + e->context->thread_type = FF_THREAD_FRAME; + } + if ( avcodec_open2( e->context, e->codec, NULL ) ) #else if ( avcodec_open( e->context, e->codec ) < 0 ) diff --git a/veejay-current/veejay-server/libstream/v4l2utils.c b/veejay-current/veejay-server/libstream/v4l2utils.c index c9d864bd..888d720a 100644 --- a/veejay-current/veejay-server/libstream/v4l2utils.c +++ b/veejay-current/veejay-server/libstream/v4l2utils.c @@ -617,6 +617,14 @@ static int v4l2_setup_avcodec_capture( v4l2info *v, int wid, int hei, int codec_ v->c->flags |= CODEC_FLAG_TRUNCATED; #if LIBAVCODEC_BUILD > 5400 + + int n_threads = avhelper_set_num_decoders(); + + if( n_threads > 0 ) { + e->context->thread_count = n_threads; + e->context->thread_type = FF_THREAD_FRAME; + } + if( avcodec_open2( v->c, v->codec, NULL ) < 0 ) #else if( avcodec_open( v->c, v->codec ) < 0 )