diff options
author | Michael Niedermayer <michaelni@gmx.at> | 2013-03-27 11:51:33 +0100 |
---|---|---|
committer | Michael Niedermayer <michaelni@gmx.at> | 2013-03-27 11:51:33 +0100 |
commit | ace0cfea60a32c2d2c89ce31fed8466625b09ac6 (patch) | |
tree | 442bd781b252ab542a7ebbc8b6a0435ae8cab05d /libavcodec | |
parent | 12f203a0987935b79870a9502b7e148fa064897c (diff) | |
parent | 05fa79b8448059913dea321fdf92764b64deeecc (diff) | |
download | ffmpeg-ace0cfea60a32c2d2c89ce31fed8466625b09ac6.tar.gz |
Merge remote-tracking branch 'qatar/master'
* qatar/master:
hwaccel: fix use with frame based multithreading
Conflicts:
libavcodec/h263dec.c
libavcodec/version.h
Merged-by: Michael Niedermayer <michaelni@gmx.at>
Diffstat (limited to 'libavcodec')
-rw-r--r-- | libavcodec/h263dec.c | 6 | ||||
-rw-r--r-- | libavcodec/h264.c | 2 | ||||
-rw-r--r-- | libavcodec/pthread.c | 3 | ||||
-rw-r--r-- | libavcodec/version.h | 2 |
4 files changed, 10 insertions, 3 deletions
diff --git a/libavcodec/h263dec.c b/libavcodec/h263dec.c index adcbcd8a89..405d3c68fd 100644 --- a/libavcodec/h263dec.c +++ b/libavcodec/h263dec.c @@ -655,7 +655,8 @@ retry: if ((ret = ff_MPV_frame_start(s, avctx)) < 0) return ret; - if (!s->divx_packed) ff_thread_finish_setup(avctx); + if (!s->divx_packed && !avctx->hwaccel) + ff_thread_finish_setup(avctx); if (CONFIG_MPEG4_VDPAU_DECODER && (s->avctx->codec->capabilities & CODEC_CAP_HWACCEL_VDPAU)) { ff_vdpau_mpeg4_decode_picture(s, s->gb.buffer, s->gb.buffer_end - s->gb.buffer); @@ -744,6 +745,9 @@ intrax8_decoded: ff_MPV_frame_end(s); + if (!s->divx_packed && avctx->hwaccel) + ff_thread_finish_setup(avctx); + av_assert1(s->current_picture.f.pict_type == s->current_picture_ptr->f.pict_type); av_assert1(s->current_picture.f.pict_type == s->pict_type); if (s->pict_type == AV_PICTURE_TYPE_B || s->low_delay) { diff --git a/libavcodec/h264.c b/libavcodec/h264.c index 8a8653eba1..a736070f0f 100644 --- a/libavcodec/h264.c +++ b/libavcodec/h264.c @@ -2070,7 +2070,7 @@ static void decode_postinit(H264Context *h, int setup_finished) h->sync |= 2; } - if (setup_finished) + if (setup_finished && !h->avctx->hwaccel) ff_thread_finish_setup(h->avctx); } diff --git a/libavcodec/pthread.c b/libavcodec/pthread.c index 9dbaec3dc8..29a2308fae 100644 --- a/libavcodec/pthread.c +++ b/libavcodec/pthread.c @@ -450,6 +450,9 @@ static int update_context_from_thread(AVCodecContext *dst, AVCodecContext *src, dst->colorspace = src->colorspace; dst->color_range = src->color_range; dst->chroma_sample_location = src->chroma_sample_location; + + dst->hwaccel = src->hwaccel; + dst->hwaccel_context = src->hwaccel_context; } if (for_user) { diff --git a/libavcodec/version.h b/libavcodec/version.h index 5cf07bc31a..ec98b91689 100644 --- a/libavcodec/version.h +++ b/libavcodec/version.h @@ -29,7 +29,7 @@ #include "libavutil/avutil.h" #define LIBAVCODEC_VERSION_MAJOR 55 -#define LIBAVCODEC_VERSION_MINOR 1 +#define LIBAVCODEC_VERSION_MINOR 2 #define LIBAVCODEC_VERSION_MICRO 100 #define LIBAVCODEC_VERSION_INT AV_VERSION_INT(LIBAVCODEC_VERSION_MAJOR, \ |