summaryrefslogtreecommitdiffstats
path: root/libmpcodecs
diff options
context:
space:
mode:
authormichael <michael@b3059339-0415-0410-9bf9-f77b7e298cf2>2005-12-02 22:00:50 +0000
committermichael <michael@b3059339-0415-0410-9bf9-f77b7e298cf2>2005-12-02 22:00:50 +0000
commitf553d3d22f18878754b92c2db2c4a35858c90312 (patch)
tree5424d9b19b96f6080fbf7668075c56a20cef94d5 /libmpcodecs
parentc4f58eee9ef0d6a90bdb306d27ea42fddb304f79 (diff)
downloadmpv-f553d3d22f18878754b92c2db2c4a35858c90312.tar.bz2
mpv-f553d3d22f18878754b92c2db2c4a35858c90312.tar.xz
multithreaded decoding
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@17081 b3059339-0415-0410-9bf9-f77b7e298cf2
Diffstat (limited to 'libmpcodecs')
-rw-r--r--libmpcodecs/vd_ffmpeg.c6
1 files changed, 6 insertions, 0 deletions
diff --git a/libmpcodecs/vd_ffmpeg.c b/libmpcodecs/vd_ffmpeg.c
index 202fffcf98..45404e29f7 100644
--- a/libmpcodecs/vd_ffmpeg.c
+++ b/libmpcodecs/vd_ffmpeg.c
@@ -111,6 +111,7 @@ static char *lavc_param_skip_loop_filter_str = NULL;
static char *lavc_param_skip_idct_str = NULL;
static char *lavc_param_skip_frame_str = NULL;
#endif
+static int lavc_param_threads=1;
m_option_t lavc_decode_opts_conf[]={
{"bug", &lavc_param_workaround_bugs, CONF_TYPE_INT, CONF_RANGE, -1, 999999, NULL},
@@ -132,6 +133,7 @@ m_option_t lavc_decode_opts_conf[]={
{"skipidct", &lavc_param_skip_idct_str, CONF_TYPE_STRING, 0, 0, 0, NULL},
{"skipframe", &lavc_param_skip_frame_str, CONF_TYPE_STRING, 0, 0, 0, NULL},
#endif
+ {"threads", &lavc_param_threads, CONF_TYPE_INT, CONF_RANGE, 1, 8, NULL},
{NULL, NULL, 0, 0, 0, 0, NULL}
};
@@ -407,6 +409,10 @@ static int init(sh_video_t *sh){
if(sh->bih)
avctx->bits_per_sample= sh->bih->biBitCount;
+#if LIBAVCODEC_BUILD >= 4716
+ if(lavc_param_threads > 1)
+ avcodec_thread_init(avctx, lavc_param_threads);
+#endif
/* open it */
if (avcodec_open(avctx, lavc_codec) < 0) {
mp_msg(MSGT_DECVIDEO,MSGL_ERR, MSGTR_CantOpenCodec);