On Tue, May 17, 2011 at 10:03 AM, Kostya <kostya.shish...@gmail.com> wrote: > On Tue, May 10, 2011 at 11:29:09AM -0400, Ronald S. Bultje wrote: >> From: Alexander Strange <astra...@ithinksw.com> >> >> Signed-off-by: Ronald S. Bultje <rsbul...@gmail.com> >> --- >> libavcodec/mdec.c | 20 +++++++++++++++++--- >> 1 files changed, 17 insertions(+), 3 deletions(-) >> >> diff --git a/libavcodec/mdec.c b/libavcodec/mdec.c >> index 9b6e6b6..17671cf 100644 >> --- a/libavcodec/mdec.c >> +++ b/libavcodec/mdec.c >> @@ -31,6 +31,7 @@ >> #include "dsputil.h" >> #include "mpegvideo.h" >> #include "mpeg12.h" >> +#include "thread.h" >> >> typedef struct MDECContext{ >> AVCodecContext *avctx; >> @@ -163,10 +164,10 @@ static int decode_frame(AVCodecContext *avctx, >> int i; >> >> if(p->data[0]) >> - avctx->release_buffer(avctx, p); >> + ff_thread_release_buffer(avctx, p); >> >> p->reference= 0; >> - if(avctx->get_buffer(avctx, p) < 0){ >> + if(ff_thread_get_buffer(avctx, p) < 0){ >> av_log(avctx, AV_LOG_ERROR, "get_buffer() failed\n"); >> return -1; >> } >> @@ -239,6 +240,18 @@ static av_cold int decode_init(AVCodecContext *avctx){ >> return 0; >> } >> >> +static av_cold int decode_init_thread_copy(AVCodecContext *avctx){ >> + MDECContext * const a = avctx->priv_data; >> + AVFrame *p = (AVFrame*)&a->picture; >> + >> + avctx->coded_frame= p; >> + a->avctx= avctx; >> + >> + p->qscale_table= av_mallocz( a->mb_width); >> + >> + return 0; >> +} >> + >> static av_cold int decode_end(AVCodecContext *avctx){ >> MDECContext * const a = avctx->priv_data; >> >> @@ -260,7 +273,8 @@ AVCodec ff_mdec_decoder = { >> NULL, >> decode_end, >> decode_frame, >> - CODEC_CAP_DR1, >> + CODEC_CAP_DR1 | CODEC_CAP_FRAME_THREADS, >> .long_name= NULL_IF_CONFIG_SMALL("Sony PlayStation MDEC (Motion >> DECoder)"), >> + .init_thread_copy= ONLY_IF_THREADS_ENABLED(decode_init_thread_copy) >> }; >> >> -- > > looks ok except for idiotic "var= val;" assignment style (and yes, "I've > copied it from elsewhere" argument is too old that it stinks)
In this case I copied it from the function immediately above. _______________________________________________ libav-devel mailing list libav-devel@libav.org https://lists.libav.org/mailman/listinfo/libav-devel