mirror of
https://github.com/xenia-project/FFmpeg.git
synced 2024-11-28 22:10:34 +00:00
j2kdec: frame multithreading support
This allows comparing the 2 decoders with threads
Based on:commit 2e2d24667a
By: Nicolas Bertrand <nicoinattendu@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
This commit is contained in:
parent
b02f073ad4
commit
d2bf8aecd3
@ -30,6 +30,7 @@
|
|||||||
#include "avcodec.h"
|
#include "avcodec.h"
|
||||||
#include "bytestream.h"
|
#include "bytestream.h"
|
||||||
#include "internal.h"
|
#include "internal.h"
|
||||||
|
#include "thread.h"
|
||||||
#include "j2k.h"
|
#include "j2k.h"
|
||||||
#include "libavutil/common.h"
|
#include "libavutil/common.h"
|
||||||
|
|
||||||
@ -205,6 +206,7 @@ static int tag_tree_decode(J2kDecoderContext *s, J2kTgtNode *node, int threshold
|
|||||||
static int get_siz(J2kDecoderContext *s)
|
static int get_siz(J2kDecoderContext *s)
|
||||||
{
|
{
|
||||||
int i, ret;
|
int i, ret;
|
||||||
|
ThreadFrame frame = { .f = s->picture };
|
||||||
|
|
||||||
if (bytestream2_get_bytes_left(&s->g) < 36)
|
if (bytestream2_get_bytes_left(&s->g) < 36)
|
||||||
return AVERROR(EINVAL);
|
return AVERROR(EINVAL);
|
||||||
@ -282,7 +284,7 @@ static int get_siz(J2kDecoderContext *s)
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
if ((ret = ff_get_buffer(s->avctx, s->picture, 0)) < 0)
|
if ((ret = ff_thread_get_buffer(s->avctx, &frame, 0)) < 0)
|
||||||
return ret;
|
return ret;
|
||||||
|
|
||||||
s->picture->pict_type = AV_PICTURE_TYPE_I;
|
s->picture->pict_type = AV_PICTURE_TYPE_I;
|
||||||
@ -1088,6 +1090,6 @@ AVCodec ff_j2k_decoder = {
|
|||||||
.priv_data_size = sizeof(J2kDecoderContext),
|
.priv_data_size = sizeof(J2kDecoderContext),
|
||||||
.init = j2kdec_init,
|
.init = j2kdec_init,
|
||||||
.decode = decode_frame,
|
.decode = decode_frame,
|
||||||
.capabilities = CODEC_CAP_EXPERIMENTAL,
|
.capabilities = CODEC_CAP_EXPERIMENTAL | CODEC_CAP_FRAME_THREADS,
|
||||||
.long_name = NULL_IF_CONFIG_SMALL("JPEG 2000"),
|
.long_name = NULL_IF_CONFIG_SMALL("JPEG 2000"),
|
||||||
};
|
};
|
||||||
|
Loading…
Reference in New Issue
Block a user