summaryrefslogtreecommitdiff
path: root/libavcodec/fraps.c
diff options
context:
space:
mode:
authorReimar Döffinger <Reimar.Doeffinger@gmx.de>2012-01-29 14:59:32 +0100
committerReimar Döffinger <Reimar.Doeffinger@gmx.de>2012-01-29 21:52:55 +0100
commitcd3ced1bb9e1ca72b0bb328f3b6e7e2bccfa2938 (patch)
tree09761e8add61b622a5c8736b10da9986b92df8dc /libavcodec/fraps.c
parent0efdb942a6167f3175403c6e84314a6f33f0e656 (diff)
fraps: frame threading support.
Codec is too simple to gain much from it at lower resolutions, but should help at very high resolutions, particularly for v3 and v5 where a not too optimized pseudo-YUV to RGB is done in the codec. Signed-off-by: Reimar Döffinger <Reimar.Doeffinger@gmx.de>
Diffstat (limited to 'libavcodec/fraps.c')
-rw-r--r--libavcodec/fraps.c7
1 files changed, 4 insertions, 3 deletions
diff --git a/libavcodec/fraps.c b/libavcodec/fraps.c
index 10464077d9..bbabfd9084 100644
--- a/libavcodec/fraps.c
+++ b/libavcodec/fraps.c
@@ -36,6 +36,7 @@
#include "huffman.h"
#include "bytestream.h"
#include "dsputil.h"
+#include "thread.h"
#define FPS_TAG MKTAG('F', 'P', 'S', 'x')
@@ -199,12 +200,12 @@ static int decode_frame(AVCodecContext *avctx,
}
if (f->data[0])
- avctx->release_buffer(avctx, f);
+ ff_thread_release_buffer(avctx, f);
f->pict_type = AV_PICTURE_TYPE_I;
f->key_frame = 1;
f->reference = 0;
f->buffer_hints = FF_BUFFER_HINTS_VALID;
- if (avctx->get_buffer(avctx, f)) {
+ if (ff_thread_get_buffer(avctx, f)) {
av_log(avctx, AV_LOG_ERROR, "get_buffer() failed\n");
return -1;
}
@@ -315,6 +316,6 @@ AVCodec ff_fraps_decoder = {
.init = decode_init,
.close = decode_end,
.decode = decode_frame,
- .capabilities = CODEC_CAP_DR1,
+ .capabilities = CODEC_CAP_DR1 | CODEC_CAP_FRAME_THREADS,
.long_name = NULL_IF_CONFIG_SMALL("Fraps"),
};