aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorBaptiste Coudurier <baptiste.coudurier@gmail.com>2008-06-22 01:35:43 +0000
committerBaptiste Coudurier <baptiste.coudurier@gmail.com>2008-06-22 01:35:43 +0000
commitdbedf2aae26c44d3d310831dd1097900d5a539d9 (patch)
treeab0c29c986a7b48fe8671a9997403237a666384a
parent0b459fb2d8d84f90d02a755a875ae921b2871020 (diff)
downloadffmpeg-dbedf2aae26c44d3d310831dd1097900d5a539d9.tar.gz
enable feeder threads
Originally committed as revision 13868 to svn://svn.ffmpeg.org/ffmpeg/trunk
-rw-r--r--ffmpeg.c5
-rw-r--r--libavformat/ffmdec.c1
-rw-r--r--libavformat/ffmenc.c1
-rw-r--r--tests/libav.regression.ref2
4 files changed, 8 insertions, 1 deletions
diff --git a/ffmpeg.c b/ffmpeg.c
index 8cfa7b348e..e20ac1141a 100644
--- a/ffmpeg.c
+++ b/ffmpeg.c
@@ -449,6 +449,11 @@ static int read_ffserver_streams(AVFormatContext *s, const char *filename)
else if (st->codec->codec_type == CODEC_TYPE_VIDEO && video_stream_copy)
st->stream_copy = 1;
+ if(!st->codec->thread_count)
+ st->codec->thread_count = 1;
+ if(st->codec->thread_count>1)
+ avcodec_thread_init(st->codec, st->codec->thread_count);
+
if(st->codec->flags & CODEC_FLAG_BITEXACT)
nopts = 1;
}
diff --git a/libavformat/ffmdec.c b/libavformat/ffmdec.c
index 37a60a55e5..8d0a39bc23 100644
--- a/libavformat/ffmdec.c
+++ b/libavformat/ffmdec.c
@@ -310,6 +310,7 @@ static int ffm_read_header(AVFormatContext *s, AVFormatParameters *ap)
codec->frame_skip_cmp = get_be32(pb);
codec->rc_buffer_aggressivity = av_int2dbl(get_be64(pb));
codec->codec_tag = get_be32(pb);
+ codec->thread_count = get_byte(pb);
break;
case CODEC_TYPE_AUDIO:
codec->sample_rate = get_be32(pb);
diff --git a/libavformat/ffmenc.c b/libavformat/ffmenc.c
index 3b7c354841..1a38f9937f 100644
--- a/libavformat/ffmenc.c
+++ b/libavformat/ffmenc.c
@@ -158,6 +158,7 @@ static int ffm_write_header(AVFormatContext *s)
put_be32(pb, codec->frame_skip_cmp);
put_be64(pb, av_dbl2int(codec->rc_buffer_aggressivity));
put_be32(pb, codec->codec_tag);
+ put_byte(pb, codec->thread_count);
break;
case CODEC_TYPE_AUDIO:
put_be32(pb, codec->sample_rate);
diff --git a/tests/libav.regression.ref b/tests/libav.regression.ref
index abaa82ac81..5e4d0b46a1 100644
--- a/tests/libav.regression.ref
+++ b/tests/libav.regression.ref
@@ -15,7 +15,7 @@ bdb7484c68db722f66ba1630cf79844c *./tests/data/b-libav.mpg
d6fdeb9f7083cc827f9510c6c4517dc0 *./tests/data/b-libav.swf
335771 ./tests/data/b-libav.swf
./tests/data/b-libav.swf CRC=0xe14e8847
-bbdf0d67ad1035d59adc3c4cd245f3a9 *./tests/data/b-libav.ffm
+102427263dc342610721d5754fac4d87 *./tests/data/b-libav.ffm
380928 ./tests/data/b-libav.ffm
./tests/data/b-libav.ffm CRC=0x2b71a386
f8ad5bd78f4d012a8ce9570aa395ac54 *./tests/data/b-libav.flv