From: Limin Wang <lance.lmw...@gmail.com> Signed-off-by: Limin Wang <lance.lmw...@gmail.com> --- libavcodec/bitpacked_dec.c | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-)
diff --git a/libavcodec/bitpacked_dec.c b/libavcodec/bitpacked_dec.c index a2edccc..90e5bcc 100644 --- a/libavcodec/bitpacked_dec.c +++ b/libavcodec/bitpacked_dec.c @@ -30,6 +30,7 @@ #include "internal.h" #include "get_bits.h" #include "libavutil/imgutils.h" +#include "thread.h" struct BitpackedContext { int (*decode)(AVCodecContext *avctx, AVFrame *frame, @@ -64,11 +65,12 @@ static int bitpacked_decode_yuv422p10(AVCodecContext *avctx, AVFrame *frame, { uint64_t frame_size = (uint64_t)avctx->width * (uint64_t)avctx->height * 20; uint64_t packet_size = (uint64_t)avpkt->size * 8; + ThreadFrame tframe = { .f = frame }; GetBitContext bc; uint16_t *y, *u, *v; int ret, i, j; - ret = ff_get_buffer(avctx, frame, 0); + ret = ff_thread_get_buffer(avctx, &tframe, 0); if (ret < 0) return ret; @@ -126,10 +128,10 @@ static int bitpacked_decode(AVCodecContext *avctx, void *data, int *got_frame, { struct BitpackedContext *bc = avctx->priv_data; int buf_size = avpkt->size; - AVFrame *frame = data; int res; + AVFrame *frame = data; - res = bc->decode(avctx, frame, avpkt); + res = bc->decode(avctx, data, avpkt); if (res) return res; @@ -149,6 +151,7 @@ const AVCodec ff_bitpacked_decoder = { .priv_data_size = sizeof(struct BitpackedContext), .init = bitpacked_init_decoder, .decode = bitpacked_decode, + .capabilities = AV_CODEC_CAP_FRAME_THREADS, .codec_tags = (const uint32_t []){ MKTAG('U', 'Y', 'V', 'Y'), FF_CODEC_TAGS_END, -- 1.8.3.1 _______________________________________________ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org https://ffmpeg.org/mailman/listinfo/ffmpeg-devel To unsubscribe, visit link above, or email ffmpeg-devel-requ...@ffmpeg.org with subject "unsubscribe".