aboutsummaryrefslogtreecommitdiffstats
path: root/libavcodec
diff options
context:
space:
mode:
authorMichael Niedermayer <michaelni@gmx.at>2011-09-18 19:02:37 +0200
committerMichael Niedermayer <michaelni@gmx.at>2011-09-18 21:53:30 +0200
commitba5ff1b31ea46098ef24ac43d8b37f451adec0b7 (patch)
tree7a9b3702b1d657cd102dd847f742580abd356953 /libavcodec
parent0ddcfa42cc7dae4c54ab9202bd7ed79980822f9c (diff)
downloadffmpeg-ba5ff1b31ea46098ef24ac43d8b37f451adec0b7.tar.gz
h264dec: add forgotten copying of h->sync
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
Diffstat (limited to 'libavcodec')
-rw-r--r--libavcodec/h264.c6
1 files changed, 5 insertions, 1 deletions
diff --git a/libavcodec/h264.c b/libavcodec/h264.c
index 227c8904fa..9e2b55426b 100644
--- a/libavcodec/h264.c
+++ b/libavcodec/h264.c
@@ -1201,6 +1201,7 @@ static int decode_update_thread_context(AVCodecContext *dst, const AVCodecContex
copy_picture_range(h->delayed_pic, h1->delayed_pic, MAX_DELAYED_PIC_COUNT+2, s, s1);
h->last_slice_type = h1->last_slice_type;
+ h->sync = h1->sync;
if(!s->current_picture_ptr) return 0;
@@ -1432,6 +1433,10 @@ static void decode_postinit(H264Context *h, int setup_finished){
av_log(s->avctx, AV_LOG_DEBUG, "no picture\n");
}
+ if (h->next_output_pic && h->next_output_pic->sync) {
+ h->sync |= 2*!!h->next_output_pic->f.key_frame;
+ }
+
if (setup_finished)
ff_thread_finish_setup(s->avctx);
}
@@ -3920,7 +3925,6 @@ static int decode_frame(AVCodecContext *avctx,
*data_size = 0; /* Wait for second field. */
if (h->next_output_pic && h->next_output_pic->sync) {
- h->sync |= 2*!!h->next_output_pic->f.key_frame;
if(h->sync>1 || h->next_output_pic->f.pict_type != AV_PICTURE_TYPE_B){
*data_size = sizeof(AVFrame);
*pict = *(AVFrame*)h->next_output_pic;